diff --git a/.editorconfig b/.editorconfig
index 2b40ec32fac3e..50cc9dacd7e42 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,6 +9,11 @@ trim_trailing_whitespace=true
max_line_length=100
insert_final_newline=true
+[*.md]
+max_line_length=80
+indent_style=space
+indent_size=2
+
[*.yml]
indent_style=space
indent_size=2
diff --git a/.github/allowed-actions.js b/.github/allowed-actions.js
new file mode 100644
index 0000000000000..4fb894758060d
--- /dev/null
+++ b/.github/allowed-actions.js
@@ -0,0 +1,7 @@
+// This is a whitelist of GitHub Actions that are approved for use in this project.
+// If a new or existing workflow file is updated to use an action or action version
+// not listed here, CI will fail.
+
+module.exports = [
+ 'gaurav-nelson/github-action-markdown-link-check@7481451f70251762f149d69596e3e276ebf2b236', // gaurav-nelson/github-action-markdown-link-check@v1.0.8
+]
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000000000..a321729dcbc81
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,7 @@
+version: 2
+updates:
+ - package-ecosystem: "cargo"
+ directory: "/"
+ labels: ["A2-insubstantial", "B0-silent", "C1-low 📌"]
+ schedule:
+ interval: "daily"
diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 0000000000000..61d0fd0228d97
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,18 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 30
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: 14
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - "D9-needsaudit 👮"
+# Label to use when marking an issue as stale
+staleLabel: "A3-stale"
+# we only bother with pull requests
+only: pulls
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ Hey, is anyone still working on this? Due to the inactivity this issue has
+ been automatically marked as stale. It will be closed if no further activity
+ occurs. Thank you for your contributions.
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
diff --git a/.github/workflows/check-labels.yml b/.github/workflows/check-labels.yml
new file mode 100644
index 0000000000000..7180e7b509662
--- /dev/null
+++ b/.github/workflows/check-labels.yml
@@ -0,0 +1,21 @@
+name: Check labels
+
+on:
+ pull_request:
+ types: [labeled, opened, synchronize, unlabeled]
+
+jobs:
+ check-labels:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ ref: ${{ github.event.pull_request.head.ref }}
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
+ - name: Check labels
+ run: bash ${{ github.workspace }}/.maintain/github/check_labels.sh
+ env:
+ GITHUB_PR: ${{ github.event.pull_request.number }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ HEAD_SHA: ${{ github.event.pull_request.head.sha }}
diff --git a/.github/workflows/md-link-check.yml b/.github/workflows/md-link-check.yml
new file mode 100644
index 0000000000000..868569911d471
--- /dev/null
+++ b/.github/workflows/md-link-check.yml
@@ -0,0 +1,19 @@
+name: Check Links
+
+on:
+ pull_request:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+
+jobs:
+ markdown-link-check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: gaurav-nelson/github-action-markdown-link-check@7481451f70251762f149d69596e3e276ebf2b236
+ with:
+ use-quiet-mode: 'yes'
+ config-file: '.github/workflows/mlc_config.json'
diff --git a/.github/workflows/mlc_config.json b/.github/workflows/mlc_config.json
new file mode 100644
index 0000000000000..e7e620b39e0a9
--- /dev/null
+++ b/.github/workflows/mlc_config.json
@@ -0,0 +1,7 @@
+{
+ "ignorePatterns": [
+ {
+ "pattern": "^https://crates.io",
+ }
+ ]
+}
diff --git a/.github/workflows/monthly-tag.yml b/.github/workflows/monthly-tag.yml
new file mode 100644
index 0000000000000..8736a341cecf9
--- /dev/null
+++ b/.github/workflows/monthly-tag.yml
@@ -0,0 +1,43 @@
+name: Monthly Snapshot Tag
+
+on:
+ schedule:
+ - cron: "0 1 1 * *"
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: Take Snapshot
+ runs-on: ubuntu-latest
+ steps:
+ - name: Get the tags by date
+ id: tags
+ run: |
+ echo "::set-output name=new::$(date +'monthly-%Y-%m')"
+ echo "::set-output name=old::$(date -d'1 month ago' +'monthly-%Y-%m')"
+ - name: Checkout branch "master"
+ uses: actions/checkout@v2
+ with:
+ ref: 'master'
+ fetch-depth: 0
+ - name: Generate changelog
+ id: changelog
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ echo "# Automatic snapshot pre-release ${{ steps.tags.outputs.new }}" > Changelog.md
+ echo "" >> Changelog.md
+ echo "## Changes since last snapshot (${{ steps.tags.outputs.old }})" >> Changelog.md
+ echo "" >> Changelog.md
+ ./.maintain/gitlab/generate_changelog.sh ${{ steps.tags.outputs.old }} >> Changelog.md
+ - name: Release snapshot
+ id: release-snapshot
+ uses: actions/create-release@latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ steps.tags.outputs.new }}
+ release_name: ${{ steps.tags.outputs.new }}
+ draft: false
+ prerelease: true
+ body_path: Changelog.md
diff --git a/.gitignore b/.gitignore
index c8f1ea9567bc2..0486a1a716e5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,5 @@ rls*.log
**/hfuzz_workspace/
.cargo/
.cargo-remote.toml
+*.bin
+*.iml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 527ce7f425a96..ecafc9338a587 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -24,12 +24,13 @@ stages:
- check
- test
- build
- - post-build-test
- - chaos-env
- - chaos
- publish
- deploy
- - flaming-fir
+
+workflow:
+ rules:
+ - if: $CI_COMMIT_TAG
+ - if: $CI_COMMIT_BRANCH
variables: &default-vars
GIT_STRATEGY: fetch
@@ -37,9 +38,13 @@ variables: &default-vars
CARGO_INCREMENTAL: 0
DOCKER_OS: "debian:stretch"
ARCH: "x86_64"
+ CI_IMAGE: "paritytech/ci-linux:production"
# FIXME set to release
- CARGO_UNLEASH_INSTALL_PARAMS: "--version 1.0.0-alpha.10"
+ CARGO_UNLEASH_INSTALL_PARAMS: "--version 1.0.0-alpha.12"
CARGO_UNLEASH_PKG_DEF: "--skip node node-* pallet-template pallet-example pallet-example-* subkey chain-spec-builder"
+ VAULT_SERVER_URL: "https://vault.parity-mgmt-vault.parity.io"
+ VAULT_AUTH_PATH: "gitlab-parity-io-jwt"
+ VAULT_AUTH_ROLE: "cicd_gitlab_parity_${CI_PROJECT_NAME}"
default:
cache: {}
@@ -52,19 +57,28 @@ default:
paths:
- artifacts/
-.kubernetes-build: &kubernetes-build
+.kubernetes-env: &kubernetes-env
+ retry:
+ max: 2
+ when:
+ - runner_system_failure
+ - unknown_failure
+ - api_failure
+ interruptible: true
tags:
- kubernetes-parity-build
- environment:
- name: parity-build
- interruptible: true
+
+.rust-info-script: &rust-info-script
+ - rustup show
+ - cargo --version
+ - rustup +nightly show
+ - cargo +nightly --version
+ - sccache -s
.docker-env: &docker-env
- image: paritytech/ci-linux:production
+ image: "${CI_IMAGE}"
before_script:
- - rustup show
- - cargo --version
- - sccache -s
+ - *rust-info-script
retry:
max: 2
when:
@@ -75,32 +89,149 @@ default:
tags:
- linux-docker
-workflow:
+.test-refs: &test-refs
rules:
- - if: $CI_COMMIT_TAG
- - if: $CI_COMMIT_BRANCH
+ - if: $CI_PIPELINE_SOURCE == "web"
+ - if: $CI_PIPELINE_SOURCE == "schedule"
+ - if: $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
+ - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-.test-refs: &test-refs
+.test-refs-no-trigger: &test-refs-no-trigger
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web"
+ - if: $CI_PIPELINE_SOURCE == "schedule"
+ - if: $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
+ - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
+ - if: $CI_COMMIT_REF_NAME =~ /^ci-release-.*$/
+
+.test-refs-no-trigger-prs-only: &test-refs-no-trigger-prs-only
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web"
+ - if: $CI_PIPELINE_SOURCE == "schedule"
+ - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
+
+.test-refs-wasmer-sandbox: &test-refs-wasmer-sandbox
rules:
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
+ changes:
+ - client/executor/**/*
+ - frame/contracts/**/*
+ - primitives/sandbox/**/*
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
+ changes:
+ - client/executor/**/*
+ - frame/contracts/**/*
+ - primitives/sandbox/**/*
- if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
+ changes:
+ - client/executor/**/*
+ - frame/contracts/**/*
+ - primitives/sandbox/**/*
.build-refs: &build-refs
rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
- if: $CI_PIPELINE_SOURCE == "web"
+ - if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
+.nightly-pipeline: &nightly-pipeline
+ rules:
+ # this job runs only on nightly pipeline with the mentioned variable, against `master` branch
+ - if: $CI_COMMIT_REF_NAME == "master" && $CI_PIPELINE_SOURCE == "schedule" && $PIPELINE == "nightly"
+
+.merge-ref-into-master-script: &merge-ref-into-master-script
+ - if [ $CI_COMMIT_REF_NAME != "master" ]; then
+ git fetch origin +master:master;
+ git fetch origin +$CI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME;
+ git checkout master;
+ git config user.email "ci@gitlab.parity.io";
+ git merge $CI_COMMIT_REF_NAME --verbose --no-edit;
+ fi
+
+.cargo-check-benches-script: &cargo-check-benches-script
+ - mkdir -p artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
+ - SKIP_WASM_BUILD=1 time cargo +nightly check --benches --all
+ - 'cargo run --release -p node-bench -- ::node::import::native::sr25519::transfer_keep_alive::paritydb::small --json
+ | tee artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA/::node::import::native::sr25519::transfer_keep_alive::paritydb::small.json'
+ - 'cargo run --release -p node-bench -- ::trie::read::small --json
+ | tee artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA/::trie::read::small.json'
+ - sccache -s
+
+#### Vault secrets
+.vault-secrets: &vault-secrets
+ secrets:
+ DOCKER_HUB_USER:
+ vault: cicd/gitlab/parity/DOCKER_HUB_USER@kv
+ file: false
+ DOCKER_HUB_PASS:
+ vault: cicd/gitlab/parity/DOCKER_HUB_PASS@kv
+ file: false
+ GITHUB_PR_TOKEN:
+ vault: cicd/gitlab/parity/GITHUB_PR_TOKEN@kv
+ file: false
+ AWS_ACCESS_KEY_ID:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/AWS_ACCESS_KEY_ID@kv
+ file: false
+ AWS_SECRET_ACCESS_KEY:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/AWS_SECRET_ACCESS_KEY@kv
+ file: false
+ AWX_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/AWX_TOKEN@kv
+ file: false
+ CRATES_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/CRATES_TOKEN@kv
+ file: false
+ DOCKER_CHAOS_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/DOCKER_CHAOS_TOKEN@kv
+ file: false
+ DOCKER_CHAOS_USER:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/DOCKER_CHAOS_USER@kv
+ file: false
+ GITHUB_EMAIL:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/GITHUB_EMAIL@kv
+ file: false
+ GITHUB_RELEASE_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/GITHUB_RELEASE_TOKEN@kv
+ file: false
+ GITHUB_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/GITHUB_TOKEN@kv
+ file: false
+ GITHUB_USER:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/GITHUB_USER@kv
+ file: false
+ MATRIX_ACCESS_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/MATRIX_ACCESS_TOKEN@kv
+ file: false
+ MATRIX_ROOM_ID:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/MATRIX_ROOM_ID@kv
+ file: false
+ PIPELINE_TOKEN:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/PIPELINE_TOKEN@kv
+ file: false
+ VALIDATOR_KEYS:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/VALIDATOR_KEYS@kv
+ file: false
+ VALIDATOR_KEYS_CHAOS:
+ vault: cicd/gitlab/$CI_PROJECT_PATH/VALIDATOR_KEYS_CHAOS@kv
+ file: false
+
#### stage: .pre
skip-if-draft:
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ <<: *vault-secrets
stage: .pre
rules:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
@@ -115,7 +246,8 @@ skip-if-draft:
check-runtime:
stage: check
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ <<: *vault-secrets
rules:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
variables:
@@ -129,17 +261,18 @@ check-runtime:
check-signed-tag:
stage: check
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ <<: *vault-secrets
rules:
- if: $CI_COMMIT_REF_NAME =~ /^ci-release-.*$/
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+\.[0-9]+.*$/
+ - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
script:
- ./.maintain/gitlab/check_signed.sh
check-line-width:
stage: check
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
rules:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
script:
@@ -149,37 +282,34 @@ check-line-width:
test-dependency-rules:
stage: check
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ rules:
+ - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
script:
- .maintain/ensure-deps.sh
-#### stage: test
-
-cargo-audit:
- stage: test
- <<: *docker-env
+test-prometheus-alerting-rules:
+ stage: check
+ image: paritytech/tools:latest
+ <<: *kubernetes-env
rules:
- - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
when: never
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_PIPELINE_SOURCE == "schedule"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
+ - if: $CI_COMMIT_BRANCH
+ changes:
+ - .gitlab-ci.yml
+ - .maintain/monitoring/**/*
script:
- - cargo audit
- allow_failure: true
+ - promtool check rules .maintain/monitoring/alerting-rules/alerting-rules.yaml
+ - cat .maintain/monitoring/alerting-rules/alerting-rules.yaml |
+ promtool test rules .maintain/monitoring/alerting-rules/alerting-rule-tests.yaml
+
+#### stage: test
cargo-deny:
stage: test
<<: *docker-env
- rules:
- - if: $CI_COMMIT_MESSAGE =~ /skip-checks/
- when: never
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_PIPELINE_SOURCE == "schedule"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
+ <<: *nightly-pipeline
script:
- cargo deny check --hide-inclusion-graph -c .maintain/deny.toml
after_script:
@@ -191,16 +321,50 @@ cargo-deny:
when: always
paths:
- deny.log
+ # FIXME: Temorarily allow to fail.
+ allow_failure: true
+
+cargo-fmt:
+ stage: test
+ <<: *docker-env
+ <<: *test-refs
+ script:
+ - cargo +nightly fmt --all -- --check
cargo-check-benches:
stage: test
<<: *docker-env
<<: *test-refs
+ <<: *collect-artifacts
+ before_script:
+ # merges in the master branch on PRs
+ - *merge-ref-into-master-script
+ - *rust-info-script
script:
- - BUILD_DUMMY_WASM_BINARY=1 time cargo +nightly check --benches --all
- - cargo run --release -p node-bench -- ::node::import::native::sr25519::transfer_keep_alive::paritydb::small
- - cargo run --release -p node-bench -- ::trie::read::small
- - sccache -s
+ - *cargo-check-benches-script
+
+node-bench-regression-guard:
+ # it's not belong to `build` semantically, but dag jobs can't depend on each other
+ # within the single stage - https://gitlab.com/gitlab-org/gitlab/-/issues/30632
+ # more: https://github.com/paritytech/substrate/pull/8519#discussion_r608012402
+ stage: build
+ <<: *docker-env
+ <<: *test-refs-no-trigger-prs-only
+ needs:
+ # this is a DAG
+ - job: cargo-check-benches
+ artifacts: true
+ # this does not like a DAG, just polls the artifact
+ - project: $CI_PROJECT_PATH
+ job: cargo-check-benches
+ ref: master
+ artifacts: true
+ variables:
+ CI_IMAGE: "paritytech/node-bench-regression-guard:latest"
+ before_script: [""]
+ script:
+ - 'node-bench-regression-guard --reference artifacts/benches/master-*
+ --compare-with artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA'
cargo-check-subkey:
stage: test
@@ -208,7 +372,23 @@ cargo-check-subkey:
<<: *test-refs
script:
- cd ./bin/utils/subkey
- - BUILD_DUMMY_WASM_BINARY=1 time cargo check --release
+ - SKIP_WASM_BUILD=1 time cargo check --release
+ - sccache -s
+
+cargo-check-try-runtime:
+ stage: test
+ <<: *docker-env
+ <<: *test-refs
+ script:
+ - time cargo check --features try-runtime
+ - sccache -s
+
+cargo-check-wasmer-sandbox:
+ stage: test
+ <<: *docker-env
+ <<: *test-refs
+ script:
+ - time cargo check --features wasmer-sandbox
- sccache -s
test-deterministic-wasm:
@@ -222,7 +402,7 @@ test-deterministic-wasm:
# build runtime
- cargo build --verbose --release -p node-runtime
# make checksum
- - sha256sum target/release/wbuild/target/wasm32-unknown-unknown/release/node_runtime.wasm > checksum.sha256
+ - sha256sum target/release/wbuild/node-runtime/target/wasm32-unknown-unknown/release/node_runtime.wasm > checksum.sha256
# clean up – FIXME: can we reuse some of the artifacts?
- cargo clean
# build again
@@ -245,22 +425,24 @@ test-linux-stable: &test-linux
script:
# this job runs all tests in former runtime-benchmarks, frame-staking and wasmtime tests
- time cargo test --workspace --locked --release --verbose --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml
+ - time cargo test -p frame-support-test --features=conditional-storage --manifest-path frame/support/test/Cargo.toml --test pallet # does not reuse cache 1 min 44 sec
- SUBSTRATE_TEST_TIMEOUT=1 time cargo test -p substrate-test-utils --release --verbose --locked -- --ignored timeout
- sccache -s
-unleash-check:
- stage: test
- <<: *docker-env
- rules:
- - if: $CI_COMMIT_MESSAGE =~ /skip-checks/
- when: never
- # .test-refs
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- script:
- - cargo install cargo-unleash ${CARGO_UNLEASH_INSTALL_PARAMS}
- - cargo unleash check ${CARGO_UNLEASH_PKG_DEF}
+#unleash-check:
+ #stage: test
+ #<<: *docker-env
+ #<<: *test-refs-no-trigger
+ #script:
+ #- cargo install cargo-unleash ${CARGO_UNLEASH_INSTALL_PARAMS}
+ #- cargo unleash de-dev-deps
+ # Reuse build artifacts when running checks (cuts down check time by 3x)
+ # TODO: Implement this optimization in cargo-unleash rather than here
+ #- mkdir -p target/unleash
+ #- export CARGO_TARGET_DIR=target/unleash
+ #- cargo unleash check ${CARGO_UNLEASH_PKG_DEF}
+ # FIXME: this job must not fail, or unleash-to-crates-io will publish broken stuff
+ #allow_failure: true
test-frame-examples-compile-to-wasm:
# into one job
@@ -271,7 +453,7 @@ test-frame-examples-compile-to-wasm:
<<: *default-vars
# Enable debug assertions since we are running optimized builds for testing
# but still want to have debug assertions.
- RUSTFLAGS: -Cdebug-assertions=y
+ RUSTFLAGS: "-Cdebug-assertions=y"
RUST_BACKTRACE: 1
script:
- cd frame/example-offchain-worker/
@@ -282,6 +464,7 @@ test-frame-examples-compile-to-wasm:
test-linux-stable-int:
<<: *test-linux
+ stage: test
script:
- echo "___Logs will be partly shown at the end in case of failure.___"
- echo "___Full log will be saved to the job artifacts only in case of failure.___"
@@ -299,22 +482,11 @@ test-linux-stable-int:
paths:
- ${CI_COMMIT_SHORT_SHA}_int_failure.log
-check-web-wasm:
+check-tracing:
stage: test
<<: *docker-env
<<: *test-refs
script:
- # WASM support is in progress. As more and more crates support WASM, we
- # should add entries here. See https://github.com/paritytech/substrate/issues/2416
- - time cargo build --target=wasm32-unknown-unknown -p sp-io
- - time cargo build --target=wasm32-unknown-unknown -p sp-runtime
- - time cargo build --target=wasm32-unknown-unknown -p sp-std
- - time cargo build --target=wasm32-unknown-unknown -p sc-consensus-aura
- - time cargo build --target=wasm32-unknown-unknown -p sc-consensus-babe
- - time cargo build --target=wasm32-unknown-unknown -p sp-consensus
- - time cargo build --target=wasm32-unknown-unknown -p sc-telemetry
- # Note: the command below is a bit weird because several Cargo issues prevent us from compiling the node in a more straight-forward way.
- - time cargo +nightly build --manifest-path=bin/node/cli/Cargo.toml --no-default-features --features browser --target=wasm32-unknown-unknown -Z features=itarget
# with-tracing must be explicitly activated, we run a test to ensure this works as expected in both cases
- time cargo +nightly test --manifest-path primitives/tracing/Cargo.toml --no-default-features
- time cargo +nightly test --manifest-path primitives/tracing/Cargo.toml --no-default-features --features=with-tracing
@@ -328,7 +500,7 @@ test-full-crypto-feature:
<<: *default-vars
# Enable debug assertions since we are running optimized builds for testing
# but still want to have debug assertions.
- RUSTFLAGS: -Cdebug-assertions=y
+ RUSTFLAGS: "-Cdebug-assertions=y"
RUST_BACKTRACE: 1
script:
- cd primitives/core/
@@ -337,31 +509,34 @@ test-full-crypto-feature:
- time cargo +nightly build --verbose --no-default-features --features full_crypto
- sccache -s
+test-wasmer-sandbox:
+ stage: test
+ <<: *docker-env
+ <<: *test-refs-wasmer-sandbox
+ variables:
+ <<: *default-vars
+ script:
+ - time cargo test --release --features runtime-benchmarks,wasmer-sandbox
+ - sccache -s
+
cargo-check-macos:
stage: test
# shell runner on mac ignores the image set in *docker-env
<<: *docker-env
- <<: *test-refs
+ <<: *test-refs-no-trigger
script:
- - BUILD_DUMMY_WASM_BINARY=1 time cargo check --release
+ - SKIP_WASM_BUILD=1 time cargo check --release
- sccache -s
tags:
- osx
-test-prometheus-alerting-rules:
- stage: test
- image: paritytech/tools:latest
- <<: *kubernetes-build
- script:
- - promtool check rules .maintain/monitoring/alerting-rules/alerting-rules.yaml
- - cat .maintain/monitoring/alerting-rules/alerting-rules.yaml | promtool test rules .maintain/monitoring/alerting-rules/alerting-rule-tests.yaml
-
#### stage: build
check-polkadot-companion-status:
stage: build
image: paritytech/tools:latest
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ <<: *vault-secrets
rules:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
script:
@@ -370,7 +545,8 @@ check-polkadot-companion-status:
check-polkadot-companion-build:
stage: build
<<: *docker-env
- <<: *test-refs
+ <<: *test-refs-no-trigger
+ <<: *vault-secrets
needs:
- job: test-linux-stable-int
artifacts: false
@@ -380,35 +556,11 @@ check-polkadot-companion-build:
- cd polkadot && git rev-parse --abbrev-ref HEAD
allow_failure: true
-test-browser-node:
- stage: build
- <<: *docker-env
- <<: *test-refs
- needs:
- - job: check-web-wasm
- artifacts: false
- variables:
- <<: *default-vars
- CHROMEDRIVER_ARGS: "--log-level=INFO --whitelisted-ips=127.0.0.1"
- CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER: "wasm-bindgen-test-runner"
- WASM_BINDGEN_TEST_TIMEOUT: 120
- script:
- - cargo +nightly test --target wasm32-unknown-unknown -p node-browser-testing -Z features=itarget
-
build-linux-substrate: &build-binary
stage: build
<<: *collect-artifacts
<<: *docker-env
- rules:
- # .build-refs with manual on PRs and chaos
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- - if: $CI_COMMIT_MESSAGE =~ /\[chaos:(basic|medium|large)\]/ && $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # i.e add [chaos:basic] in commit message to trigger
- - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- when: manual
- allow_failure: true
+ <<: *build-refs
needs:
- job: test-linux-stable
artifacts: false
@@ -435,15 +587,7 @@ build-linux-subkey: &build-subkey
stage: build
<<: *collect-artifacts
<<: *docker-env
- rules:
- # .build-refs with manual on PRs
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- when: manual
- allow_failure: true
+ <<: *build-refs
needs:
- job: cargo-check-subkey
artifacts: false
@@ -451,7 +595,7 @@ build-linux-subkey: &build-subkey
- mkdir -p ./artifacts/subkey
script:
- cd ./bin/utils/subkey
- - BUILD_DUMMY_WASM_BINARY=1 time cargo build --release --verbose
+ - SKIP_WASM_BUILD=1 time cargo build --release --verbose
- cd -
- mv ./target/release/subkey ./artifacts/subkey/.
- echo -n "Subkey version = "
@@ -467,14 +611,13 @@ build-macos-subkey:
tags:
- osx
-build-rust-doc:
+build-rustdoc:
stage: build
<<: *docker-env
<<: *test-refs
- allow_failure: true
variables:
<<: *default-vars
- RUSTFLAGS: -Dwarnings
+ SKIP_WASM_BUILD: 1
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
when: on_success
@@ -482,159 +625,71 @@ build-rust-doc:
paths:
- ./crate-docs/
script:
- - rm -f ./crate-docs/index.html # use it as an indicator if the job succeeds
- - BUILD_DUMMY_WASM_BINARY=1 RUSTDOCFLAGS="--html-in-header $(pwd)/.maintain/rustdoc-header.html"
+ # FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"`
+ - RUSTDOCFLAGS="--html-in-header $(pwd)/.maintain/rustdoc-header.html"
time cargo +nightly doc --no-deps --workspace --all-features --verbose
+ - rm -f ./target/doc/.lock
- mv ./target/doc ./crate-docs
+ # FIXME: remove me after CI image gets nonroot
+ - chown -R nonroot:nonroot ./crate-docs
- echo "" > ./crate-docs/index.html
- sccache -s
-#### stage: post-build-test
-
-trigger-contracts-ci:
- stage: post-build-test
- needs:
- - job: build-linux-substrate
- artifacts: false
- - job: test-linux-stable
- artifacts: false
- trigger:
- project: parity/srml-contracts-waterfall
- branch: master
- strategy: depend
- rules:
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_PIPELINE_SOURCE == "schedule"
- - if: $CI_COMMIT_REF_NAME == "master"
-
-#### stage: chaos-env
-
-build-chaos-docker:
- stage: chaos-env
- rules:
- # .build-refs with chaos
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- - if: $CI_COMMIT_MESSAGE =~ /\[chaos:(basic|medium|large)\]/ && $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # i.e add [chaos:basic] in commit message to trigger
- needs:
- - job: build-linux-substrate
- image: docker:stable
- tags:
- - kubernetes-parity-build
- variables:
- <<: *default-vars
- DOCKER_HOST: tcp://localhost:2375
- DOCKER_DRIVER: overlay2
- PRODUCT: substrate
- DOCKERFILE: $PRODUCT.Dockerfile
- CONTAINER_IMAGE: paritypr/$PRODUCT
- environment:
- name: parity-chaosnet
- services:
- - docker:dind
- before_script:
- - test "$DOCKER_CHAOS_USER" -a "$DOCKER_CHAOS_TOKEN"
- || ( echo "no docker credentials provided"; exit 1 )
- - docker login -u "$DOCKER_CHAOS_USER" -p "$DOCKER_CHAOS_TOKEN"
- - docker info
- script:
- - cd ./artifacts/$PRODUCT/
- - VERSION="ci-${CI_COMMIT_SHORT_SHA}"
- - echo "${PRODUCT} version = ${VERSION}"
- - test -z "${VERSION}" && exit 1
- - docker build
- --build-arg VCS_REF="${CI_COMMIT_SHA}"
- --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
- --tag $CONTAINER_IMAGE:$VERSION
- --file $DOCKERFILE .
- - docker push $CONTAINER_IMAGE:$VERSION
- after_script:
- - docker logout
-
-#### stage: chaos
-
-chaos-test-singlenodeheight:
- stage: chaos
- rules:
- # .build-refs with chaos
- - if: $CI_PIPELINE_SOURCE == "web"
- - if: $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "tags"
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- - if: $CI_COMMIT_MESSAGE =~ /\[chaos:(basic|medium|large)\]/ && $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # i.e add [chaos:basic] in commit message to trigger
- image: paritypr/simnet:latest
- needs:
- - job: build-chaos-docker
- tags:
- - parity-chaos
- variables:
- <<: *default-vars
- PRODUCT: substrate
- DOCKERFILE: $PRODUCT.Dockerfile
- CONTAINER_IMAGE: paritypr/$PRODUCT
- KEEP_NAMESPACE: 0
- NAMESPACE: "substrate-ci-${CI_COMMIT_SHORT_SHA}-${CI_PIPELINE_ID}"
- VERSION: "ci-${CI_COMMIT_SHORT_SHA}"
- interruptible: true
- environment:
- name: parity-chaosnet
- script:
- - simnet spawn dev -i $CONTAINER_IMAGE:$VERSION
- - simnet singlenodeheight -h 30
- after_script:
- - simnet clean
-
#### stage: publish
.build-push-docker-image: &build-push-docker-image
<<: *build-refs
- <<: *kubernetes-build
- image: docker:stable
- services:
- - docker:dind
+ <<: *kubernetes-env
+ <<: *vault-secrets
+ image: quay.io/buildah/stable
variables: &docker-build-vars
<<: *default-vars
- DOCKER_HOST: tcp://localhost:2375
- DOCKER_DRIVER: overlay2
GIT_STRATEGY: none
DOCKERFILE: $PRODUCT.Dockerfile
- CONTAINER_IMAGE: parity/$PRODUCT
+ IMAGE_NAME: docker.io/parity/$PRODUCT
before_script:
- - test "$Docker_Hub_User_Parity" -a "$Docker_Hub_Pass_Parity"
- || ( echo "no docker credentials provided"; exit 1 )
- - docker login -u "$Docker_Hub_User_Parity" -p "$Docker_Hub_Pass_Parity"
- - docker info
- script:
- cd ./artifacts/$PRODUCT/
- VERSION="$(cat ./VERSION)"
- echo "${PRODUCT} version = ${VERSION}"
- test -z "${VERSION}" && exit 1
- - docker build
- --build-arg VCS_REF="${CI_COMMIT_SHA}"
- --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
- --tag $CONTAINER_IMAGE:$VERSION
- --tag $CONTAINER_IMAGE:latest
- --file $DOCKERFILE .
- - docker push $CONTAINER_IMAGE:$VERSION
- - docker push $CONTAINER_IMAGE:latest
+ script:
+ - test "$DOCKER_HUB_USER" -a "$DOCKER_HUB_PASS" ||
+ ( echo "no docker credentials provided"; exit 1 )
+ - buildah bud
+ --format=docker
+ --build-arg VCS_REF="${CI_COMMIT_SHA}"
+ --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
+ --tag "$IMAGE_NAME:$VERSION"
+ --tag "$IMAGE_NAME:latest"
+ --file "$DOCKERFILE" .
+ - echo "$DOCKER_HUB_PASS" |
+ buildah login --username "$DOCKER_HUB_USER" --password-stdin docker.io
+ - buildah info
+ - buildah push --format=v2s2 "$IMAGE_NAME:$VERSION"
+ - buildah push --format=v2s2 "$IMAGE_NAME:latest"
+ after_script:
+ - buildah logout --all
+ # pass artifacts to the trigger-simnet job
+ - echo "SUBSTRATE_IMAGE_NAME=${IMAGE_NAME}" | tee -a ./artifacts/$PRODUCT/build.env
+ - IMAGE_TAG="$(cat ./artifacts/$PRODUCT/VERSION)"
+ - echo "SUBSTRATE_IMAGE_TAG=${IMAGE_TAG}" | tee -a ./artifacts/$PRODUCT/build.env
+ - cat ./artifacts/$PRODUCT/build.env
publish-docker-substrate:
stage: publish
<<: *build-push-docker-image
- # collect VERSION artifact here to pass it on to kubernetes
- <<: *collect-artifacts
+ <<: *build-refs
needs:
- job: build-linux-substrate
artifacts: true
variables:
<<: *docker-build-vars
PRODUCT: substrate
- after_script:
- - docker logout
- # only VERSION information is needed for the deployment
- - find ./artifacts/ -depth -not -name VERSION -type f -delete
+ artifacts:
+ reports:
+ # this artifact is used in trigger-simnet job
+ # https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#with-variable-inheritance
+ dotenv: ./artifacts/substrate/build.env
publish-docker-subkey:
stage: publish
@@ -645,13 +700,12 @@ publish-docker-subkey:
variables:
<<: *docker-build-vars
PRODUCT: subkey
- after_script:
- - docker logout
publish-s3-release:
stage: publish
<<: *build-refs
- <<: *kubernetes-build
+ <<: *kubernetes-env
+ <<: *vault-secrets
needs:
- job: build-linux-substrate
artifacts: true
@@ -670,121 +724,128 @@ publish-s3-release:
- aws s3 ls s3://${BUCKET}/${PREFIX}/latest/
--recursive --human-readable --summarize
-publish-s3-doc:
+publish-rustdoc:
stage: publish
- image: paritytech/awscli:latest
- allow_failure: true
+ <<: *kubernetes-env
+ <<: *vault-secrets
+ image: paritytech/tools:latest
+ variables:
+ GIT_DEPTH: 100
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME == "master"
+ # `needs:` can be removed after CI image gets nonroot. In this case `needs:` stops other
+ # artifacts from being dowloaded by this job.
needs:
- - job: build-rust-doc
+ - job: build-rustdoc
artifacts: true
- <<: *build-refs
- <<: *kubernetes-build
- variables:
- GIT_STRATEGY: none
- BUCKET: "releases.parity.io"
- PREFIX: "substrate-rustdoc"
- script:
- - test -r ./crate-docs/index.html || (
- echo "./crate-docs/index.html not present, build:rust:doc:release job not complete";
- exit 1
- )
- - aws s3 sync --delete --size-only --only-show-errors
- ./crate-docs/ s3://${BUCKET}/${PREFIX}/
+ script:
+ - rm -rf /tmp/*
+ # Set git config
+ - rm -rf .git/config
+ - git config user.email "devops-team@parity.io"
+ - git config user.name "${GITHUB_USER}"
+ - git config remote.origin.url "https://${GITHUB_TOKEN}@github.com/paritytech/substrate.git"
+ - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
+ - git fetch origin gh-pages
+ # Save README and docs
+ - cp -r ./crate-docs/ /tmp/doc/
+ - cp README.md /tmp/doc/
+ - git checkout gh-pages
+ # Remove everything and restore generated docs and README
+ - rm -rf ./*
+ - mv /tmp/doc/* .
+ # Upload files
+ - git add --all --force
+ # `git commit` has an exit code of > 0 if there is nothing to commit.
+ # This causes GitLab to exit immediately and marks this job failed.
+ # We don't want to mark the entire job failed if there's nothing to
+ # publish though, hence the `|| true`.
+ - git commit -m "Updated docs for ${CI_COMMIT_REF_NAME}" ||
+ echo "___Nothing to commit___"
+ - git push origin gh-pages --force
after_script:
- - aws s3 ls s3://${BUCKET}/${PREFIX}/
- --human-readable --summarize
+ - rm -rf .git/ ./*
publish-draft-release:
stage: publish
+ <<: *vault-secrets
image: paritytech/tools:latest
rules:
- if: $CI_COMMIT_REF_NAME =~ /^ci-release-.*$/
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+\.[0-9]+.*$/
+ - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
script:
- ./.maintain/gitlab/publish_draft_release.sh
allow_failure: true
-publish-to-crates-io:
+unleash-to-crates-io:
stage: publish
<<: *docker-env
+ <<: *vault-secrets
rules:
- if: $CI_COMMIT_REF_NAME =~ /^ci-release-.*$/
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+\.[0-9]+.*$/
+ # FIXME: wait until https://github.com/paritytech/cargo-unleash/issues/50 is fixed, also
+ # remove allow_failure: true on the check job
+ # - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
script:
- cargo install cargo-unleash ${CARGO_UNLEASH_INSTALL_PARAMS}
- cargo unleash em-dragons --no-check --owner github:paritytech:core-devs ${CARGO_UNLEASH_PKG_DEF}
allow_failure: true
-deploy-kubernetes-alerting-rules:
+#### stage: deploy
+
+deploy-prometheus-alerting-rules:
stage: deploy
- interruptible: true
- retry: 1
- tags:
- - kubernetes-parity-build
- image: paritytech/kubetools:latest
- environment:
- name: parity-mgmt-polkadot-alerting
+ needs:
+ - job: test-prometheus-alerting-rules
+ artifacts: false
+ allow_failure: true
+ trigger:
+ project: parity/infrastructure/cloud-infra
variables:
- NAMESPACE: monitoring
- PROMETHEUSRULE: prometheus-k8s-rules-polkadot-alerting
- RULES: .maintain/monitoring/alerting-rules/alerting-rules.yaml
- script:
- - echo "deploying prometheus alerting rules"
- - kubectl -n ${NAMESPACE} patch prometheusrule ${PROMETHEUSRULE}
- --type=merge --patch "$(sed 's/^/ /;1s/^/spec:\n/' ${RULES})"
+ SUBSTRATE_CI_COMMIT_NAME: "${CI_COMMIT_REF_NAME}"
+ SUBSTRATE_CI_COMMIT_REF: "${CI_COMMIT_SHORT_SHA}"
+ UPSTREAM_TRIGGER_PROJECT: "${CI_PROJECT_PATH}"
rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
- if: $CI_COMMIT_REF_NAME == "master"
changes:
- .gitlab-ci.yml
- .maintain/monitoring/**/*
-.validator-deploy: &validator-deploy
- stage: flaming-fir
+# Runs "quick" and "long" tests on nightly schedule and on commit / merge to master
+# A "quick" test is a smoke test where basic check-expect tests run by
+# checking values from metrics exposed by the app.
+# A "long" test is the load testing where we send 50K transactions into the
+# network and check if all completed successfully
+simnet-tests:
+ stage: deploy
+ image: docker.io/paritytech/simnet:${SIMNET_REF}
+ <<: *kubernetes-env
+ <<: *vault-secrets
rules:
- # .build-refs, but manual
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
- if: $CI_COMMIT_REF_NAME == "master"
- when: manual
- - if: $CI_PIPELINE_SOURCE == "web"
- when: manual
- - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- when: manual
needs:
- # script will fail if there is no artifacts/substrate/VERSION
- job: publish-docker-substrate
- artifacts: true
- image: parity/azure-ansible:v1
- allow_failure: true
- interruptible: true
+ # variables:
+ # `build.env` brings here `${SUBSTRATE_IMAGE_NAME}` and `${SUBSTRATE_IMAGE_TAG}`
+ # (`$VERSION` here, # i.e. `2643-0.8.29-5f689e0a-6b24dc54`).
+ # ${SIMNET_REF} is a gitlab variable
+ before_script:
+ - echo "Simnet Tests Config
+ docker.io/paritytech/simnet:${SIMNET_REF}
+ ${SUBSTRATE_IMAGE_NAME} ${SUBSTRATE_IAMGE_TAG}"
+ script:
+ - /home/nonroot/simnet/gurke/scripts/run-test-environment-manager.sh
+ --github-remote-dir="https://github.com/paritytech/substrate/tree/master/simnet_tests"
+ --config="simnet_tests/configs/default_local_testnet.toml"
+ --image="${SUBSTRATE_IMAGE_NAME}:${SUBSTRATE_IMAGE_TAG}"
+ retry: 2
tags:
- - linux-docker
-
-validator 1 4:
- <<: *validator-deploy
- script:
- - ./.maintain/flamingfir-deploy.sh flamingfir-validator1
-
-validator 2 4:
- <<: *validator-deploy
- script:
- - ./.maintain/flamingfir-deploy.sh flamingfir-validator2
-
-validator 3 4:
- <<: *validator-deploy
- script:
- - ./.maintain/flamingfir-deploy.sh flamingfir-validator3
-
-validator 4 4:
- <<: *validator-deploy
- script:
- - ./.maintain/flamingfir-deploy.sh flamingfir-validator4
-
-#### stage: .post
-
-check-labels:
- stage: .post
- image: paritytech/tools:latest
- <<: *kubernetes-build
- rules:
- - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- script:
- - ./.maintain/gitlab/check_labels.sh
+ - parity-simnet
diff --git a/.maintain/chaostest/.eslintignore b/.maintain/chaostest/.eslintignore
deleted file mode 100644
index 3c3629e647f5d..0000000000000
--- a/.maintain/chaostest/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/.maintain/chaostest/.eslintrc.json b/.maintain/chaostest/.eslintrc.json
deleted file mode 100644
index 43e483a80b2ea..0000000000000
--- a/.maintain/chaostest/.eslintrc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "env": {
- "node": true,
- "commonjs": true,
- "es6": true
- },
- "extends": [
- "standard"
- ],
- "globals": {
- "Atomics": "readonly",
- "SharedArrayBuffer": "readonly"
- },
- "parserOptions": {
- "ecmaVersion": 2018
- },
- "rules": {
- }
-}
diff --git a/.maintain/chaostest/.gitignore b/.maintain/chaostest/.gitignore
deleted file mode 100644
index ef9e9d1e696e4..0000000000000
--- a/.maintain/chaostest/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*-debug.log
-*-error.log
-/.nyc_output
-/dist
-/tmp
-/log
-.DS_Store
-.editorconfig
-yarn.lock
-node_modules
-/src/config/config.json
diff --git a/.maintain/chaostest/README.md b/.maintain/chaostest/README.md
deleted file mode 100644
index dc3d07b57905e..0000000000000
--- a/.maintain/chaostest/README.md
+++ /dev/null
@@ -1,89 +0,0 @@
-chaostest
-=========
-
-A cli for chaos testing on substrate
-
-[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
-[![Version](https://img.shields.io/npm/v/chaostest.svg)](https://npmjs.org/package/chaostest)
-[![Downloads/week](https://img.shields.io/npm/dw/chaostest.svg)](https://npmjs.org/package/chaostest)
-
-
-* [Usage](#usage)
-* [Commands](#commands)
-
-# Usage
-
-```sh-session
-$ npm install -g chaostest // yarn add global chaostest
-$ chaostest COMMAND
-running command...
-$ chaostest (-v|--version|version)
-chaostest/0.0.0 darwin-x64 node-v8.16.0
-$ chaostest --help [COMMAND]
-USAGE
- $ chaostest COMMAND
-...
-```
-
-# Commands
-
-* [`chaostest spawn`](#chaostest-spawn)
-* [`chaostest singlenodeheight`](#chaostest-singlenodeheight)
-* [`chaostest clean`](#chaostest-clean)
-
-## `chaostest spawn`
-
-Spawn a testnet based on your local k8s configuration. Could be either a dev node, a two node alicebob chain or a customized chain with various validators/fullnodes.
-
-```
-USAGE
- $ chaostest spawn [ARGUMENTS] [FLAGS]
-
-Arguments
- dev, a single fullnode in --dev mode
- alicebob, a two nodes private chain with Alice as bootnode and Bob as validator
- [chainName], a customized chain deployed with -v numbers of validators and -n numbers of fullnodes
-
-Flags
- --image, -i, the image tag of the certain substrate version you want to deploy
- --port, -p, the port to expose when image is deployed in a pod
- --namespace, the desired namespace to deploy on
- --validator, -v, the number of substrate validators to deploy
- --node, -n, the number of full nodes, if not set but exists, default to 1
-
-DESCRIPTION
- ...
- Extra documentation goes here
-```
-
-_See code: [src/commands/spawn/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/spawn/index.js)_
-
-## `chaostest singlenodeheight`
-
-Test against a fullnode on --dev mode to check if it can successfully produce blocks to a certain height.
-
-```
-USAGE
- $ chaostest singlenodeheight [FLAGS]
-
-FLAGS
- -h , the desired height of blocks to check if reachable, this only works with integers smaller than 2^6
- -t, the wait time out before it halts the polling
-```
-
-_See code: [src/commands/singlenodeheight/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/singlenodeheight/index.js)_
-
-## `chaostest clean`
-
-Clean up the k8s deployment by namespace.
-
-```
-USAGE
- $ chaostest clean [FLAGS]
-
-FLAGS
- -n , the desired namespace to delete on your k8s cluster
-```
-
-_See code: [src/commands/clean/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/clean/index.js)_
-
diff --git a/.maintain/chaostest/bin/run b/.maintain/chaostest/bin/run
deleted file mode 100755
index 30b14e177331d..0000000000000
--- a/.maintain/chaostest/bin/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env node
-
-require('@oclif/command').run()
-.then(require('@oclif/command/flush'))
-.catch(require('@oclif/errors/handle'))
diff --git a/.maintain/chaostest/bin/run.cmd b/.maintain/chaostest/bin/run.cmd
deleted file mode 100644
index 968fc30758e68..0000000000000
--- a/.maintain/chaostest/bin/run.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-
-node "%~dp0\run" %*
diff --git a/.maintain/chaostest/package-lock.json b/.maintain/chaostest/package-lock.json
deleted file mode 100644
index 09468e12fb4f9..0000000000000
--- a/.maintain/chaostest/package-lock.json
+++ /dev/null
@@ -1,5950 +0,0 @@
-{
- "name": "chaostest",
- "version": "0.0.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/generator": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
- "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.9.6",
- "jsesc": "^2.5.1",
- "lodash": "^4.17.13",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
- "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.9.5"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helper-validator-identifier": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
- "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
- "dev": true
- },
- "@babel/highlight": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
- "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
- "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
- "dev": true
- },
- "@babel/runtime": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
- "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/template": {
- "version": "7.8.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
- "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.6",
- "@babel/types": "^7.8.6"
- }
- },
- "@babel/traverse": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
- "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.6",
- "@babel/helper-function-name": "^7.9.5",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.6",
- "@babel/types": "^7.9.6",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.13"
- }
- },
- "@babel/types": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
- "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.9.5",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@kubernetes/client-node": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.11.2.tgz",
- "integrity": "sha512-Uhwd2y2qCvugICnHRC5h2MT5vw0a1dJPVVltVwmkeMuyGTPBccsTtpTcSfSLitwOrh4yr+9wG5bRcMdgeRjYPw==",
- "requires": {
- "@types/js-yaml": "^3.12.1",
- "@types/node": "^10.12.0",
- "@types/request": "^2.47.1",
- "@types/underscore": "^1.8.9",
- "@types/ws": "^6.0.1",
- "byline": "^5.0.0",
- "execa": "1.0.0",
- "isomorphic-ws": "^4.0.1",
- "js-yaml": "^3.13.1",
- "jsonpath-plus": "^0.19.0",
- "openid-client": "2.5.0",
- "request": "^2.88.0",
- "rfc4648": "^1.3.0",
- "shelljs": "^0.8.2",
- "tslib": "^1.9.3",
- "underscore": "^1.9.1",
- "ws": "^6.1.0"
- },
- "dependencies": {
- "jsonpath-plus": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz",
- "integrity": "sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg=="
- }
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
- "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.3",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
- "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
- "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.3",
- "fastq": "^1.6.0"
- }
- },
- "@oclif/command": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.6.1.tgz",
- "integrity": "sha512-pvmMmfGn+zm4e4RwVw63mg9sIaqKqmVsFbImQoUrCO/43UmWzoSHWNXKdgEGigOezWrkZfFucaeZcSbp149OWg==",
- "requires": {
- "@oclif/config": "^1.15.1",
- "@oclif/errors": "^1.2.2",
- "@oclif/parser": "^3.8.3",
- "@oclif/plugin-help": "^3",
- "debug": "^4.1.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "@oclif/plugin-help": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.0.1.tgz",
- "integrity": "sha512-Q1OITeUBkkydPf6r5qX75KgE9capr1mNrfHtfD7gkVXmqoTndrbc++z4KfAYNf5nhTCY7N9l52sjbF6BrSGu9w==",
- "requires": {
- "@oclif/command": "^1.5.20",
- "@oclif/config": "^1.15.1",
- "chalk": "^2.4.1",
- "indent-string": "^4.0.0",
- "lodash.template": "^4.4.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0",
- "widest-line": "^2.0.1",
- "wrap-ansi": "^4.0.0"
- }
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
- }
- },
- "@oclif/config": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.15.1.tgz",
- "integrity": "sha512-GdyHpEZuWlfU8GSaZoiywtfVBsPcfYn1KuSLT1JTfvZGpPG6vShcGr24YZ3HG2jXUFlIuAqDcYlTzOrqOdTPNQ==",
- "requires": {
- "@oclif/errors": "^1.0.0",
- "@oclif/parser": "^3.8.0",
- "debug": "^4.1.1",
- "tslib": "^1.9.3"
- }
- },
- "@oclif/dev-cli": {
- "version": "1.22.2",
- "resolved": "https://registry.npmjs.org/@oclif/dev-cli/-/dev-cli-1.22.2.tgz",
- "integrity": "sha512-c7633R37RxrQIpwqPKxjNRm6/jb1yuG8fd16hmNz9Nw+/MUhEtQtKHSCe9ScH8n5M06l6LEo4ldk9LEGtpaWwA==",
- "dev": true,
- "requires": {
- "@oclif/command": "^1.5.13",
- "@oclif/config": "^1.12.12",
- "@oclif/errors": "^1.2.2",
- "@oclif/plugin-help": "^2.1.6",
- "cli-ux": "^5.2.1",
- "debug": "^4.1.1",
- "fs-extra": "^7.0.1",
- "github-slugger": "^1.2.1",
- "lodash": "^4.17.11",
- "normalize-package-data": "^2.5.0",
- "qqjs": "^0.3.10",
- "tslib": "^1.9.3"
- }
- },
- "@oclif/errors": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.2.2.tgz",
- "integrity": "sha512-Eq8BFuJUQcbAPVofDxwdE0bL14inIiwt5EaKRVY9ZDIG11jwdXZqiQEECJx0VfnLyUZdYfRd/znDI/MytdJoKg==",
- "requires": {
- "clean-stack": "^1.3.0",
- "fs-extra": "^7.0.0",
- "indent-string": "^3.2.0",
- "strip-ansi": "^5.0.0",
- "wrap-ansi": "^4.0.0"
- }
- },
- "@oclif/linewrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz",
- "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw=="
- },
- "@oclif/parser": {
- "version": "3.8.5",
- "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz",
- "integrity": "sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==",
- "requires": {
- "@oclif/errors": "^1.2.2",
- "@oclif/linewrap": "^1.0.0",
- "chalk": "^2.4.2",
- "tslib": "^1.9.3"
- }
- },
- "@oclif/plugin-help": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-2.2.3.tgz",
- "integrity": "sha512-bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==",
- "requires": {
- "@oclif/command": "^1.5.13",
- "chalk": "^2.4.1",
- "indent-string": "^4.0.0",
- "lodash.template": "^4.4.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0",
- "widest-line": "^2.0.1",
- "wrap-ansi": "^4.0.0"
- },
- "dependencies": {
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
- }
- },
- "@oclif/screen": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz",
- "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==",
- "dev": true
- },
- "@oclif/test": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@oclif/test/-/test-1.2.6.tgz",
- "integrity": "sha512-8BQm0VFwTf/JpDnI3x6Lbp3S4RRUvQcv8WalKm82+7FNEylWMAXFNgBuzG65cNPj11J2jhlVo0gOWGF6hbiaJQ==",
- "dev": true,
- "requires": {
- "fancy-test": "^1.4.3"
- }
- },
- "@polkadot/api": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-0.95.2.tgz",
- "integrity": "sha512-SrYiEE9T+AmCx18NyhEk5l/7yPvVqogiz7rmW8YGlOZ89OEPHe2dOTaD5tZJ5daKXEkXFsqPPtwemCv2OZ2F1g==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/api-derive": "^0.95.2",
- "@polkadot/api-metadata": "^0.95.2",
- "@polkadot/keyring": "^1.6.1",
- "@polkadot/rpc-core": "^0.95.2",
- "@polkadot/rpc-provider": "^0.95.2",
- "@polkadot/types": "^0.95.2",
- "@polkadot/util-crypto": "^1.6.1"
- }
- },
- "@polkadot/api-derive": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-0.95.2.tgz",
- "integrity": "sha512-IScOMoUnrs/TCPk2zZZWUfw1EfV718HuFbIRFVg11PiG/uYQ+knNpr9cG/auRWelDMO0ef7eI+YOpf9+gV3EZw==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/api": "^0.95.2",
- "@polkadot/types": "^0.95.2"
- }
- },
- "@polkadot/api-metadata": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api-metadata/-/api-metadata-0.95.2.tgz",
- "integrity": "sha512-RyHr6o8Qdi0k1cTJj11AqZ3MFoPbqUK37RMpFH8vK6VHlZRlpqaZsCctWMEiOXQC2CtTnE5CIoQH11AKeIK+jw==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/types": "^0.95.2",
- "@polkadot/util": "^1.6.1",
- "@polkadot/util-crypto": "^1.6.1"
- }
- },
- "@polkadot/jsonrpc": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/jsonrpc/-/jsonrpc-0.95.2.tgz",
- "integrity": "sha512-U8cx5MuhWPRcuosSHv/Qw4OmlgSk410oTQtYvHAFDoHuPDcYXTBcCJ0e31cCZFBkaed+GTelkex9EPnHFi0x1g==",
- "requires": {
- "@babel/runtime": "^7.6.3"
- }
- },
- "@polkadot/keyring": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-1.8.1.tgz",
- "integrity": "sha512-KeDbfP8biY3bXEhMv1ANp9d3kCuXj2oxseuDK0jvxRo7CehVME9UwAMGQK3Y9NCUuYWd+xTO2To0ZOqR7hdmuQ==",
- "requires": {
- "@babel/runtime": "^7.7.7",
- "@polkadot/util": "^1.8.1",
- "@polkadot/util-crypto": "^1.8.1"
- }
- },
- "@polkadot/rpc-core": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-0.95.2.tgz",
- "integrity": "sha512-IjuzYfNSBWalzingkvpGdO9lZH6s5wFc5lWCINFDP/MSlnLfKzufzR0JeSiVCluraoohtUB/INVuBujDziZPzg==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/jsonrpc": "^0.95.2",
- "@polkadot/rpc-provider": "^0.95.2",
- "@polkadot/types": "^0.95.2",
- "@polkadot/util": "^1.6.1",
- "rxjs": "^6.5.3"
- }
- },
- "@polkadot/rpc-provider": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-0.95.2.tgz",
- "integrity": "sha512-+vSoI9mdHPnjL7jK666+HLJ21Ymxo8GHdO72mI1A3xGO7wBmjKbUMHEYUtRwxg7DGF4mSZ/HJogoSU4i9smzpw==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/api-metadata": "^0.95.2",
- "@polkadot/util": "^1.6.1",
- "@polkadot/util-crypto": "^1.6.1",
- "@types/nock": "^11.1.0",
- "eventemitter3": "^4.0.0",
- "isomorphic-fetch": "^2.2.1",
- "websocket": "^1.0.30"
- }
- },
- "@polkadot/types": {
- "version": "0.95.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-0.95.2.tgz",
- "integrity": "sha512-YiZbLgJ82rmgwbsYWEL8vtYqO1n1xEPxD5C8D0dmZQcwn9iSUibIqeij1xfd8y2ZyUmMW3YhdoJR6a8Ah6g3yw==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@polkadot/util": "^1.6.1",
- "@polkadot/util-crypto": "^1.6.1",
- "@types/memoizee": "^0.4.3",
- "memoizee": "^0.4.14"
- }
- },
- "@polkadot/util": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-1.8.1.tgz",
- "integrity": "sha512-sFpr+JLCG9d+epjboXsmJ1qcKa96r8ZYzXmVo8+aPzI/9jKKyez6Unox/dnfnpKppZB2nJuLcsxQm6nocp2Caw==",
- "requires": {
- "@babel/runtime": "^7.7.7",
- "@types/bn.js": "^4.11.6",
- "bn.js": "^4.11.8",
- "camelcase": "^5.3.1",
- "chalk": "^3.0.0",
- "ip-regex": "^4.1.0",
- "moment": "^2.24.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@polkadot/util-crypto": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-1.8.1.tgz",
- "integrity": "sha512-ypUs10hV1HPvYc0ZsEu+LTGSEh0rkr0as/FUh7+Z9v3Bxibn3aO+EOxJPQuDbZZ59FSMRmc9SeOSa0wn9ddrnw==",
- "requires": {
- "@babel/runtime": "^7.7.7",
- "@polkadot/util": "^1.8.1",
- "@polkadot/wasm-crypto": "^0.14.1",
- "@types/bip39": "^2.4.2",
- "@types/bs58": "^4.0.0",
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^3.5.0",
- "@types/xxhashjs": "^0.2.1",
- "base-x": "3.0.5",
- "bip39": "^2.5.0",
- "blakejs": "^1.1.0",
- "bs58": "^4.0.1",
- "js-sha3": "^0.8.0",
- "secp256k1": "^3.8.0",
- "tweetnacl": "^1.0.1",
- "xxhashjs": "^0.2.2"
- },
- "dependencies": {
- "secp256k1": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz",
- "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==",
- "requires": {
- "bindings": "^1.5.0",
- "bip66": "^1.1.5",
- "bn.js": "^4.11.8",
- "create-hash": "^1.2.0",
- "drbg.js": "^1.0.1",
- "elliptic": "^6.5.2",
- "nan": "^2.14.0",
- "safe-buffer": "^5.1.2"
- }
- },
- "tweetnacl": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
- "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
- }
- }
- },
- "@polkadot/wasm-crypto": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-0.14.1.tgz",
- "integrity": "sha512-Xng7L2Z8TNZa/5g6pot4O06Jf0ohQRZdvfl8eQL+E/L2mcqJYC1IjkMxJBSBuQEV7hisWzh9mHOy5WCcgPk29Q=="
- },
- "@sindresorhus/is": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
- "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
- },
- "@types/bip39": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/@types/bip39/-/bip39-2.4.2.tgz",
- "integrity": "sha512-Vo9lqOIRq8uoIzEVrV87ZvcIM0PN9t0K3oYZ/CS61fIYKCBdOIM7mlWzXuRvSXrDtVa1uUO2w1cdfufxTC0bzg==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==",
- "requires": {
- "base-x": "^3.0.6"
- },
- "dependencies": {
- "base-x": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
- "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- }
- }
- },
- "@types/caseless": {
- "version": "0.12.2",
- "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
- "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="
- },
- "@types/chai": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz",
- "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==",
- "dev": true
- },
- "@types/color-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
- "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
- },
- "@types/events": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
- "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
- "dev": true
- },
- "@types/glob": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
- "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
- "dev": true,
- "requires": {
- "@types/events": "*",
- "@types/minimatch": "*",
- "@types/node": "*"
- }
- },
- "@types/js-yaml": {
- "version": "3.12.4",
- "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.4.tgz",
- "integrity": "sha512-fYMgzN+9e28R81weVN49inn/u798ruU91En1ZnGvSZzCRc5jXx9B2EDhlRaWmcO1RIxFHL8AajRXzxDuJu93+A=="
- },
- "@types/lodash": {
- "version": "4.14.152",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.152.tgz",
- "integrity": "sha512-Vwf9YF2x1GE3WNeUMjT5bTHa2DqgUo87ocdgTScupY2JclZ5Nn7W2RLM/N0+oreexUk8uaVugR81NnTY/jNNXg==",
- "dev": true
- },
- "@types/memoizee": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/@types/memoizee/-/memoizee-0.4.4.tgz",
- "integrity": "sha512-c9+1g6+6vEqcw5UuM0RbfQV0mssmZcoG9+hNC5ptDCsv4G+XJW1Z4pE13wV5zbc9e0+YrDydALBTiD3nWG1a3g=="
- },
- "@types/minimatch": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
- "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
- "dev": true
- },
- "@types/mocha": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz",
- "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==",
- "dev": true
- },
- "@types/nock": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/@types/nock/-/nock-11.1.0.tgz",
- "integrity": "sha512-jI/ewavBQ7X5178262JQR0ewicPAcJhXS/iFaNJl0VHLfyosZ/kwSrsa6VNQNSO8i9d8SqdRgOtZSOKJ/+iNMw==",
- "requires": {
- "nock": "*"
- }
- },
- "@types/node": {
- "version": "10.17.24",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz",
- "integrity": "sha512-5SCfvCxV74kzR3uWgTYiGxrd69TbT1I6+cMx1A5kEly/IVveJBimtAMlXiEyVFn5DvUFewQWxOOiJhlxeQwxgA=="
- },
- "@types/pbkdf2": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.0.0.tgz",
- "integrity": "sha512-6J6MHaAlBJC/eVMy9jOwj9oHaprfutukfW/Dyt0NEnpQ/6HN6YQrpvLwzWdWDeWZIdenjGHlbYDzyEODO5Z+2Q==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/request": {
- "version": "2.48.5",
- "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz",
- "integrity": "sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==",
- "requires": {
- "@types/caseless": "*",
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "form-data": "^2.5.0"
- }
- },
- "@types/secp256k1": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-3.5.3.tgz",
- "integrity": "sha512-NGcsPDR0P+Q71O63e2ayshmiZGAwCOa/cLJzOIuhOiDvmbvrCIiVtEpqdCJGogG92Bnr6tw/6lqVBsRMEl15OQ==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/sinon": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.4.tgz",
- "integrity": "sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==",
- "dev": true,
- "requires": {
- "@types/sinonjs__fake-timers": "*"
- }
- },
- "@types/sinonjs__fake-timers": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz",
- "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==",
- "dev": true
- },
- "@types/tough-cookie": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz",
- "integrity": "sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A=="
- },
- "@types/underscore": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.10.0.tgz",
- "integrity": "sha512-ZAbqul7QAKpM2h1PFGa5ETN27ulmqtj0QviYHasw9LffvXZvVHuraOx/FOsIPPDNGZN0Qo1nASxxSfMYOtSoCw=="
- },
- "@types/ws": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz",
- "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/xxhashjs": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@types/xxhashjs/-/xxhashjs-0.2.2.tgz",
- "integrity": "sha512-+hlk/W1kgnZn0vR22XNhxHk/qIRQYF54i0UTF2MwBAPd0e7xSy+jKOJwSwTdRQrNnOMRVv+vsh8ITV0uyhp2yg==",
- "requires": {
- "@types/node": "*"
- }
- },
- "acorn": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
- "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
- "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
- "dev": true
- },
- "aggregate-error": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz",
- "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=",
- "requires": {
- "clean-stack": "^1.0.0",
- "indent-string": "^3.0.0"
- }
- },
- "ajv": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
- "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
- "dev": true,
- "requires": {
- "type-fest": "^0.11.0"
- }
- },
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "ansicolors": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
- "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
- "dev": true
- },
- "append-transform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
- "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
- "dev": true,
- "requires": {
- "default-require-extensions": "^2.0.0"
- }
- },
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
- "dev": true
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-includes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
- "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
- "is-string": "^1.0.5"
- }
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "array.prototype.flat": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
- "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
- }
- },
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- },
- "assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true
- },
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "dev": true
- },
- "async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
- "requires": {
- "lodash": "^4.17.14"
- }
- },
- "async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
- },
- "aws4": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
- "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base-x": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz",
- "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "base64-js": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
- },
- "base64url": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
- "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "bip39": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz",
- "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==",
- "requires": {
- "create-hash": "^1.1.0",
- "pbkdf2": "^3.0.9",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "unorm": "^1.3.3"
- }
- },
- "bip66": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
- "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "bl": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
- "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
- "dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "blakejs": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz",
- "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U="
- },
- "bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
- },
- "browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "requires": {
- "pako": "~1.0.5"
- }
- },
- "bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
- "requires": {
- "base-x": "^3.0.2"
- }
- },
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
- }
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
- },
- "byline": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
- "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE="
- },
- "cacheable-request": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
- "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=",
- "requires": {
- "clone-response": "1.0.2",
- "get-stream": "3.0.0",
- "http-cache-semantics": "3.8.1",
- "keyv": "3.0.0",
- "lowercase-keys": "1.0.0",
- "normalize-url": "2.0.1",
- "responselike": "1.0.2"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
- }
- }
- },
- "caching-transform": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
- "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
- "dev": true,
- "requires": {
- "hasha": "^3.0.0",
- "make-dir": "^2.0.0",
- "package-hash": "^3.0.0",
- "write-file-atomic": "^2.4.2"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- }
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
- },
- "cardinal": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
- "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=",
- "dev": true,
- "requires": {
- "ansicolors": "~0.3.2",
- "redeyed": "~2.1.0"
- }
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
- },
- "chai": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
- "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
- "dev": true,
- "requires": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "pathval": "^1.1.0",
- "type-detect": "^4.0.5"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
- },
- "check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
- "dev": true
- },
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "clean-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
- "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "clean-stack": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz",
- "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE="
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "requires": {
- "restore-cursor": "^3.1.0"
- }
- },
- "cli-progress": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.8.2.tgz",
- "integrity": "sha512-qRwBxLldMSfxB+YGFgNRaj5vyyHe1yMpVeDL79c+7puGujdKJHQHydgqXDcrkvQgJ5U/d3lpf6vffSoVVUftVQ==",
- "dev": true,
- "requires": {
- "colors": "^1.1.2",
- "string-width": "^4.2.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- }
- }
- },
- "cli-ux": {
- "version": "5.4.6",
- "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.6.tgz",
- "integrity": "sha512-EeiS2TzEndRVknCqE+8Ri8g0bsP617a1nq6n+3Trwft1JCDzyUNlX2J1fl7fwTgRPWtmBmiF6xIyueL5YGs65g==",
- "dev": true,
- "requires": {
- "@oclif/command": "^1.6.0",
- "@oclif/errors": "^1.2.1",
- "@oclif/linewrap": "^1.0.0",
- "@oclif/screen": "^1.0.3",
- "ansi-escapes": "^4.3.0",
- "ansi-styles": "^4.2.0",
- "cardinal": "^2.1.1",
- "chalk": "^2.4.1",
- "clean-stack": "^2.0.0",
- "cli-progress": "^3.4.0",
- "extract-stack": "^1.0.0",
- "fs-extra": "^7.0.1",
- "hyperlinker": "^1.0.0",
- "indent-string": "^4.0.0",
- "is-wsl": "^1.1.0",
- "js-yaml": "^3.13.1",
- "lodash": "^4.17.11",
- "natural-orderby": "^2.0.1",
- "object-treeify": "^1.1.4",
- "password-prompt": "^1.1.2",
- "semver": "^5.6.0",
- "string-width": "^3.1.0",
- "strip-ansi": "^5.1.0",
- "supports-color": "^5.5.0",
- "supports-hyperlinks": "^1.0.1",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
- }
- },
- "cli-width": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
- "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
- "dev": true
- },
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- },
- "dependencies": {
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- }
- }
- }
- },
- "clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "color": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
- "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
- "requires": {
- "color-convert": "^1.9.1",
- "color-string": "^1.5.2"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "color-string": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
- "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
- "requires": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "colornames": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
- "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y="
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
- },
- "colorspace": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
- "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
- "requires": {
- "color": "3.0.x",
- "text-hex": "1.0.x"
- }
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "contains-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
- "dev": true
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "dev": true
- },
- "convert-source-map": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
- "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "cp-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
- "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^2.0.0",
- "nested-error-stacks": "^2.0.0",
- "pify": "^4.0.1",
- "safe-buffer": "^5.0.1"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- }
- }
- },
- "create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "cuint": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
- "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs="
- },
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
- },
- "decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "dev": true,
- "requires": {
- "type-detect": "^4.0.0"
- }
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
- "default-require-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
- "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
- "dev": true,
- "requires": {
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
- }
- },
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "detect-indent": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
- "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
- "dev": true
- },
- "diagnostics": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
- "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
- "requires": {
- "colorspace": "1.1.x",
- "enabled": "1.0.x",
- "kuler": "1.0.x"
- }
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "drbg.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
- "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
- "requires": {
- "browserify-aes": "^1.0.6",
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4"
- }
- },
- "duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "elliptic": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
- "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
- "requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
- }
- },
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
- },
- "enabled": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
- "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
- "requires": {
- "env-variable": "0.0.x"
- }
- },
- "encoding": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
- "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
- "requires": {
- "iconv-lite": "~0.4.13"
- }
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "env-variable": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
- "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
- "requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
- },
- "dependencies": {
- "next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
- }
- }
- },
- "es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
- },
- "es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "requires": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "eslint": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz",
- "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "eslint-scope": "^5.0.0",
- "eslint-utils": "^2.0.0",
- "eslint-visitor-keys": "^1.1.0",
- "espree": "^7.0.0",
- "esquery": "^1.2.0",
- "esutils": "^2.0.2",
- "file-entry-cache": "^5.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^5.0.0",
- "globals": "^12.1.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "inquirer": "^7.0.0",
- "is-glob": "^4.0.0",
- "js-yaml": "^3.13.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash": "^4.17.14",
- "minimatch": "^3.0.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "progress": "^2.0.0",
- "regexpp": "^3.1.0",
- "semver": "^7.2.1",
- "strip-ansi": "^6.0.0",
- "strip-json-comments": "^3.1.0",
- "table": "^5.2.3",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
- "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
- "dev": true,
- "requires": {
- "type-fest": "^0.8.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
- "dev": true
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "eslint-ast-utils": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz",
- "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==",
- "dev": true,
- "requires": {
- "lodash.get": "^4.4.2",
- "lodash.zip": "^4.2.0"
- }
- },
- "eslint-config-oclif": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-3.1.0.tgz",
- "integrity": "sha512-Tqgy43cNXsSdhTLWW4RuDYGFhV240sC4ISSv/ZiUEg/zFxExSEUpRE6J+AGnkKY9dYwIW4C9b2YSUVv8z/miMA==",
- "dev": true,
- "requires": {
- "eslint-config-xo-space": "^0.20.0",
- "eslint-plugin-mocha": "^5.2.0",
- "eslint-plugin-node": "^7.0.1",
- "eslint-plugin-unicorn": "^6.0.1"
- },
- "dependencies": {
- "eslint-plugin-es": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz",
- "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==",
- "dev": true,
- "requires": {
- "eslint-utils": "^1.4.2",
- "regexpp": "^2.0.1"
- }
- },
- "eslint-plugin-node": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz",
- "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==",
- "dev": true,
- "requires": {
- "eslint-plugin-es": "^1.3.1",
- "eslint-utils": "^1.3.1",
- "ignore": "^4.0.2",
- "minimatch": "^3.0.4",
- "resolve": "^1.8.1",
- "semver": "^5.5.0"
- }
- },
- "eslint-plugin-unicorn": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-6.0.1.tgz",
- "integrity": "sha512-hjy9LhTdtL7pz8WTrzS0CGXRkWK3VAPLDjihofj8JC+uxQLfXm0WwZPPPB7xKmcjRyoH+jruPHOCrHNEINpG/Q==",
- "dev": true,
- "requires": {
- "clean-regexp": "^1.0.0",
- "eslint-ast-utils": "^1.0.0",
- "import-modules": "^1.1.0",
- "lodash.camelcase": "^4.1.1",
- "lodash.kebabcase": "^4.0.1",
- "lodash.snakecase": "^4.0.1",
- "lodash.upperfirst": "^4.2.0",
- "safe-regex": "^1.1.0"
- }
- },
- "eslint-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
- "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
- },
- "regexpp": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
- "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
- "dev": true
- }
- }
- },
- "eslint-config-standard": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
- "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
- "dev": true
- },
- "eslint-config-xo": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.24.2.tgz",
- "integrity": "sha512-ivQ7qISScW6gfBp+p31nQntz1rg34UCybd3uvlngcxt5Utsf4PMMi9QoAluLFcPUM5Tvqk4JGraR9qu3msKPKQ==",
- "dev": true
- },
- "eslint-config-xo-space": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.20.0.tgz",
- "integrity": "sha512-bOsoZA8M6v1HviDUIGVq1fLVnSu3mMZzn85m2tqKb73tSzu4GKD4Jd2Py4ZKjCgvCbRRByEB5HPC3fTMnnJ1uw==",
- "dev": true,
- "requires": {
- "eslint-config-xo": "^0.24.0"
- }
- },
- "eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
- "dev": true,
- "requires": {
- "debug": "^2.6.9",
- "resolve": "^1.13.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "eslint-module-utils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
- "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
- "dev": true,
- "requires": {
- "debug": "^2.6.9",
- "pkg-dir": "^2.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "pkg-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
- "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
- "dev": true,
- "requires": {
- "find-up": "^2.1.0"
- }
- }
- }
- },
- "eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "dev": true,
- "requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- }
- },
- "eslint-plugin-import": {
- "version": "2.20.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
- "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
- "dev": true,
- "requires": {
- "array-includes": "^3.0.3",
- "array.prototype.flat": "^1.2.1",
- "contains-path": "^0.1.0",
- "debug": "^2.6.9",
- "doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.2",
- "eslint-module-utils": "^2.4.1",
- "has": "^1.0.3",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.0",
- "read-pkg-up": "^2.0.0",
- "resolve": "^1.12.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "isarray": "^1.0.0"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true,
- "requires": {
- "error-ex": "^1.2.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "^2.0.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
- }
- },
- "eslint-plugin-mocha": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz",
- "integrity": "sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==",
- "dev": true,
- "requires": {
- "ramda": "^0.26.1"
- }
- },
- "eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "dev": true,
- "requires": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "eslint-plugin-promise": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
- "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
- "dev": true
- },
- "eslint-plugin-standard": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz",
- "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==",
- "dev": true
- },
- "eslint-scope": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
- "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
- "eslint-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
- "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
- "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
- "dev": true
- },
- "espree": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz",
- "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==",
- "dev": true,
- "requires": {
- "acorn": "^7.1.1",
- "acorn-jsx": "^5.2.0",
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- },
- "esquery": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
- "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
- "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
- "dev": true
- }
- }
- },
- "esrecurse": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
- "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
- "dev": true,
- "requires": {
- "estraverse": "^4.1.0"
- }
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
- "eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "ext": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
- "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
- "requires": {
- "type": "^2.0.0"
- },
- "dependencies": {
- "type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
- "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
- }
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dev": true,
- "requires": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "dependencies": {
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "requires": {
- "os-tmpdir": "~1.0.2"
- }
- }
- }
- },
- "extract-stack": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-1.0.0.tgz",
- "integrity": "sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo=",
- "dev": true
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
- },
- "fancy-test": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/fancy-test/-/fancy-test-1.4.8.tgz",
- "integrity": "sha512-/uCv78YSAz4UOQ3ZptnxOq6qYhJDMtwFHQnsghzGl2g6uO2VNfJDKlyczqFpG+KueXe7phoeIS6hMU1x/qhizQ==",
- "dev": true,
- "requires": {
- "@types/chai": "*",
- "@types/lodash": "*",
- "@types/mocha": "*",
- "@types/node": "*",
- "@types/sinon": "*",
- "lodash": "^4.17.13",
- "mock-stdin": "^0.3.1",
- "stdout-stderr": "^0.1.9"
- }
- },
- "fast-deep-equal": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
- "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
- },
- "fast-glob": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz",
- "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.0",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.2",
- "picomatch": "^2.2.1"
- }
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "fast-safe-stringify": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
- "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
- },
- "fastq": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
- "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "fecha": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
- "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "file-entry-cache": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
- "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
- "dev": true,
- "requires": {
- "flat-cache": "^2.0.1"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0"
- }
- }
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat-cache": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
- "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
- "dev": true,
- "requires": {
- "flatted": "^2.0.0",
- "rimraf": "2.6.3",
- "write": "1.0.3"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "flatted": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
- "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
- "dev": true
- },
- "foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=",
- "dev": true,
- "requires": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
- "dev": true,
- "requires": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
- }
- },
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
- }
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
- "requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- }
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
- "fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
- "dev": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
- "dev": true
- },
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "github-slugger": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz",
- "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==",
- "dev": true,
- "requires": {
- "emoji-regex": ">=6.0.0 <=6.1.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz",
- "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=",
- "dev": true
- }
- }
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
- "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
- "globby": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
- "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
- "dev": true,
- "requires": {
- "@types/glob": "^7.1.1",
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.0.3",
- "glob": "^7.1.3",
- "ignore": "^5.1.1",
- "merge2": "^1.2.3",
- "slash": "^3.0.0"
- }
- },
- "got": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
- "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
- "requires": {
- "@sindresorhus/is": "^0.7.0",
- "cacheable-request": "^2.1.1",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "into-stream": "^3.1.0",
- "is-retry-allowed": "^1.1.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "mimic-response": "^1.0.0",
- "p-cancelable": "^0.4.0",
- "p-timeout": "^2.0.1",
- "pify": "^3.0.0",
- "safe-buffer": "^5.1.1",
- "timed-out": "^4.0.1",
- "url-parse-lax": "^3.0.0",
- "url-to-options": "^1.0.1"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- }
- }
- },
- "graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
- "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
- },
- "har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
- "requires": {
- "ajv": "^6.5.5",
- "har-schema": "^2.0.0"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "has-symbol-support-x": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
- "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "has-to-string-tag-x": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
- "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
- "requires": {
- "has-symbol-support-x": "^1.4.1"
- }
- },
- "hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "requires": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "requires": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "hasha": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
- "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=",
- "dev": true,
- "requires": {
- "is-stream": "^1.0.1"
- }
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "hosted-git-info": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
- "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
- "dev": true
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "http-cache-semantics": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
- "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
- },
- "http-call": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz",
- "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==",
- "dev": true,
- "requires": {
- "content-type": "^1.0.4",
- "debug": "^4.1.1",
- "is-retry-allowed": "^1.1.0",
- "is-stream": "^2.0.0",
- "parse-json": "^4.0.0",
- "tunnel-agent": "^0.6.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
- "dev": true
- }
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "hyperlinker": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz",
- "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
- },
- "ignore": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
- "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
- "dev": true
- },
- "import-fresh": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
- "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "import-modules": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-1.1.0.tgz",
- "integrity": "sha1-dI23nFzEK7lwHvq0JPiU5yYA6dw=",
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "dev": true
- },
- "indent-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
- "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "inquirer": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
- "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^3.0.0",
- "cli-cursor": "^3.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.15",
- "mute-stream": "0.0.8",
- "run-async": "^2.4.0",
- "rxjs": "^6.5.3",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "interpret": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
- "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="
- },
- "into-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
- "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
- "requires": {
- "from2": "^2.1.1",
- "p-is-promise": "^1.1.0"
- }
- },
- "ip-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.1.0.tgz",
- "integrity": "sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA=="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
- },
- "is-date-object": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
- "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
- "dev": true
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
- "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA="
- },
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
- },
- "is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
- "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
- },
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-retry-allowed": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
- "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "is-string": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
- "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
- "dev": true
- },
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isomorphic-fetch": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
- "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
- "requires": {
- "node-fetch": "^1.0.1",
- "whatwg-fetch": ">=0.10.0"
- }
- },
- "isomorphic-ws": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
- "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true
- },
- "istanbul-lib-hook": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
- "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
- "dev": true,
- "requires": {
- "append-transform": "^1.0.0"
- }
- },
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "requires": {
- "@babel/generator": "^7.4.0",
- "@babel/parser": "^7.4.3",
- "@babel/template": "^7.4.0",
- "@babel/traverse": "^7.4.3",
- "@babel/types": "^7.4.0",
- "istanbul-lib-coverage": "^2.0.5",
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0"
- }
- },
- "isurl": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
- "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
- "requires": {
- "has-to-string-tag-x": "^1.2.0",
- "is-object": "^1.0.1"
- }
- },
- "js-sha3": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
- "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
- "json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
- },
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- }
- },
- "keyv": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
- "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
- "requires": {
- "json-buffer": "3.0.0"
- }
- },
- "kuler": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
- "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
- "requires": {
- "colornames": "^1.1.1"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "lines-and-columns": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
- "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
- "dev": true
- },
- "load-json-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
- "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^5.0.0",
- "strip-bom": "^4.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
- "lines-and-columns": "^1.1.6"
- }
- },
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
- },
- "lodash._reinterpolate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
- "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
- },
- "lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
- "dev": true
- },
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
- "dev": true
- },
- "lodash.kebabcase": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
- "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=",
- "dev": true
- },
- "lodash.snakecase": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
- "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=",
- "dev": true
- },
- "lodash.template": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
- "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
- "requires": {
- "lodash._reinterpolate": "^3.0.0",
- "lodash.templatesettings": "^4.0.0"
- }
- },
- "lodash.templatesettings": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
- "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
- "requires": {
- "lodash._reinterpolate": "^3.0.0"
- }
- },
- "lodash.upperfirst": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz",
- "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=",
- "dev": true
- },
- "lodash.zip": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
- "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=",
- "dev": true
- },
- "logform": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz",
- "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==",
- "requires": {
- "colors": "^1.2.1",
- "fast-safe-stringify": "^2.0.4",
- "fecha": "^2.3.3",
- "ms": "^2.1.1",
- "triple-beam": "^1.3.0"
- }
- },
- "long": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
- "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
- },
- "lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
- },
- "lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "lru-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
- "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
- "requires": {
- "es5-ext": "~0.10.2"
- }
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "requires": {
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "memoizee": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
- "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.45",
- "es6-weak-map": "^2.0.2",
- "event-emitter": "^0.3.5",
- "is-promise": "^2.1",
- "lru-queue": "0.1",
- "next-tick": "1",
- "timers-ext": "^0.1.5"
- }
- },
- "merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "dev": true,
- "requires": {
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "merge2": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
- "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.0.5"
- }
- },
- "mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
- "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
- },
- "mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
- "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
- "requires": {
- "mime-db": "1.44.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
- },
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
- },
- "mock-stdin": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/mock-stdin/-/mock-stdin-0.3.1.tgz",
- "integrity": "sha1-xlfZZC2QeGQ1xkyl6Zu9TQm9fdM=",
- "dev": true
- },
- "moment": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz",
- "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "nan": {
- "version": "2.14.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
- "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
- },
- "natural-orderby": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz",
- "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==",
- "dev": true
- },
- "nested-error-stacks": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
- "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==",
- "dev": true
- },
- "next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- },
- "nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
- },
- "nock": {
- "version": "12.0.3",
- "resolved": "https://registry.npmjs.org/nock/-/nock-12.0.3.tgz",
- "integrity": "sha512-QNb/j8kbFnKCiyqi9C5DD0jH/FubFGj5rt9NQFONXwQm3IPB0CULECg/eS3AU1KgZb/6SwUa4/DTRKhVxkGABw==",
- "requires": {
- "debug": "^4.1.0",
- "json-stringify-safe": "^5.0.1",
- "lodash": "^4.17.13",
- "propagate": "^2.0.0"
- }
- },
- "node-fetch": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
- "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
- "requires": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
- }
- },
- "node-forge": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz",
- "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q=="
- },
- "node-jose": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.1.4.tgz",
- "integrity": "sha512-L31IFwL3pWWcMHxxidCY51ezqrDXMkvlT/5pLTfNw5sXmmOLJuN6ug7txzF/iuZN55cRpyOmoJrotwBQIoo5Lw==",
- "requires": {
- "base64url": "^3.0.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^5.5.0",
- "es6-promise": "^4.2.8",
- "lodash": "^4.17.15",
- "long": "^4.0.0",
- "node-forge": "^0.8.5",
- "process": "^0.11.10",
- "react-zlib-js": "^1.0.4",
- "uuid": "^3.3.3"
- }
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "normalize-url": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
- "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
- "requires": {
- "prepend-http": "^2.0.0",
- "query-string": "^5.0.1",
- "sort-keys": "^2.0.0"
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "requires": {
- "path-key": "^2.0.0"
- }
- },
- "nyc": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
- "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
- "dev": true,
- "requires": {
- "archy": "^1.0.0",
- "caching-transform": "^3.0.2",
- "convert-source-map": "^1.6.0",
- "cp-file": "^6.2.0",
- "find-cache-dir": "^2.1.0",
- "find-up": "^3.0.0",
- "foreground-child": "^1.5.6",
- "glob": "^7.1.3",
- "istanbul-lib-coverage": "^2.0.5",
- "istanbul-lib-hook": "^2.0.7",
- "istanbul-lib-instrument": "^3.3.0",
- "istanbul-lib-report": "^2.0.8",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^2.2.4",
- "js-yaml": "^3.13.1",
- "make-dir": "^2.1.0",
- "merge-source-map": "^1.1.0",
- "resolve-from": "^4.0.0",
- "rimraf": "^2.6.3",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^5.2.3",
- "uuid": "^3.3.2",
- "yargs": "^13.2.2",
- "yargs-parser": "^13.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- }
- }
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "object-hash": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
- "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
- },
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "object-treeify": {
- "version": "1.1.24",
- "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.24.tgz",
- "integrity": "sha512-ttlIN3MoqnhevarRtDNELvNjQ85Wguq2zSkR2N9DGFM3pFWMjsz7tSqbjX7lx16BmFwLOwBa3w0TY1jJajklFg==",
- "dev": true
- },
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
- }
- },
- "oidc-token-hash": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.2.tgz",
- "integrity": "sha512-dTzp80/y/da+um+i+sOucNqiPpwRL7M/xPwj7pH1TFA2/bqQ+OK2sJahSXbemEoLtPkHcFLyhLhLWZa9yW5+RA=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "one-time": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
- "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
- },
- "onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "openid-client": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.5.0.tgz",
- "integrity": "sha512-t3hFD7xEoW1U25RyBcRFaL19fGGs6hNVTysq9pgmiltH0IVUPzH/bQV9w24pM5Q7MunnGv2/5XjIru6BQcWdxg==",
- "requires": {
- "base64url": "^3.0.0",
- "got": "^8.3.2",
- "lodash": "^4.17.11",
- "lru-cache": "^5.1.1",
- "node-jose": "^1.1.0",
- "object-hash": "^1.3.1",
- "oidc-token-hash": "^3.0.1",
- "p-any": "^1.1.0"
- }
- },
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
- },
- "p-any": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz",
- "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==",
- "requires": {
- "p-some": "^2.0.0"
- }
- },
- "p-cancelable": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
- "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
- },
- "p-is-promise": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-some": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-some/-/p-some-2.0.1.tgz",
- "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=",
- "requires": {
- "aggregate-error": "^1.0.0"
- }
- },
- "p-timeout": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
- "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "package-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
- "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.15",
- "hasha": "^3.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- }
- },
- "pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "password-prompt": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz",
- "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^3.1.0",
- "cross-spawn": "^6.0.5"
- },
- "dependencies": {
- "ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
- "dev": true
- }
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "pathval": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
- "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
- "dev": true
- },
- "pbkdf2": {
- "version": "3.0.17",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
- "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
- "requires": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
- },
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
- "prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "dev": true
- },
- "propagate": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
- "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag=="
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
- },
- "psl": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- },
- "qqjs": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/qqjs/-/qqjs-0.3.11.tgz",
- "integrity": "sha512-pB2X5AduTl78J+xRSxQiEmga1jQV0j43jOPs/MTgTLApGFEOn6NgdE2dEjp7nvDtjkIOZbvFIojAiYUx6ep3zg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.1",
- "debug": "^4.1.1",
- "execa": "^0.10.0",
- "fs-extra": "^6.0.1",
- "get-stream": "^5.1.0",
- "glob": "^7.1.2",
- "globby": "^10.0.1",
- "http-call": "^5.1.2",
- "load-json-file": "^6.2.0",
- "pkg-dir": "^4.2.0",
- "tar-fs": "^2.0.0",
- "tmp": "^0.1.0",
- "write-json-file": "^4.1.1"
- },
- "dependencies": {
- "execa": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
- "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
- "dev": true,
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- }
- }
- },
- "fs-extra": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
- "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- }
- }
- },
- "qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
- },
- "query-string": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
- "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
- "requires": {
- "decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
- }
- },
- "ramda": {
- "version": "0.26.1",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz",
- "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==",
- "dev": true
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "react-zlib-js": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/react-zlib-js/-/react-zlib-js-1.0.4.tgz",
- "integrity": "sha512-ynXD9DFxpE7vtGoa3ZwBtPmZrkZYw2plzHGbanUjBOSN4RtuXdektSfABykHtTiWEHMh7WdYj45LHtp228ZF1A=="
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
- }
- },
- "read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "requires": {
- "resolve": "^1.1.6"
- }
- },
- "redeyed": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
- "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=",
- "dev": true,
- "requires": {
- "esprima": "~4.0.0"
- }
- },
- "regenerator-runtime": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
- "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
- },
- "regexpp": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
- "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
- "dev": true
- },
- "release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
- "dev": true,
- "requires": {
- "es6-error": "^4.0.1"
- }
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- }
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "resolve": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
- "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
- "requires": {
- "path-parse": "^1.0.6"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
- "requires": {
- "lowercase-keys": "^1.0.0"
- }
- },
- "restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "requires": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- }
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rfc4648": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.3.0.tgz",
- "integrity": "sha512-x36K12jOflpm1V8QjPq3I+pt7Z1xzeZIjiC8J2Oxd7bE1efTrOG241DTYVJByP/SxR9jl1t7iZqYxDX864jgBQ=="
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true
- },
- "run-parallel": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
- "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
- "dev": true
- },
- "rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "dev": true,
- "requires": {
- "ret": "~0.1.10"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
- "shebang-regex": "^1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "shelljs": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
- "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
- "requires": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- }
- },
- "signal-exit": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
- },
- "simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
- "requires": {
- "is-arrayish": "^0.3.1"
- },
- "dependencies": {
- "is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
- }
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "slice-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
- "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.0",
- "astral-regex": "^1.0.0",
- "is-fullwidth-code-point": "^2.0.0"
- }
- },
- "sort-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
- "requires": {
- "is-plain-obj": "^1.0.0"
- }
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
- },
- "spawn-wrap": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
- "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
- "dev": true,
- "requires": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
- }
- },
- "spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
- "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "sshpk": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
- "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
- },
- "stdout-stderr": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/stdout-stderr/-/stdout-stderr-0.1.13.tgz",
- "integrity": "sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- }
- }
- },
- "strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
- "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
- }
- },
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
- "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
- },
- "strip-json-comments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "supports-hyperlinks": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz",
- "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==",
- "dev": true,
- "requires": {
- "has-flag": "^2.0.0",
- "supports-color": "^5.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- }
- }
- },
- "table": {
- "version": "5.4.6",
- "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
- "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
- "dev": true,
- "requires": {
- "ajv": "^6.10.2",
- "lodash": "^4.17.14",
- "slice-ansi": "^2.1.0",
- "string-width": "^3.0.0"
- },
- "dependencies": {
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
- }
- },
- "tar-fs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
- "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
- "dev": true,
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.0.0"
- }
- },
- "tar-stream": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
- "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
- "dev": true,
- "requires": {
- "bl": "^4.0.1",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- }
- },
- "text-hex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
- "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
- },
- "timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
- },
- "timers-ext": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
- "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
- "requires": {
- "es5-ext": "~0.10.46",
- "next-tick": "1"
- }
- },
- "tmp": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz",
- "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==",
- "dev": true,
- "requires": {
- "rimraf": "^2.6.3"
- }
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- },
- "triple-beam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
- "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
- },
- "tslib": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
- "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
- "dev": true
- },
- "typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "requires": {
- "is-typedarray": "^1.0.0"
- }
- },
- "underscore": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
- "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
- },
- "unorm": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
- "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA=="
- },
- "uri-js": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
- "requires": {
- "prepend-http": "^2.0.0"
- }
- },
- "url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "v8-compile-cache": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
- "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "websocket": {
- "version": "1.0.31",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz",
- "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==",
- "requires": {
- "debug": "^2.2.0",
- "es5-ext": "^0.10.50",
- "nan": "^2.14.0",
- "typedarray-to-buffer": "^3.1.5",
- "yaeti": "^0.0.6"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "whatwg-fetch": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
- "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
- },
- "widest-line": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
- "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
- "requires": {
- "string-width": "^2.1.1"
- }
- },
- "winston": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
- "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
- "requires": {
- "async": "^2.6.1",
- "diagnostics": "^1.1.1",
- "is-stream": "^1.1.0",
- "logform": "^2.1.1",
- "one-time": "0.0.4",
- "readable-stream": "^3.1.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.3.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "winston-transport": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz",
- "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==",
- "requires": {
- "readable-stream": "^2.3.6",
- "triple-beam": "^1.2.0"
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz",
- "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==",
- "requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "write": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
- "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
- "dev": true,
- "requires": {
- "mkdirp": "^0.5.1"
- }
- },
- "write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
- "write-json-file": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz",
- "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==",
- "dev": true,
- "requires": {
- "detect-indent": "^6.0.0",
- "graceful-fs": "^4.1.15",
- "is-plain-obj": "^2.0.0",
- "make-dir": "^3.0.0",
- "sort-keys": "^4.0.0",
- "write-file-atomic": "^3.0.0"
- },
- "dependencies": {
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true
- },
- "sort-keys": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.0.0.tgz",
- "integrity": "sha512-hlJLzrn/VN49uyNkZ8+9b+0q9DjmmYcYOnbMQtpkLrYpPwRApDPZfmqbUfJnAA3sb/nRib+nDot7Zi/1ER1fuA==",
- "dev": true,
- "requires": {
- "is-plain-obj": "^2.0.0"
- }
- }
- }
- },
- "ws": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
- "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
- "requires": {
- "async-limiter": "~1.0.0"
- }
- },
- "xxhashjs": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz",
- "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==",
- "requires": {
- "cuint": "^0.2.2"
- }
- },
- "y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
- "dev": true
- },
- "yaeti": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc="
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
- "requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
- }
- },
- "yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
- }
-}
diff --git a/.maintain/chaostest/package.json b/.maintain/chaostest/package.json
deleted file mode 100644
index b659f75181113..0000000000000
--- a/.maintain/chaostest/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "chaostest",
- "description": "A cli for chaos testing on substrate",
- "version": "0.0.0",
- "author": "HarryHong",
- "bin": {
- "chaostest": "./bin/run"
- },
- "bugs": "https://github.com/paritytech/substrate/issues",
- "dependencies": {
- "@kubernetes/client-node": "^0.11.1",
- "@oclif/command": "^1",
- "@oclif/config": "^1",
- "@oclif/plugin-help": "^2",
- "@polkadot/api": "^0.95.0-beta.14",
- "@polkadot/keyring": "^1.6.0-beta.9",
- "winston": "^3.2.1"
- },
- "devDependencies": {
- "@oclif/dev-cli": "^1",
- "@oclif/test": "^1",
- "chai": "^4",
- "eslint": "^7.1.0",
- "eslint-config-oclif": "^3.1",
- "eslint-config-standard": "^14.1.1",
- "eslint-plugin-import": "^2.20.2",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-standard": "^4.0.1",
- "globby": "^10",
- "nyc": "^14"
- },
- "engines": {
- "node": ">=8.0.0"
- },
- "files": [
- "/bin",
- "/npm-shrinkwrap.json",
- "/oclif.manifest.json",
- "/src"
- ],
- "homepage": "https://github.com/paritytech/substrate/tree/master/.maintain/chaostest",
- "keywords": [
- "oclif"
- ],
- "main": "src/index.js",
- "oclif": {
- "commands": "./src/commands",
- "bin": "chaostest",
- "plugins": [
- "@oclif/plugin-help"
- ]
- },
- "repository": "https://github.com/paritytech/substrate/tree/master/.maintain/chaostest",
- "scripts": {
- "postpack": "rm -f oclif.manifest.json",
- "posttest": "eslint .",
- "prepack": "oclif-dev manifest && oclif-dev readme",
- "version": "oclif-dev readme && git add README.md"
- }
-}
diff --git a/.maintain/chaostest/src/commands/clean/index.js b/.maintain/chaostest/src/commands/clean/index.js
deleted file mode 100644
index 9f8f5b95f8978..0000000000000
--- a/.maintain/chaostest/src/commands/clean/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-const { Command, flags } = require('@oclif/command')
-const CONFIG = require('../../config')()
-const logger = require('../../utils/logger')
-const Hypervisor = require('../../hypervisor')
-
-class CleanCommand extends Command {
- async run () {
- const { flags } = this.parse(CleanCommand)
- const namespace = flags.namespace || CONFIG.namespace
- const hypervisor = new Hypervisor(CONFIG)
- // Delete corresponding namespace, default to CONFIG.namespace
- try {
- if (namespace) {
- await hypervisor.cleanup(namespace)
- } else {
- logger.debug('Nothing to clean up')
- }
- } catch (error) {
- logger.error(error)
- process.exit(1)
- }
- }
-}
-
-CleanCommand.description = 'Clean up resources based on namespace'
-
-CleanCommand.flags = {
- namespace: flags.string({ char: 'n', description: 'desired namespace to clean up', env: 'NAMESPACE' })
-}
-
-module.exports = CleanCommand
diff --git a/.maintain/chaostest/src/commands/singlenodeheight/index.js b/.maintain/chaostest/src/commands/singlenodeheight/index.js
deleted file mode 100644
index 05006d745b4e2..0000000000000
--- a/.maintain/chaostest/src/commands/singlenodeheight/index.js
+++ /dev/null
@@ -1,63 +0,0 @@
-const { Command, flags } = require('@oclif/command')
-const CONFIG = require('../../config')()
-const { succeedExit, errorExit } = require('../../utils/exit')
-const Hypervisor = require('../../hypervisor')
-const logger = require('../../utils/logger')
-
-class SingleNodeHeightCommand extends Command {
- async run () {
- const { flags } = this.parse(SingleNodeHeightCommand)
- let port = flags.port
- let url = flags.url
- const wait = flags.wait || 600 * 1000
- const height = flags.height || 10
- const namespace = flags.namespace || CONFIG.namespace
- const pod = flags.pod || (CONFIG.nodes && CONFIG.nodes[0]) ? CONFIG.nodes[0].podName : undefined
- const now = Date.now()
-
- const hypervisor = new Hypervisor(CONFIG)
- if (!!url && !!port) {
- JsonRpcCallTestHeight(url, port)
- } else if (!!pod && !!namespace) {
- url = 'http://127.0.0.1'
- port = 9933
- await hypervisor.startForwardServer(namespace, pod, port)
- JsonRpcCallTestHeight(url, port)
- } else {
- errorExit('Not enough parameters provided. Either specify url and port or pod and namespace.')
- }
-
- async function JsonRpcCallTestHeight (url, port) {
- logger.debug('Polling chain height...')
- if (Date.now() < now + wait) {
- try {
- const curHeight = await hypervisor.getChainBlockHeight(url, port)
- logger.debug('Current Block Height: ' + curHeight)
- if (curHeight > height) {
- logger.info(`Single dev node Blockheight reached ${height}`)
- succeedExit()
- } else {
- setTimeout(() => JsonRpcCallTestHeight(url, port), 2000)
- }
- } catch (error) {
- errorExit('Error requesting chain block height', error)
- }
- } else {
- errorExit('Timed out')
- }
- }
- }
-}
-
-SingleNodeHeightCommand.description = 'Test if targeted node is producing blocks > certain height'
-
-SingleNodeHeightCommand.flags = {
- port: flags.integer({ char: 'p', description: 'port to deploy' }),
- url: flags.string({ char: 'u', description: 'connect url' }),
- timeout: flags.string({ char: 't', description: 'wait time in miliseconds to halt' }),
- height: flags.string({ char: 'h', description: 'desired height to test' }),
- pod: flags.string({ description: 'desired pod to test' }),
- namespace: flags.string({ description: 'desired namespace to test' })
-}
-
-module.exports = SingleNodeHeightCommand
diff --git a/.maintain/chaostest/src/commands/spawn/index.js b/.maintain/chaostest/src/commands/spawn/index.js
deleted file mode 100644
index 785037b029536..0000000000000
--- a/.maintain/chaostest/src/commands/spawn/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-const { Command, flags } = require('@oclif/command')
-const logger = require('../../utils/logger')
-const Hypervisor = require('../../hypervisor')
-const CONFIG = require('../../config')()
-
-class SpawnCommand extends Command {
- async run () {
- const { flags } = this.parse(SpawnCommand)
- const { args } = this.parse(SpawnCommand)
- const imageTag = flags.image || 'parity/substrate:latest'
- const port = flags.port || 9933
- const namespace = flags.namespace || 'substrate-ci'
- const validator = flags.validator || 0
- const node = flags.node || 1
-
- const hypervisor = new Hypervisor(CONFIG)
- try {
- // Check/Create namespace
- await hypervisor.readOrCreateNamespace(namespace)
- const chainName = args.chainName
- if (chainName) {
- if (chainName === 'dev') {
- logger.debug('Starting a fullnode in dev mode...')
- await hypervisor.createDevNode(imageTag, port)
- } else if (chainName === 'alicebob') {
- await hypervisor.createAliceBobNodes(imageTag, port)
- } else {
- // TODO: customized chain with chainName
- }
- }
- } catch (error) {
- logger.error(error)
- process.exit(1)
- }
- }
-}
-
-SpawnCommand.description = 'Spawn a local testnet with options'
-
-SpawnCommand.flags = {
- image: flags.string({ char: 'i', description: 'image to deploy' }),
- port: flags.integer({ char: 'p', description: 'port to deploy on' }),
- namespace: flags.string({ description: 'desired namespace to deploy to', env: 'NAMESPACE' }),
- validator: flags.string({ char: 'v', description: 'number of validators' }),
- node: flags.string({ char: 'n', description: 'number of full nodes, if not set but exists, default to 1' }),
- key: flags.string({ char: 'k', description: 'number of full nodes, if not set but exists, default to 1' }),
- chainspec: flags.string({ char: 'c', description: 'number of full nodes, if not set but exists, default to 1' })
-}
-
-SpawnCommand.args = [{ name: 'chainName' }]
-
-module.exports = SpawnCommand
diff --git a/.maintain/chaostest/src/config/README.md b/.maintain/chaostest/src/config/README.md
deleted file mode 100644
index 655e6deacb376..0000000000000
--- a/.maintain/chaostest/src/config/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-chaostest CONFIG
-=========
-
-Since deployment can behave differently, we want to keep a state between phases including different test subjects.
-
-# Content
-The state could include informations such as:
-```
-{
- namespace,
- image,
- bootnode: {
- podname,
- ip,
- port,
- peerId,
- privateKey,
- publicKey
- },
- nodes: [{
- podname,
- ip,
- port,
- nodeType: 'validator' | 'bootnode' | ,
- privateKey (validator only),
- publicKey (validator only)
- }]
-}
-```
-
-# TODO
-k8s configuration
-chainspec
-chaos-agent
diff --git a/.maintain/chaostest/src/config/index.js b/.maintain/chaostest/src/config/index.js
deleted file mode 100644
index 400597c2bddcc..0000000000000
--- a/.maintain/chaostest/src/config/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-const fs = require('fs')
-const path = require('path')
-const configPath = path.join(__dirname, './config.json')
-const logger = require('../utils/logger')
-
-class Config {
- constructor () {
- this.load()
- }
-
- async load () {
- fs.readFile(configPath, (err, data) => {
- if (err) {
- if (err.code === 'ENOENT') {
- this.reset()
- } else {
- throw err
- }
- } else {
- try {
- Object.assign(this, JSON.parse(data))
- } catch (error) {
- logger.error('config file is corrupted, resetting...')
- this.reset()
- }
- };
- })
- };
-
- getConfig () {
- return this
- }
-
- async update () {
- const data = JSON.stringify(this.getConfig())
- fs.writeFile(configPath, data, (err) => {
- if (err) throw err
- logger.debug('Configuration updated')
- })
- }
-
- async setNamespace (namespace) {
- this.namespace = namespace
- this.update()
- }
-
- async addNode (node) {
- if (!this.nodes || Array.isArray(this.nodes)) {
- this.nodes = []
- }
- if (node.nodeType === 'bootnode') {
- this.bootnode = node
- }
- this.nodes.push(node)
- this.update()
- }
-
- async reset () {
- const data = JSON.stringify({})
- fs.writeFile(configPath, data, (err) => {
- if (err) throw err
- this.load()
- })
- }
-}
-
-module.exports = () => {
- const config = new Config()
- return config
-}
diff --git a/.maintain/chaostest/src/hypervisor/chainApi/api.js b/.maintain/chaostest/src/hypervisor/chainApi/api.js
deleted file mode 100644
index f9265b6386ee4..0000000000000
--- a/.maintain/chaostest/src/hypervisor/chainApi/api.js
+++ /dev/null
@@ -1,16 +0,0 @@
-const chainApi = require('../modules/chainApi')
-
-exports.getApi = async function (endpoint) {
- if (this._apiInstance && this._apiInstance.endpoint === endpoint) {
- return this._apiInstance.instance
- } else {
- const instance = await chainApi.getApi(endpoint)
- this._apiInstance = { endpoint, instance }
- return instance
- }
-}
-
-exports.getChainBlockHeight = async function (url, port) {
- const api = await this.getApi(url + ':' + port)
- return chainApi.getChainBlockHeight(api)
-}
diff --git a/.maintain/chaostest/src/hypervisor/chainApi/index.js b/.maintain/chaostest/src/hypervisor/chainApi/index.js
deleted file mode 100644
index c0802401d9182..0000000000000
--- a/.maintain/chaostest/src/hypervisor/chainApi/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const api = require('./api')
-module.exports = function (Hypervisor) {
- Object.assign(Hypervisor.prototype, api)
-}
diff --git a/.maintain/chaostest/src/hypervisor/deployment/deployment.js b/.maintain/chaostest/src/hypervisor/deployment/deployment.js
deleted file mode 100644
index 906734393af67..0000000000000
--- a/.maintain/chaostest/src/hypervisor/deployment/deployment.js
+++ /dev/null
@@ -1,123 +0,0 @@
-const k8s = require('../modules/k8s')
-const { pollUntil } = require('../../utils/wait')
-const { getBootNodeUrl } = require('../../utils')
-const logger = require('../../utils/logger')
-
-exports.readOrCreateNamespace = async function (namespace) {
- try {
- logger.debug('Reading namespace')
- await k8s.readNamespace(namespace) // if namespace is available, do not create here
- } catch (error) {
- if (error.response.statusCode !== 404) {
- logger.error(error)
- throw error
- }
- logger.debug('Namespace not present, creating...')
- await k8s.createNamespace(namespace)
- }
- this.config.setNamespace(namespace)
-}
-exports.createAlice = async function (image, port) {
- const substrateArgs = [
- '--chain=local',
- '--node-key',
- '0000000000000000000000000000000000000000000000000000000000000001',
- '--validator',
- '--no-telemetry',
- '--rpc-cors',
- 'all',
- '--alice']
- const nodeSpec = {
- nodeId: 'alice',
- image,
- port,
- args: substrateArgs
- }
- nodeSpec.extraInfo = {
- nodeType: 'bootnode',
- privateKey: '',
- publicKey: '',
- peerId: '12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp'
- }
- await this.createNode(nodeSpec)
-}
-
-exports.createBob = async function (image, port) {
- const substrateArgs = [
- '--chain=local',
- '--node-key',
- '0000000000000000000000000000000000000000000000000000000000000002',
- '--validator',
- '--bob',
- '--no-telemetry',
- '--rpc-cors',
- 'all',
- '--bootnodes',
- getBootNodeUrl(this.config.bootnode)]
- const nodeSpec = {
- nodeId: 'bob',
- image,
- port,
- args: substrateArgs
- }
- nodeSpec.extraInfo = {
- nodeType: 'validator',
- privateKey: '',
- publicKey: ''
- }
- await this.createNode(nodeSpec)
-}
-
-exports.createAliceBobNodes = async function (image, port) {
- await this.createAlice(image, port)
- await this.createBob(image, port)
-}
-
-exports.createDevNode = async function (image, port) {
- const substrateArgs = ['--dev', '--rpc-external', '--ws-external']
- const nodeSpec = {
- nodeId: 'node-1',
- image,
- port,
- args: substrateArgs
- }
- await this.createNode(nodeSpec)
-}
-
-exports.createNode = async function (nodeSpec) {
- logger.info(`Creating ${nodeSpec.nodeId} as ${nodeSpec.extraInfo ? nodeSpec.extraInfo.nodeType : 'FullNode'} in ${this.config.namespace}`)
- await k8s.createPod(nodeSpec, this.config.namespace)
- logger.debug('Polling pod status')
- const pod = await pollUntil(
- () => k8s.getPod(nodeSpec.nodeId, this.config.namespace)
- )
- const nodeInfo = {
- podName: nodeSpec.nodeId,
- ip: pod.status.podIP,
- port: nodeSpec.port
- }
- if (nodeSpec.extraInfo) {
- Object.assign(nodeInfo, nodeSpec.extraInfo)
- }
- logger.info(`${nodeSpec.nodeId} is created`)
- this.config.addNode(nodeInfo)
-}
-
-exports.cleanup = async function (namespace) {
- await k8s.deleteNamespace(namespace)
- if (namespace === this.config.namespace) {
- this.config.reset()
- }
-}
-
-exports.getPodInfoInConfig = function (namespace, podName) {
- if (this.config.namespace === namespace && Array.isArray(this.config.nodes)) {
- return this.config.nodes.find((node) => node.podName === podName)
- } else {
- throw Error('No pod present in the namespace in config')
- }
-}
-
-exports.startForwardServer = async function (namespace, pod, port, onReady) {
- await k8s.startForwardServer(namespace, pod, port, onReady)
-}
diff --git a/.maintain/chaostest/src/hypervisor/deployment/index.js b/.maintain/chaostest/src/hypervisor/deployment/index.js
deleted file mode 100644
index a01865b6a5438..0000000000000
--- a/.maintain/chaostest/src/hypervisor/deployment/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const deployment = require('./deployment')
-module.exports = function (Hypervisor) {
- Object.assign(Hypervisor.prototype, deployment)
-}
diff --git a/.maintain/chaostest/src/hypervisor/index.js b/.maintain/chaostest/src/hypervisor/index.js
deleted file mode 100644
index 607f3a33d8421..0000000000000
--- a/.maintain/chaostest/src/hypervisor/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const CONFIG = require('../config')()
-
-function Hypervisor (config) {
- this.config = config || CONFIG
-}
-
-// Mount sub modules of the Hypervisor class
-require('./deployment')(Hypervisor)
-require('./chainApi')(Hypervisor)
-
-module.exports = Hypervisor
diff --git a/.maintain/chaostest/src/hypervisor/modules/chainApi.js b/.maintain/chaostest/src/hypervisor/modules/chainApi.js
deleted file mode 100644
index b2ad897d06cba..0000000000000
--- a/.maintain/chaostest/src/hypervisor/modules/chainApi.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const { ApiPromise, WsProvider } = require('@polkadot/api')
-const { HttpProvider } = require('@polkadot/rpc-provider')
-
-const getApi = async (url) => {
- const httpProvider = new HttpProvider(url)
- return httpProvider
- // const api = await ApiPromise.create({ provider: wsProvider })
- // return api
- // TODO: tried to use websocket provider here, but the polkadot/api version is not stable yet, using http provider for now
-}
-
-const getChainBlockHeight = async (provider) => {
- const data = await provider.send('chain_getBlock', [])
- const height = parseInt(data.block.header.number, 16)
- return height
-}
-
-module.exports = { getApi, getChainBlockHeight }
diff --git a/.maintain/chaostest/src/hypervisor/modules/k8s.js b/.maintain/chaostest/src/hypervisor/modules/k8s.js
deleted file mode 100644
index 14f22ff5e8dff..0000000000000
--- a/.maintain/chaostest/src/hypervisor/modules/k8s.js
+++ /dev/null
@@ -1,113 +0,0 @@
-const k8s = require('@kubernetes/client-node')
-const { isFunction } = require('../../utils')
-const logger = require('../../utils/logger')
-
-// load k8s
-const kc = new k8s.KubeConfig()
-kc.loadFromDefault()
-
-// load k8s Apis
-const k8sAppApi = kc.makeApiClient(k8s.AppsV1Api)
-const k8sCoreApi = kc.makeApiClient(k8s.CoreV1Api)
-
-const createNamespace = async namespace => {
- const namespaceJson = {
- apiVersion: 'v1',
- kind: 'Namespace',
- metadata: {
- name: namespace
- }
- }
- return await k8sCoreApi.createNamespace(namespaceJson)
-}
-
-const readNamespace = async namespace => {
- return await k8sCoreApi.readNamespace(namespace)
-}
-
-const createPod = async (nodeSpec, namespace) => {
- const { label, nodeId, image, args, port } = nodeSpec
- const spec = {
- metadata: {
- labels: {
- app: label
- },
- name: nodeId
- },
- spec: {
- containers: [
- {
- image: image,
- imagePullPolicy: 'Always',
- name: nodeId,
- ports: [{ containerPort: port }],
- args: args
- }
- ]
- }
- }
- return await k8sCoreApi.createNamespacedPod(namespace, spec)
-}
-
-const getDeploymentStatus = async (deploymentName, namespace) => {
- const response = await k8sAppApi.readNamespacedDeploymentStatus(deploymentName, namespace)
- const status = response.response.body.status
- function getAvailability (item) {
- return item.type === 'Available'
- }
- if (status && status.conditions) {
- return status.conditions.find(getAvailability)
- }
- return undefined
-}
-
-const deleteNamespace = async (namespace) => {
- logger.debug(`Taking down Namespace ${namespace}...`)
- if (process.env.KEEP_NAMESPACE && process.env.KEEP_NAMESPACE === 1) {
- return
- }
- return k8sCoreApi.deleteNamespace(namespace)
-}
-
-const getNamespacedPods = async (namespace) => {
- const response = await k8sCoreApi.listNamespacedPod(namespace)
- return response.body.items
-}
-
-const getPod = async (podName, namespace) => {
- const pods = await getNamespacedPods(namespace)
- const found = pods.find(
- (pod) => !!pod.metadata && pod.metadata.name === podName && !!pod.status && pod.status.podIP
- )
- if (!found) {
- throw Error(`GetNode(${podName}): node is not present in the cluster`)
- }
- return found
-}
-
-const startForwardServer = async (namespace, pod, port, onReady) => new Promise((resolve, reject) => {
- const net = require('net')
- const forward = new k8s.PortForward(kc)
-
- // This simple server just forwards traffic from itself to a service running in kubernetes
- // -> localhost:8080 -> port-forward-tunnel -> kubernetes-pod
- // This is basically equivalent to 'kubectl port-forward ...' but in Javascript.
- const server = net.createServer((socket) => {
- forward.portForward(namespace, pod, [port], socket, null, socket)
- })
- // TODO: add Ws proxy server to adopt the polkadot/api
- server.listen(port, '127.0.0.1', (err) => {
- if (err) {
- logger.error('Error starting server')
- reject(err)
- }
- logger.info('Forwarding server started, ready to connect')
- resolve()
- // Optional onReady hook when server started
- if (onReady && isFunction(onReady)) {
- onReady()
- }
- })
-})
-
-module.exports = { createNamespace, readNamespace, createPod, deleteNamespace, getDeploymentStatus, getPod, getNamespacedPods, startForwardServer }
diff --git a/.maintain/chaostest/src/index.js b/.maintain/chaostest/src/index.js
deleted file mode 100644
index 176eca6d71ba6..0000000000000
--- a/.maintain/chaostest/src/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('@oclif/command')
diff --git a/.maintain/chaostest/src/utils/exit.js b/.maintain/chaostest/src/utils/exit.js
deleted file mode 100644
index 3cf06d290440b..0000000000000
--- a/.maintain/chaostest/src/utils/exit.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const logger = require('../utils/logger')
-
-const succeedExit = function () {
- process.exit(0)
-}
-
-const errorExit = function (msg, err) {
- logger.error(msg, err)
- process.exit(1)
-}
-
-module.exports = { succeedExit, errorExit }
diff --git a/.maintain/chaostest/src/utils/index.js b/.maintain/chaostest/src/utils/index.js
deleted file mode 100644
index b50c177215a24..0000000000000
--- a/.maintain/chaostest/src/utils/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const getBootNodeUrl = (bootnode) => {
- return `/dns4/${bootnode.ip}/tcp/30333/p2p/${bootnode.peerId}`
-}
-
-const isFunction = (obj) => {
- return !!(obj && obj.constructor && obj.call && obj.apply)
-}
-
-module.exports = { getBootNodeUrl, isFunction }
diff --git a/.maintain/chaostest/src/utils/logger.js b/.maintain/chaostest/src/utils/logger.js
deleted file mode 100644
index e1da0d8d07f49..0000000000000
--- a/.maintain/chaostest/src/utils/logger.js
+++ /dev/null
@@ -1,50 +0,0 @@
-const winston = require('winston')
-const fs = require('fs')
-const logDir = 'log' // Or read from a configuration
-const { format, transports } = winston
-const env = process.env.NODE_ENV || 'development'
-const util = require('util')
-
-if (!fs.existsSync(logDir)) {
- // Create the directory if it does not exist
- fs.mkdirSync(logDir)
-}
-
-const logFormat = format.printf(info => {
- info.message = util.format(info.message)
- if (info.metadata && Object.keys(info.metadata).length) {
- info.message = util.format(info.message, info.metadata)
- }
- return `${info.timestamp} ${info.level}: ${info.message}`
-})
-
-const logger = winston.createLogger({
- level: env === 'development' ? 'debug' : 'info',
- transports: [
- new transports.Console({
- format: format.combine(
- format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
- // Format the metadata object
- format.metadata({ fillExcept: ['message', 'level', 'timestamp', 'label'] }),
- format.colorize(),
- logFormat
- )
- }),
- new winston.transports.File({
- level: env === 'development' ? 'debug' : 'info',
- filename: logDir + '/logs.log',
- format: format.combine(
- format.timestamp(),
- format.json()
- ),
- maxsize: 1024 * 1024 * 10 // 10MB
- })
- ],
- exceptionHandlers: [
- new winston.transports.File({
- filename: 'log/exceptions.log'
- })
- ]
-})
-
-module.exports = logger
diff --git a/.maintain/chaostest/src/utils/wait.js b/.maintain/chaostest/src/utils/wait.js
deleted file mode 100644
index 72498d1acb2a6..0000000000000
--- a/.maintain/chaostest/src/utils/wait.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const logger = require('./logger')
-/**
- * Wait n milliseconds
- *
- * @param n - In milliseconds
- */
-function waitNMilliseconds (n) {
- return new Promise((resolve) => {
- setTimeout(resolve, n)
- })
-}
-
-/**
- * Run a function until that function correctly resolves
- *
- * @param fn - The function to run
- */
-async function pollUntil (fn) {
- try {
- const result = await fn()
-
- return result
- } catch (_error) {
- logger.error('Error polling', _error)
- logger.debug('awaiting...')
- await waitNMilliseconds(5000) // FIXME We can add exponential delay here
-
- return pollUntil(fn)
- }
-}
-
-module.exports = { pollUntil, waitNMilliseconds }
diff --git a/.maintain/gitlab/lib.sh b/.maintain/common/lib.sh
similarity index 81%
rename from .maintain/gitlab/lib.sh
rename to .maintain/common/lib.sh
index 33477b52f5891..ce6c566d799ab 100755
--- a/.maintain/gitlab/lib.sh
+++ b/.maintain/common/lib.sh
@@ -66,17 +66,23 @@ has_label(){
repo="$1"
pr_id="$2"
label="$3"
+
+ # These will exist if the function is called in Gitlab.
+ # If the function's called in Github, we should have GITHUB_ACCESS_TOKEN set
+ # already.
if [ -n "$GITHUB_RELEASE_TOKEN" ]; then
- out=$(curl -H "Authorization: token $GITHUB_RELEASE_TOKEN" -s "$api_base/$repo/pulls/$pr_id")
- else
- out=$(curl -H "Authorization: token $GITHUB_PR_TOKEN" -s "$api_base/$repo/pulls/$pr_id")
+ GITHUB_TOKEN="$GITHUB_RELEASE_TOKEN"
+ elif [ -n "$GITHUB_PR_TOKEN" ]; then
+ GITHUB_TOKEN="$GITHUB_PR_TOKEN"
fi
+
+ out=$(curl -H "Authorization: token $GITHUB_TOKEN" -s "$api_base/$repo/pulls/$pr_id")
[ -n "$(echo "$out" | tr -d '\r\n' | jq ".labels | .[] | select(.name==\"$label\")")" ]
}
# Formats a message into a JSON string for posting to Matrix
# message: 'any plaintext message'
-# formatted_message: 'optional message formatted in html'
+# formatted_message: 'optional message formatted in html'
# Usage: structure_message $content $formatted_content (optional)
structure_message() {
if [ -z "$2" ]; then
@@ -95,3 +101,17 @@ structure_message() {
send_message() {
curl -XPOST -d "$1" "https://matrix.parity.io/_matrix/client/r0/rooms/$2/send/m.room.message?access_token=$3"
}
+
+# Check for runtime changes between two commits. This is defined as any changes
+# to bin/node/src/runtime, frame/ and primitives/sr_* trees.
+has_runtime_changes() {
+ from=$1
+ to=$2
+ if git diff --name-only "${from}...${to}" \
+ | grep -q -e '^frame/' -e '^primitives/'
+ then
+ return 0
+ else
+ return 1
+ fi
+}
diff --git a/.maintain/docker/subkey.Dockerfile b/.maintain/docker/subkey.Dockerfile
index 9184cad5b4058..5797295806d00 100644
--- a/.maintain/docker/subkey.Dockerfile
+++ b/.maintain/docker/subkey.Dockerfile
@@ -1,4 +1,4 @@
-FROM debian:stretch-slim
+FROM docker.io/library/ubuntu:20.04
# metadata
ARG VCS_REF
@@ -28,4 +28,3 @@ USER subkey
RUN /usr/local/bin/subkey --version
ENTRYPOINT ["/usr/local/bin/subkey"]
-
diff --git a/.maintain/docker/substrate.Dockerfile b/.maintain/docker/substrate.Dockerfile
index 7cd4576a9e89f..e13dfb426adfd 100644
--- a/.maintain/docker/substrate.Dockerfile
+++ b/.maintain/docker/substrate.Dockerfile
@@ -1,4 +1,4 @@
-FROM debian:stretch-slim
+FROM docker.io/library/ubuntu:20.04
# metadata
ARG VCS_REF
@@ -42,4 +42,3 @@ EXPOSE 30333 9933 9944
VOLUME ["/substrate"]
ENTRYPOINT ["/usr/local/bin/substrate"]
-
diff --git a/.maintain/flamingfir-deploy.sh b/.maintain/flamingfir-deploy.sh
deleted file mode 100755
index 8f0fb3a2bc016..0000000000000
--- a/.maintain/flamingfir-deploy.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-RETRY_COUNT=10
-RETRY_ATTEMPT=0
-SLEEP_TIME=15
-TARGET_HOST="$1"
-COMMIT=$(cat artifacts/substrate/VERSION)
-DOWNLOAD_URL="https://releases.parity.io/substrate/x86_64-debian:stretch/${COMMIT}/substrate/substrate"
-POST_DATA='{"extra_vars":{"artifact_path":"'${DOWNLOAD_URL}'","target_host":"'${TARGET_HOST}'"}}'
-
-JOB_ID=$(wget -O - --header "Authorization: Bearer ${AWX_TOKEN}" --header "Content-type: application/json" --post-data "${POST_DATA}" https://ansible-awx.parity.io/api/v2/job_templates/32/launch/ | jq .job)
-
-echo "Launched job: $JOB_ID"
-
-
-while [ ${RETRY_ATTEMPT} -le ${RETRY_COUNT} ] ; do
- export RETRY_RESULT=$(wget -O - --header "Authorization: Bearer ${AWX_TOKEN}" https://ansible-awx.parity.io/api/v2/jobs/${JOB_ID}/ | jq .status)
- RETRY_ATTEMPT=$(( $RETRY_ATTEMPT +1 ))
- sleep $SLEEP_TIME
- if [ $(echo $RETRY_RESULT | egrep -e successful -e failed) ] ; then
- break
- fi
-done
-
-AWX_OUTPUT=$(wget -O - --header "Authorization: Bearer ${AWX_TOKEN}" https://ansible-awx.parity.io/api/v2/jobs/${JOB_ID}/stdout?format=txt_download)
-
-echo "AWX job log:"
-echo "${AWX_OUTPUT}"
-
-
-JOB_STATUS=$(wget -O - --header "Authorization: Bearer ${AWX_TOKEN}" https://ansible-awx.parity.io/api/v2/jobs/${JOB_ID}/ | jq .status )
-
-echo "==================================="
-echo -e "Ansible AWX Remote Job: ${JOB_ID} \x1B[31mStatus: ${JOB_STATUS}\x1B[0m"
-echo "==================================="
diff --git a/.maintain/frame-weight-template.hbs b/.maintain/frame-weight-template.hbs
new file mode 100644
index 0000000000000..045140d54dff7
--- /dev/null
+++ b/.maintain/frame-weight-template.hbs
@@ -0,0 +1,114 @@
+// This file is part of Substrate.
+
+// Copyright (C) 2021 Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for {{pallet}}
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}}
+//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: {{cmd.repeat}}, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}`
+//! EXECUTION: {{cmd.execution}}, WASM-EXECUTION: {{cmd.wasm_execution}}, CHAIN: {{cmd.chain}}, DB CACHE: {{cmd.db_cache}}
+
+// Executed Command:
+{{#each args as |arg|~}}
+// {{arg}}
+{{/each}}
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use sp_std::marker::PhantomData;
+
+/// Weight functions needed for {{pallet}}.
+pub trait WeightInfo {
+ {{~#each benchmarks as |benchmark|}}
+ fn {{benchmark.name~}}
+ (
+ {{~#each benchmark.components as |c| ~}}
+ {{c.name}}: u32, {{/each~}}
+ ) -> Weight;
+ {{~/each}}
+}
+
+/// Weights for {{pallet}} using the Substrate node and recommended hardware.
+pub struct SubstrateWeight(PhantomData);
+{{~#if (eq pallet "frame_system")}}
+impl WeightInfo for SubstrateWeight {
+{{~else}}
+impl WeightInfo for SubstrateWeight {
+{{~/if}}
+ {{~#each benchmarks as |benchmark|}}
+ {{~#each benchmark.comments as |comment|}}
+ // {{comment}}
+ {{~/each}}
+ fn {{benchmark.name~}}
+ (
+ {{~#each benchmark.components as |c| ~}}
+ {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}}
+ ) -> Weight {
+ ({{underscore benchmark.base_weight}} as Weight)
+ {{~#each benchmark.component_weight as |cw|}}
+ // Standard Error: {{underscore cw.error}}
+ .saturating_add(({{underscore cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight))
+ {{~/each}}
+ {{~#if (ne benchmark.base_reads "0")}}
+ .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as Weight))
+ {{~/if}}
+ {{~#each benchmark.component_reads as |cr|}}
+ .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as Weight).saturating_mul({{cr.name}} as Weight)))
+ {{~/each}}
+ {{~#if (ne benchmark.base_writes "0")}}
+ .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as Weight))
+ {{~/if}}
+ {{~#each benchmark.component_writes as |cw|}}
+ .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight)))
+ {{~/each}}
+ }
+ {{~/each}}
+}
+
+// For backwards compatibility and tests
+impl WeightInfo for () {
+ {{~#each benchmarks as |benchmark|}}
+ {{~#each benchmark.comments as |comment|}}
+ // {{comment}}
+ {{~/each}}
+ fn {{benchmark.name~}}
+ (
+ {{~#each benchmark.components as |c| ~}}
+ {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}}
+ ) -> Weight {
+ ({{underscore benchmark.base_weight}} as Weight)
+ {{~#each benchmark.component_weight as |cw|}}
+ // Standard Error: {{underscore cw.error}}
+ .saturating_add(({{underscore cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight))
+ {{~/each}}
+ {{~#if (ne benchmark.base_reads "0")}}
+ .saturating_add(RocksDbWeight::get().reads({{benchmark.base_reads}} as Weight))
+ {{~/if}}
+ {{~#each benchmark.component_reads as |cr|}}
+ .saturating_add(RocksDbWeight::get().reads(({{cr.slope}} as Weight).saturating_mul({{cr.name}} as Weight)))
+ {{~/each}}
+ {{~#if (ne benchmark.base_writes "0")}}
+ .saturating_add(RocksDbWeight::get().writes({{benchmark.base_writes}} as Weight))
+ {{~/if}}
+ {{~#each benchmark.component_writes as |cw|}}
+ .saturating_add(RocksDbWeight::get().writes(({{cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight)))
+ {{~/each}}
+ }
+ {{~/each}}
+}
diff --git a/.maintain/github/check_labels.sh b/.maintain/github/check_labels.sh
new file mode 100755
index 0000000000000..7b0aed9fe7345
--- /dev/null
+++ b/.maintain/github/check_labels.sh
@@ -0,0 +1,68 @@
+#!/usr/bin/env bash
+set -e
+
+#shellcheck source=../common/lib.sh
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/../common/lib.sh"
+
+repo="$GITHUB_REPOSITORY"
+pr="$GITHUB_PR"
+
+ensure_labels() {
+ for label in "$@"; do
+ if has_label "$repo" "$pr" "$label"; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+# Must have one of the following labels
+releasenotes_labels=(
+ 'B0-silent'
+ 'B3-apinoteworthy'
+ 'B5-clientnoteworthy'
+ 'B7-runtimenoteworthy'
+)
+
+criticality_labels=(
+ 'C1-low 📌'
+ 'C3-medium 📣'
+ 'C7-high ❗️'
+ 'C9-critical ‼️'
+)
+
+audit_labels=(
+ 'D1-audited 👍'
+ 'D2-notlive 💤'
+ 'D3-trivial 🧸'
+ 'D5-nicetohaveaudit ⚠️'
+ 'D9-needsaudit 👮'
+)
+
+echo "[+] Checking release notes (B) labels"
+if ensure_labels "${releasenotes_labels[@]}"; then
+ echo "[+] Release notes label detected. All is well."
+else
+ echo "[!] Release notes label not detected. Please add one of: ${releasenotes_labels[*]}"
+ exit 1
+fi
+
+echo "[+] Checking release criticality (C) labels"
+if ensure_labels "${criticality_labels[@]}"; then
+ echo "[+] Release criticality label detected. All is well."
+else
+ echo "[!] Release criticality label not detected. Please add one of: ${criticality_labels[*]}"
+ exit 1
+fi
+
+if has_runtime_changes origin/master "${HEAD_SHA}"; then
+ echo "[+] Runtime changes detected. Checking audit (D) labels"
+ if ensure_labels "${audit_labels[@]}"; then
+ echo "[+] Release audit label detected. All is well."
+ else
+ echo "[!] Release audit label not detected. Please add one of: ${audit_labels[*]}"
+ exit 1
+ fi
+fi
+
+exit 0
diff --git a/.maintain/gitlab/check_labels.sh b/.maintain/gitlab/check_labels.sh
deleted file mode 100755
index 5ab099b38291c..0000000000000
--- a/.maintain/gitlab/check_labels.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env bash
-
-#shellcheck source=lib.sh
-source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/lib.sh"
-
-ensure_labels() {
- for label in "$@"; do
- if has_label 'paritytech/substrate' "$CI_COMMIT_BRANCH" "$label"; then
- return 0
- fi
- done
- return 1
-}
-
-# Must have one of the following labels
-releasenotes_labels=(
- 'B0-silent'
- 'B3-apinoteworthy'
- 'B5-clientnoteworthy'
- 'B7-runtimenoteworthy'
-)
-
-criticality_labels=(
- 'C1-low'
- 'C3-medium'
- 'C7-high'
- 'C9-critical'
-)
-
-echo "[+] Checking release notes (B) labels for $CI_COMMIT_BRANCH"
-if ensure_labels "${releasenotes_labels[@]}"; then
- echo "[+] Release notes label detected. All is well."
-else
- echo "[!] Release notes label not detected. Please add one of: ${releasenotes_labels[*]}"
- exit 1
-fi
-
-echo "[+] Checking release criticality (C) labels for $CI_COMMIT_BRANCH"
-if ensure_labels "${criticality_labels[@]}"; then
- echo "[+] Release criticality label detected. All is well."
-else
- echo "[!] Release criticality label not detected. Please add one of: ${criticality_labels[*]}"
- exit 1
-fi
-
-exit 0
diff --git a/.maintain/gitlab/check_line_width.sh b/.maintain/gitlab/check_line_width.sh
index 611d3ae2681e2..ebab3013e4b48 100755
--- a/.maintain/gitlab/check_line_width.sh
+++ b/.maintain/gitlab/check_line_width.sh
@@ -25,7 +25,7 @@ do
echo "| error!"
echo "| Lines must not be longer than ${LINE_WIDTH} characters."
echo "| "
- echo "| see more https://wiki.parity.io/Substrate-Style-Guide"
+ echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
echo "|"
FAIL="true"
fi
@@ -41,7 +41,7 @@ do
echo "| warning!"
echo "| Lines should be longer than ${GOOD_LINE_WIDTH} characters only in exceptional circumstances!"
echo "| "
- echo "| see more https://wiki.parity.io/Substrate-Style-Guide"
+ echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
echo "|"
fi
echo "| file: ${file}"
diff --git a/.maintain/gitlab/check_polkadot_companion_build.sh b/.maintain/gitlab/check_polkadot_companion_build.sh
index 219af5001b053..72bfaf7151522 100755
--- a/.maintain/gitlab/check_polkadot_companion_build.sh
+++ b/.maintain/gitlab/check_polkadot_companion_build.sh
@@ -9,6 +9,7 @@
# polkadot companion: paritytech/polkadot#567
#
+set -e
github_api_substrate_pull_url="https://api.github.com/repos/paritytech/substrate/pulls"
# use github api v3 in order to access the data without authentication
@@ -40,10 +41,9 @@ EOT
git config --global user.name 'CI system'
git config --global user.email '<>'
-cargo install -f --version 0.2.0 diener
-
# Merge master into our branch before building Polkadot to make sure we don't miss
# any commits that are required by Polkadot.
+git fetch --depth 100 origin
git merge origin/master
# Clone the current Polkadot master branch into ./polkadot.
@@ -67,8 +67,8 @@ then
pr_body="$(sed -n -r 's/^[[:space:]]+"body": (".*")[^"]+$/\1/p' "${pr_data_file}")"
pr_companion="$(echo "${pr_body}" | sed -n -r \
- -e 's;^.*polkadot companion: paritytech/polkadot#([0-9]+).*$;\1;p' \
- -e 's;^.*polkadot companion: https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \
+ -e 's;^.*[Cc]ompanion.*paritytech/polkadot#([0-9]+).*$;\1;p' \
+ -e 's;^.*[Cc]ompanion.*https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \
| tail -n 1)"
if [ "${pr_companion}" ]
@@ -85,10 +85,15 @@ else
boldprint "this is not a pull request - building polkadot:master"
fi
-cd ..
-$CARGO_HOME/bin/diener --substrate --branch $CI_COMMIT_REF_NAME --git https://gitlab.parity.io/parity/substrate.git --path polkadot
-cd polkadot
+# Patch all Substrate crates in Polkadot
+diener patch --crates-to-patch ../ --substrate --path Cargo.toml
+
+# We need to update specifically our patched Substrate crates so that other
+# crates that depend on them (e.g. Polkadot, BEEFY) use this unified version
+# NOTE: There's no way to only update patched crates, so we use a heuristic
+# of updating a crucial Substrate crate (`sp-core`) to minimize the impact of
+# updating unrelated dependencies
+cargo update -p sp-core
# Test Polkadot pr or master branch with this Substrate commit.
-cargo update -p sp-io
-time cargo test --all --release --verbose
+time cargo test --workspace --release --verbose --features=runtime-benchmarks
diff --git a/.maintain/gitlab/check_polkadot_companion_status.sh b/.maintain/gitlab/check_polkadot_companion_status.sh
index 35c2983886f46..e0412c7b7bec7 100755
--- a/.maintain/gitlab/check_polkadot_companion_status.sh
+++ b/.maintain/gitlab/check_polkadot_companion_status.sh
@@ -43,8 +43,8 @@ pr_body="$(curl -H "${github_header}" -s ${github_api_substrate_pull_url}/${CI_C
# get companion if explicitly specified
pr_companion="$(echo "${pr_body}" | sed -n -r \
- -e 's;^.*polkadot companion: paritytech/polkadot#([0-9]+).*$;\1;p' \
- -e 's;^.*polkadot companion: https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \
+ -e 's;^.*[Cc]ompanion.*paritytech/polkadot#([0-9]+).*$;\1;p' \
+ -e 's;^.*[Cc]ompanion.*https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \
| tail -n 1)"
if [ -z "${pr_companion}" ]
@@ -56,7 +56,7 @@ fi
boldprint "companion pr: #${pr_companion}"
# check the status of that pull request - needs to be
-# mergable and approved
+# approved and mergable
curl -H "${github_header}" -sS -o companion_pr.json \
${github_api_polkadot_pull_url}/${pr_companion}
@@ -64,20 +64,6 @@ curl -H "${github_header}" -sS -o companion_pr.json \
pr_head_sha=$(jq -r -e '.head.sha' < companion_pr.json)
boldprint "Polkadot PR's HEAD SHA: $pr_head_sha"
-if jq -e .merged < companion_pr.json >/dev/null
-then
- boldprint "polkadot pr #${pr_companion} already merged"
- exit 0
-fi
-
-if jq -e '.mergeable' < companion_pr.json >/dev/null
-then
- boldprint "polkadot pr #${pr_companion} mergeable"
-else
- boldprint "polkadot pr #${pr_companion} not mergeable"
- exit 1
-fi
-
curl -H "${github_header}" -sS -o companion_pr_reviews.json \
${github_api_polkadot_pull_url}/${pr_companion}/reviews
@@ -98,6 +84,19 @@ if [ -z "$(jq -r -e '.[].state | select(. == "APPROVED")' < companion_pr_reviews
fi
boldprint "polkadot pr #${pr_companion} state APPROVED"
-exit 0
+if jq -e .merged < companion_pr.json >/dev/null
+then
+ boldprint "polkadot pr #${pr_companion} already merged"
+ exit 0
+fi
+
+if jq -e '.mergeable' < companion_pr.json >/dev/null
+then
+ boldprint "polkadot pr #${pr_companion} mergeable"
+else
+ boldprint "polkadot pr #${pr_companion} not mergeable"
+ exit 1
+fi
+exit 0
diff --git a/.maintain/gitlab/check_runtime.sh b/.maintain/gitlab/check_runtime.sh
index 6d009c5aafc6a..71d6965ecf4fb 100755
--- a/.maintain/gitlab/check_runtime.sh
+++ b/.maintain/gitlab/check_runtime.sh
@@ -8,12 +8,13 @@
set -e # fail on any error
-
+#shellcheck source=../common/lib.sh
+. "$(dirname "${0}")/../common/lib.sh"
VERSIONS_FILE="bin/node/runtime/src/lib.rs"
-boldprint () { printf "|\n| \033[1m${@}\033[0m\n|\n" ; }
-boldcat () { printf "|\n"; while read l; do printf "| \033[1m${l}\033[0m\n"; done; printf "|\n" ; }
+boldprint () { printf "|\n| \033[1m%s\033[0m\n|\n" "${@}"; }
+boldcat () { printf "|\n"; while read -r l; do printf "| \033[1m%s\033[0m\n" "${l}"; done; printf "|\n" ; }
github_label () {
echo
@@ -23,7 +24,7 @@ github_label () {
-F "ref=master" \
-F "variables[LABEL]=${1}" \
-F "variables[PRNO]=${CI_COMMIT_REF_NAME}" \
- ${GITLAB_API}/projects/${GITHUB_API_PROJECT}/trigger/pipeline
+ "${GITLAB_API}/projects/${GITHUB_API_PROJECT}/trigger/pipeline"
}
@@ -31,16 +32,14 @@ boldprint "latest 10 commits of ${CI_COMMIT_REF_NAME}"
git log --graph --oneline --decorate=short -n 10
boldprint "make sure the master branch and release tag are available in shallow clones"
-git fetch --depth=${GIT_DEPTH:-100} origin master
-git fetch --depth=${GIT_DEPTH:-100} origin release
+git fetch --depth="${GIT_DEPTH:-100}" origin master
+git fetch --depth="${GIT_DEPTH:-100}" origin release
git tag -f release FETCH_HEAD
git log -n1 release
boldprint "check if the wasm sources changed"
-if ! git diff --name-only origin/master...${CI_COMMIT_SHA} \
- | grep -v -e '^primitives/sr-arithmetic/fuzzer' \
- | grep -q -e '^bin/node/src/runtime' -e '^frame/' -e '^primitives/sr-'
+if ! has_runtime_changes origin/master "${CI_COMMIT_SHA}"
then
boldcat <<-EOT
@@ -57,9 +56,9 @@ fi
# consensus-critical logic that has changed. the runtime wasm blobs must be
# rebuilt.
-add_spec_version="$(git diff tags/release...${CI_COMMIT_SHA} ${VERSIONS_FILE} \
+add_spec_version="$(git diff tags/release ${CI_COMMIT_SHA} -- "${VERSIONS_FILE}" \
| sed -n -r "s/^\+[[:space:]]+spec_version: +([0-9]+),$/\1/p")"
-sub_spec_version="$(git diff tags/release...${CI_COMMIT_SHA} ${VERSIONS_FILE} \
+sub_spec_version="$(git diff tags/release ${CI_COMMIT_SHA} -- "${VERSIONS_FILE}" \
| sed -n -r "s/^\-[[:space:]]+spec_version: +([0-9]+),$/\1/p")"
@@ -67,8 +66,6 @@ sub_spec_version="$(git diff tags/release...${CI_COMMIT_SHA} ${VERSIONS_FILE} \
if [ "${add_spec_version}" != "${sub_spec_version}" ]
then
- github_label "D2-breaksapi"
-
boldcat <<-EOT
changes to the runtime sources and changes in the spec version.
@@ -82,9 +79,9 @@ else
# check for impl_version updates: if only the impl versions changed, we assume
# there is no consensus-critical logic that has changed.
- add_impl_version="$(git diff tags/release...${CI_COMMIT_SHA} ${VERSIONS_FILE} \
+ add_impl_version="$(git diff tags/release ${CI_COMMIT_SHA} -- "${VERSIONS_FILE}" \
| sed -n -r 's/^\+[[:space:]]+impl_version: +([0-9]+),$/\1/p')"
- sub_impl_version="$(git diff tags/release...${CI_COMMIT_SHA} ${VERSIONS_FILE} \
+ sub_impl_version="$(git diff tags/release ${CI_COMMIT_SHA} -- "${VERSIONS_FILE}" \
| sed -n -r 's/^\-[[:space:]]+impl_version: +([0-9]+),$/\1/p')"
diff --git a/.maintain/gitlab/check_signed.sh b/.maintain/gitlab/check_signed.sh
index 7c4cc47baba38..20d47c2304767 100755
--- a/.maintain/gitlab/check_signed.sh
+++ b/.maintain/gitlab/check_signed.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
-# shellcheck source=lib.sh
-source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/lib.sh"
+# shellcheck source=../common/lib.sh
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/../common/lib.sh"
version="$CI_COMMIT_TAG"
diff --git a/.maintain/gitlab/generate_changelog.sh b/.maintain/gitlab/generate_changelog.sh
index c13871f50ee49..32ac1760a6117 100755
--- a/.maintain/gitlab/generate_changelog.sh
+++ b/.maintain/gitlab/generate_changelog.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
-# shellcheck source=lib.sh
-source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/lib.sh"
+# shellcheck source=../common/lib.sh
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/../common/lib.sh"
version="$2"
last_version="$1"
@@ -32,7 +32,7 @@ $line"
runtime_changes="$runtime_changes
$line"
fi
- if has_label 'paritytech/substrate' "$pr_id" 'D1-runtime-migration'; then
+ if has_label 'paritytech/substrate' "$pr_id" 'E1-runtime-migration'; then
migrations="$migrations
$line"
fi
diff --git a/.maintain/gitlab/publish_draft_release.sh b/.maintain/gitlab/publish_draft_release.sh
index c5813718a69f2..36ee0d63e78f9 100755
--- a/.maintain/gitlab/publish_draft_release.sh
+++ b/.maintain/gitlab/publish_draft_release.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
-# shellcheck source=lib.sh
-source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/lib.sh"
+# shellcheck source=../common/lib.sh
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/../common/lib.sh"
version="$CI_COMMIT_TAG"
diff --git a/.maintain/kubernetes/Chart.yaml b/.maintain/kubernetes/Chart.yaml
deleted file mode 100644
index 8e000ae09f1c1..0000000000000
--- a/.maintain/kubernetes/Chart.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: substrate
-version: 0.2
-appVersion: 0.9.1
-description: "Substrate: The platform for blockchain innovators"
-home: https://substrate.network/
-icon: https://substrate.network/favicon.ico
-sources:
- - https://github.com/paritytech/substrate/
-maintainers:
- - name: Paritytech Devops Team
- email: devops-team@parity.io
-tillerVersion: ">=2.8.0"
diff --git a/.maintain/kubernetes/README.md b/.maintain/kubernetes/README.md
deleted file mode 100644
index 0f3ec38990375..0000000000000
--- a/.maintain/kubernetes/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-# Substrate Kubernetes Helm Chart
-
-This [Helm Chart](https://helm.sh/) can be used for deploying containerized
-**Substrate** to a [Kubernetes](https://kubernetes.io/) cluster.
-
-
-## Prerequisites
-
-- Tested on Kubernetes 1.10.7-gke.6
-
-## Installation
-
-To install the chart with the release name `my-release` into namespace
-`my-namespace` from within this directory:
-
-```console
-$ helm install --namespace my-namespace --name my-release --values values.yaml ./
-```
-
-The command deploys Substrate on the Kubernetes cluster in the configuration
-given in `values.yaml`. When the namespace is omitted it'll be installed in
-the default one.
-
-
-## Removal of the Chart
-
-To uninstall/delete the `my-release` deployment:
-
-```console
-$ helm delete --namespace my-namespace my-release
-```
-
-The command removes all the Kubernetes components associated with the chart and deletes the release.
-
-
-## Upgrading
-
-Once the chart is installed and a new version should be deployed helm takes
-care of this by
-
-```console
-$ helm upgrade --namespace my-namespace --values values.yaml my-release ./
-```
-
-
diff --git a/.maintain/kubernetes/templates/poddisruptionbudget.yaml b/.maintain/kubernetes/templates/poddisruptionbudget.yaml
deleted file mode 100644
index 56958b1fbafd9..0000000000000
--- a/.maintain/kubernetes/templates/poddisruptionbudget.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: policy/v1beta1
-kind: PodDisruptionBudget
-metadata:
- name: {{ .Values.GitlabEnvSlug | default .Values.app }}
-spec:
- selector:
- matchLabels:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- maxUnavailable: 1
-
diff --git a/.maintain/kubernetes/templates/secrets.yaml b/.maintain/kubernetes/templates/secrets.yaml
deleted file mode 100644
index 97e73ae7ff038..0000000000000
--- a/.maintain/kubernetes/templates/secrets.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if .Values.validator.keys }}
-apiVersion: v1
-kind: Secret
-metadata:
- name: {{ .Values.app }}-secrets
- labels:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
-type: Opaque
-data:
- secrets: {{ .Values.validator.keys | default "" }}
-{{- end }}
diff --git a/.maintain/kubernetes/templates/service.yaml b/.maintain/kubernetes/templates/service.yaml
deleted file mode 100644
index b14bb74c10a1a..0000000000000
--- a/.maintain/kubernetes/templates/service.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-# see:
-# https://kubernetes.io/docs/tutorials/services/
-# https://kubernetes.io/docs/concepts/services-networking/service/
-# headless service for rpc
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ .Values.app }}-rpc
-spec:
- ports:
- - port: 9933
- name: http-rpc
- - port: 9944
- name: websocket-rpc
- selector:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- sessionAffinity: None
- type: ClusterIP
- clusterIP: None
----
-{{- if .Values.listen_node_port }}
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ .Values.app }}
-spec:
- ports:
- - port: 30333
- name: p2p
- nodePort: 30333
- protocol: TCP
- selector:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- sessionAffinity: None
- type: NodePort
- # don't route external traffic to non-local pods
- externalTrafficPolicy: Local
-{{- else if .Values.validator.keys }}
-{{- $root := . -}}
-{{- range until (int .Values.nodes.replicas) }}
----
-kind: Service
-apiVersion: v1
-metadata:
- name: {{ $root.Values.app }}-{{ . }}
-spec:
- selector:
- statefulset.kubernetes.io/pod-name: {{ $root.Values.app }}-{{ . }}
- ports:
- - port: 30333
- targetPort: 30333
- protocol: TCP
-{{- end }}
-{{- end }}
diff --git a/.maintain/kubernetes/templates/serviceaccount.yaml b/.maintain/kubernetes/templates/serviceaccount.yaml
deleted file mode 100644
index 53d016bffedf9..0000000000000
--- a/.maintain/kubernetes/templates/serviceaccount.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-{{- if .Values.rbac.enable }}
-# service account for substrate pods themselves
-# no permissions for the api are required
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- name: {{ .Values.rbac.name }}
-{{- end }}
diff --git a/.maintain/kubernetes/templates/statefulset.yaml b/.maintain/kubernetes/templates/statefulset.yaml
deleted file mode 100644
index 0f34b3507a1d1..0000000000000
--- a/.maintain/kubernetes/templates/statefulset.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
-# https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/
-# https://cloud.google.com/kubernetes-engine/docs/concepts/statefulset
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: {{ .Values.app }}
-spec:
- selector:
- matchLabels:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- serviceName: {{ .Values.app }}
- replicas: {{ .Values.nodes.replicas }}
- updateStrategy:
- type: RollingUpdate
- podManagementPolicy: Parallel
- template:
- metadata:
- labels:
- app: {{ .Values.GitlabEnvSlug | default .Values.app }}
- spec:
- {{- if .Values.rbac.enable }}
- serviceAccountName: {{ .Values.rbac.name }}
- {{- else }}
- serviceAccountName: default
- {{- end }}
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: node
- operator: In
- values:
- - substrate
- {{- if .Values.listen_node_port }}
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchExpressions:
- - key: "app"
- operator: In
- values:
- - {{ .Values.app }}
- topologyKey: "kubernetes.io/hostname"
- {{- end }}
- terminationGracePeriodSeconds: 300
- {{- if .Values.validator.keys }}
- volumes:
- - name: {{ .Values.app }}-validator-secrets
- secret:
- secretName: {{ .Values.app }}-secrets
- initContainers:
- - name: prepare-secrets
- image: busybox
- command: [ "/bin/sh" ]
- args:
- - -c
- - sed -n -r "s/^${POD_NAME}-key ([^ ]+)$/\1/p" /etc/validator/secrets > {{ .Values.image.basepath }}/key;
- sed -n -r "s/^${POD_NAME}-node-key ([^ ]+)$/\1/p" /etc/validator/secrets > {{ .Values.image.basepath }}/node-key;
- sed -n -r "s/^${POD_NAME}-name ([^ ]+)$/\1/p" /etc/validator/secrets > {{ .Values.image.basepath }}/name;
- test -s {{ .Values.image.basepath }}/name || echo "${POD_NAME}" > {{ .Values.image.basepath }}/name
- env:
- # from (workaround for hostname)
- # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- volumeMounts:
- - name: {{ .Values.app }}-validator-secrets
- readOnly: true
- mountPath: "/etc/validator"
- - name: {{ .Values.app }}dir
- mountPath: {{ .Values.image.basepath }}
- {{- end }}
- containers:
- - name: {{ .Values.app }}
- imagePullPolicy: "{{ .Values.image.pullPolicy }}"
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
- {{- if .Values.resources }}
- resources:
- requests:
- memory: {{ .Values.resources.memory }}
- cpu: {{ .Values.resources.cpu }}
- {{- end }}
- ports:
- - containerPort: 30333
- name: p2p
- - containerPort: 9933
- name: http-rpc
- - containerPort: 9944
- name: websocket-rpc
- command: ["/bin/sh"]
- args:
- - -c
- - exec /usr/local/bin/substrate
- --base-path {{ .Values.image.basepath }}
- {{- if .Values.validator.keys }}
- --validator
- --name $(cat {{ .Values.image.basepath }}/name)
- --key $(cat {{ .Values.image.basepath }}/key)
- --node-key $(cat {{ .Values.image.basepath }}/node-key)
- {{- else }}
- --name $(POD_NAME)
- {{- end }}
- {{- range .Values.nodes.args }} {{ . }} {{- end }}
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- volumeMounts:
- - name: {{ .Values.app }}dir
- mountPath: {{ .Values.image.basepath }}
- readinessProbe:
- httpGet:
- path: /health
- port: http-rpc
- initialDelaySeconds: 10
- periodSeconds: 10
- livenessProbe:
- httpGet:
- path: /health
- port: http-rpc
- initialDelaySeconds: 10
- periodSeconds: 10
- securityContext:
- runAsUser: 1000
- fsGroup: 1000
- volumeClaimTemplates:
- - metadata:
- name: {{ .Values.app }}dir
- spec:
- accessModes: [ "ReadWriteOnce" ]
- storageClassName: ssd
- resources:
- requests:
- storage: 32Gi
-
diff --git a/.maintain/kubernetes/values.yaml b/.maintain/kubernetes/values.yaml
deleted file mode 100644
index 4c3cb5c7d702d..0000000000000
--- a/.maintain/kubernetes/values.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# set tag manually --set image.tag=latest
-image:
- repository: parity/substrate
- tag: latest
- pullPolicy: Always
- basepath: /substrate
-
-
-# if set to true a service account for substrate will be created
-rbac:
- enable: true
- name: substrate
-
-
-# name of the statefulset
-app: substrate
-listen_node_port: true
-
-nodes:
- replicas: 2
- args:
- # name and data directory are set by the chart itself
- # key and node-key may be provided on commandline invocation
- #
- # - --chain
- # - krummelanke
- # serve rpc within the local network
- # - fenced off the world via firewall
- # - used for health checks
- - --rpc-external
- - --ws-external
- # - --log
- # - sub-libp2p=trace
-
-
-validator: {}
- # providing 'keys' string via --set commandline parameter will run the nodes
- # in validator mode (--validator).
- #
- # name, key and node-key can be given in a base64 encoded keyfile string (at
- # validator.keys) which has the following format:
- #
- # substrate-0-name
- # substrate-0-key
- # substrate-0-node-key
- # substrate-1-name
- # substrate-1-key
- # substrate-1-node-key
- #
- # pod names are canonical. changing these or providing different amount of
- # keys than the replicas count will lead to behavior no one ever has
- # experienced before.
-
-
-# maybe adopt resource limits here to the nodes of the pool
-# resources:
-# memory: "5Gi"
-# cpu: "1.5"
-
diff --git a/.maintain/sentry-node/docker-compose.yml b/.maintain/local-docker-test-network/docker-compose.yml
similarity index 61%
rename from .maintain/sentry-node/docker-compose.yml
rename to .maintain/local-docker-test-network/docker-compose.yml
index 2af9449853c77..53e2a2913f38b 100644
--- a/.maintain/sentry-node/docker-compose.yml
+++ b/.maintain/local-docker-test-network/docker-compose.yml
@@ -1,24 +1,26 @@
-# Docker compose file to simulate a sentry node setup.
+# Docker compose file to start a multi node local test network.
#
+# # Nodes
#
-# Setup:
+# - Validator node A
+# - Validator node B
+# - Light client C
#
-# Validator A is not supposed to be connected to the public internet. Instead it
-# connects to a sentry node (sentry-a) which connects to the public internet.
-# Validator B can reach validator A via sentry node A and vice versa.
+# # Auxiliary nodes
#
+# - Prometheus monitoring each node.
+# - Grafana pointed at the Prometheus node, configured with all dashboards.
#
-# Usage:
+# # Usage
#
# 1. Build `target/release/substrate` binary: `cargo build --release`
-#
-# 2. Start networks and containers: `sudo docker-compose -f .maintain/sentry-node/docker-compose.yml up`
-#
-# 3. Reach:
-# - polkadot/apps on localhost:3000
+# 2. Start networks and containers:
+# `sudo docker-compose -f .maintain/sentry-node/docker-compose.yml up`
+# 3. Connect to nodes:
# - validator-a: localhost:9944
# - validator-b: localhost:9945
-# - sentry-a: localhost:9946
+# - light-c: localhost:9946
+# - via polkadot.js/apps: https://polkadot.js.org/apps/?rpc=ws%3A%2F%2Flocalhost%3A#/explorer
# - grafana: localhost:3001
# - prometheus: localhost:9090
@@ -34,9 +36,8 @@ services:
- ../../target/release/substrate:/usr/local/bin/substrate
image: parity/substrate
networks:
- - network-a
+ - internet
command:
- # Local node id: QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR
- "--node-key"
- "0000000000000000000000000000000000000000000000000000000000000001"
- "--base-path"
@@ -46,48 +47,38 @@ services:
- "30333"
- "--validator"
- "--alice"
- - "--sentry-nodes"
- - "/dns/sentry-a/tcp/30333/p2p/QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi"
- - "--reserved-nodes"
- - "/dns/sentry-a/tcp/30333/p2p/QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi"
+ - "--bootnodes"
+ - "/dns/validator-b/tcp/30333/p2p/12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD"
# Not only bind to localhost.
- "--unsafe-ws-external"
- "--unsafe-rpc-external"
- # - "--log"
- # - "sub-libp2p=trace"
- # - "--log"
- # - "afg=trace"
- "--log"
- - "sub-authority-discovery=trace"
+ - "sub-libp2p=trace"
- "--no-telemetry"
- "--rpc-cors"
- "all"
- "--prometheus-external"
- sentry-a:
+ validator-b:
image: parity/substrate
ports:
- - "9946:9944"
+ - "9945:9944"
volumes:
- ../../target/release/substrate:/usr/local/bin/substrate
networks:
- - network-a
- internet
command:
- # Local node id: QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi
- "--node-key"
- - "0000000000000000000000000000000000000000000000000000000000000003"
+ - "0000000000000000000000000000000000000000000000000000000000000002"
- "--base-path"
- - "/tmp/sentry"
+ - "/tmp/bob"
- "--chain=local"
- "--port"
- "30333"
- - "--sentry"
- - "/dns/validator-a/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR"
- - "--reserved-nodes"
- - "/dns/validator-a/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR"
+ - "--validator"
+ - "--bob"
- "--bootnodes"
- - "/dns/validator-b/tcp/30333/p2p/QmSVnNf9HwVMT1Y4cK1P6aoJcEZjmoTXpjKBmAABLMnZEk"
+ - "/dns/validator-a/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp"
- "--no-telemetry"
- "--rpc-cors"
- "all"
@@ -95,32 +86,30 @@ services:
- "--unsafe-ws-external"
- "--unsafe-rpc-external"
- "--log"
- - "sub-authority-discovery=trace"
+ - "sub-libp2p=trace"
- "--prometheus-external"
- validator-b:
+ light-c:
image: parity/substrate
ports:
- - "9945:9944"
+ - "9946:9944"
volumes:
- ../../target/release/substrate:/usr/local/bin/substrate
networks:
- internet
command:
- # Local node id: QmSVnNf9HwVMT1Y4cK1P6aoJcEZjmoTXpjKBmAABLMnZEk
- "--node-key"
- - "0000000000000000000000000000000000000000000000000000000000000002"
+ - "0000000000000000000000000000000000000000000000000000000000000003"
- "--base-path"
- - "/tmp/bob"
+ - "/tmp/light"
- "--chain=local"
- "--port"
- "30333"
- - "--validator"
- - "--bob"
+ - "--light"
- "--bootnodes"
- - "/dns/validator-a/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR"
+ - "/dns/validator-a/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp"
- "--bootnodes"
- - "/dns/sentry-a/tcp/30333/p2p/QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi"
+ - "/dns/validator-b/tcp/30333/p2p/12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD"
- "--no-telemetry"
- "--rpc-cors"
- "all"
@@ -128,20 +117,19 @@ services:
- "--unsafe-ws-external"
- "--unsafe-rpc-external"
- "--log"
- - "sub-authority-discovery=trace"
+ - "sub-libp2p=trace"
- "--prometheus-external"
prometheus:
image: prom/prometheus
networks:
- - network-a
- internet
ports:
- "9090:9090"
links:
- validator-a:validator-a
- - sentry-a:sentry-a
- validator-b:validator-b
+ - light-c:light-c
volumes:
- ./prometheus/:/etc/prometheus/
restart: always
@@ -152,7 +140,6 @@ services:
depends_on:
- prometheus
networks:
- - network-a
- internet
ports:
- 3001:3000
diff --git a/.maintain/sentry-node/grafana/provisioning/dashboards/dashboards.yml b/.maintain/local-docker-test-network/grafana/provisioning/dashboards/dashboards.yml
similarity index 100%
rename from .maintain/sentry-node/grafana/provisioning/dashboards/dashboards.yml
rename to .maintain/local-docker-test-network/grafana/provisioning/dashboards/dashboards.yml
diff --git a/.maintain/sentry-node/grafana/provisioning/datasources/datasource.yml b/.maintain/local-docker-test-network/grafana/provisioning/datasources/datasource.yml
similarity index 100%
rename from .maintain/sentry-node/grafana/provisioning/datasources/datasource.yml
rename to .maintain/local-docker-test-network/grafana/provisioning/datasources/datasource.yml
diff --git a/.maintain/sentry-node/prometheus/prometheus.yml b/.maintain/local-docker-test-network/prometheus/prometheus.yml
similarity index 89%
rename from .maintain/sentry-node/prometheus/prometheus.yml
rename to .maintain/local-docker-test-network/prometheus/prometheus.yml
index 547d4bea57ae5..f8acb7c0b8ccd 100644
--- a/.maintain/sentry-node/prometheus/prometheus.yml
+++ b/.maintain/local-docker-test-network/prometheus/prometheus.yml
@@ -7,9 +7,9 @@ scrape_configs:
- targets: ['validator-a:9615']
labels:
network: dev
- - targets: ['sentry-a:9615']
+ - targets: ['validator-b:9615']
labels:
network: dev
- - targets: ['validator-b:9615']
+ - targets: ['light-c:9615']
labels:
network: dev
diff --git a/.maintain/monitoring/alerting-rules/alerting-rule-tests.yaml b/.maintain/monitoring/alerting-rules/alerting-rule-tests.yaml
index 40a489bd09cf0..7ad916f022154 100644
--- a/.maintain/monitoring/alerting-rules/alerting-rule-tests.yaml
+++ b/.maintain/monitoring/alerting-rules/alerting-rule-tests.yaml
@@ -175,7 +175,7 @@ tests:
polkadot-abcdef01234-abcdef has been monotonically
increasing for more than 10 minutes."
- exp_labels:
- severity: critical
+ severity: warning
pod: polkadot-abcdef01234-abcdef
instance: polkadot-abcdef01234-abcdef
job: polkadot
@@ -190,7 +190,7 @@ tests:
# same. Thus expect an alert.
exp_alerts:
- exp_labels:
- severity: critical
+ severity: warning
pod: polkadot-abcdef01234-abcdef
instance: polkadot-abcdef01234-abcdef
job: polkadot
diff --git a/.maintain/monitoring/alerting-rules/alerting-rules.yaml b/.maintain/monitoring/alerting-rules/alerting-rules.yaml
index 16a27c06d3e05..7a69cba66c3f3 100644
--- a/.maintain/monitoring/alerting-rules/alerting-rules.yaml
+++ b/.maintain/monitoring/alerting-rules/alerting-rules.yaml
@@ -47,8 +47,8 @@ groups:
# Under the assumption of an average block production of 6 seconds,
# "best" and "finalized" being more than 10 blocks apart would imply
# more than a 1 minute delay between block production and finalization.
- expr: '(polkadot_block_height_number{status="best"} - ignoring(status)
- polkadot_block_height_number{status="finalized"}) > 10'
+ expr: '(polkadot_block_height{status="best"} - ignoring(status)
+ polkadot_block_height{status="finalized"}) > 10'
for: 8m
labels:
severity: critical
@@ -74,7 +74,7 @@ groups:
increase(polkadot_sub_txpool_validations_finished[5m]) > 0'
for: 30m
labels:
- severity: critical
+ severity: warning
annotations:
message: 'The transaction pool size on node {{ $labels.instance }} has
been monotonically increasing for more than 30 minutes.'
@@ -83,7 +83,7 @@ groups:
polkadot_sub_txpool_validations_finished > 10000'
for: 5m
labels:
- severity: critical
+ severity: warning
annotations:
message: 'The transaction pool size on node {{ $labels.instance }} has
been above 10_000 for more than 5 minutes.'
@@ -108,6 +108,13 @@ groups:
annotations:
message: 'The node {{ $labels.instance }} has less than 3 peers for more
than 15 minutes'
+ - alert: NoIncomingConnection
+ expr: increase(polkadot_sub_libp2p_incoming_connections_total[20m]) == 0
+ labels:
+ severity: warning
+ annotations:
+ message: 'The node {{ $labels.instance }} has not received any new incoming
+ TCP connection in the past 20 minutes. Is it connected to the Internet?'
##############################################################################
# System
@@ -127,8 +134,8 @@ groups:
##############################################################################
- alert: ContinuousTaskEnded
- expr: '(polkadot_tasks_spawned_total == 1) - on(instance, task_name)
- (polkadot_tasks_ended_total == 1)'
+ expr: '(polkadot_tasks_spawned_total{task_name != "basic-authorship-proposer", task_name != "substrate-rpc-subscription"} == 1)
+ - on(instance, task_name) group_left() (polkadot_tasks_ended_total == 1)'
for: 5m
labels:
severity: warning
@@ -147,3 +154,28 @@ groups:
message: 'Authority discovery on node {{ $labels.instance }} fails to
process more than 50 % of the values found on the DHT for more than 2
hours.'
+
+ - alert: UnboundedChannelPersistentlyLarge
+ expr: '(
+ (polkadot_unbounded_channel_len{action = "send"} -
+ ignoring(action) polkadot_unbounded_channel_len{action = "received"})
+ or on(instance) polkadot_unbounded_channel_len{action = "send"}
+ ) >= 200'
+ for: 5m
+ labels:
+ severity: warning
+ annotations:
+ message: 'Channel {{ $labels.entity }} on node {{ $labels.instance }} contains
+ more than 200 items for more than 5 minutes. Node might be frozen.'
+
+ - alert: UnboundedChannelVeryLarge
+ expr: '(
+ (polkadot_unbounded_channel_len{action = "send"} -
+ ignoring(action) polkadot_unbounded_channel_len{action = "received"})
+ or on(instance) polkadot_unbounded_channel_len{action = "send"}
+ ) > 15000'
+ labels:
+ severity: warning
+ annotations:
+ message: 'Channel {{ $labels.entity }} on node {{ $labels.instance }} contains more than
+ 15000 items.'
diff --git a/.maintain/monitoring/grafana-dashboards/README_dashboard.md b/.maintain/monitoring/grafana-dashboards/README_dashboard.md
index 37bebc6f8eaae..e00b89449cfaf 100644
--- a/.maintain/monitoring/grafana-dashboards/README_dashboard.md
+++ b/.maintain/monitoring/grafana-dashboards/README_dashboard.md
@@ -5,10 +5,3 @@ Shared templated Grafana dashboards.
To import the dashboards follow the [Grafana
documentation](https://grafana.com/docs/grafana/latest/reference/export_import/).
You can see an example setup [here](../../../.maintain/sentry-node).
-
-#### Required labels on Prometheus metrics
-
-- `instance` referring to a single scrape target (see [Prometheus docs for
- details](https://prometheus.io/docs/concepts/jobs_instances/)).
-
-- `network` referring to the Blockchain network e.g. Kusama.
diff --git a/.maintain/monitoring/grafana-dashboards/substrate-dashboard.json b/.maintain/monitoring/grafana-dashboards/substrate-dashboard.json
deleted file mode 100644
index 629b22617b22a..0000000000000
--- a/.maintain/monitoring/grafana-dashboards/substrate-dashboard.json
+++ /dev/null
@@ -1,1650 +0,0 @@
-{
- "annotations": {
- "list": [
- {
- "$$hashKey": "object:15",
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "iteration": 1586424254170,
- "links": [
- {
- "icon": "external link",
- "tags": [],
- "targetBlank": true,
- "title": "With love from ColmenaLabs",
- "tooltip": "",
- "type": "link",
- "url": "https://colmenalabs.org"
- },
- {
- "icon": "external link",
- "tags": [],
- "targetBlank": true,
- "title": "Polkastats.io",
- "tooltip": "",
- "type": "link",
- "url": "https://polkastats.io"
- }
- ],
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 0,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 8,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "rate([[metric_namespace]]_block_height{status=\"finalized\",instance=\"[[instance]]\",network=\"[[network]]\"}[10m])/rate([[metric_namespace]]_block_height{status=\"finalized\",instance=\"[[instance]]\",network=\"[[network]]\"}[1m])",
- "intervalFactor": 1,
- "legendFormat": "rate[10m] / rate[1m]",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Relative Block Production Speed",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 6,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 15,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sub_libp2p_peers_count{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Peers count",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 12,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 17,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pluginVersion": "6.4.1",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "scalar([[metric_namespace]]_block_height{status=\"best\",instance=\"[[instance]]\",network=\"[[network]]\"})-scalar([[metric_namespace]]_block_height{status=\"finalized\",instance=\"[[instance]]\",network=\"[[network]]\"})",
- "intervalFactor": 2,
- "legendFormat": "[[hostname]]",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Diff -> ( Best Block - Finalized )",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 18,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 18,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "rate([[metric_namespace]]_block_height{status=\"finalized\",instance=\"[[instance]]\",network=\"[[network]]\"}[10m])*60",
- "intervalFactor": 10,
- "legendFormat": "{{instance}} Blocks / minute",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Block rate",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 0,
- "y": 6
- },
- "hiddenSeries": false,
- "id": 10,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "increase([[metric_namespace]]_block_height{instance=\"[[instance]]\",network=\"[[network]]\",status=~\"finalized|sync_target\"}[1m])",
- "intervalFactor": 5,
- "legendFormat": "{{status}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Blocks Av per min",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 6,
- "y": 6
- },
- "hiddenSeries": false,
- "id": 14,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_block_height{instance=\"[[instance]]\",network=\"[[network]]\",status=~\"finalized|sync_target\"}",
- "legendFormat": "{{instance}} {{status}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Block Finalized",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 12,
- "y": 6
- },
- "hiddenSeries": false,
- "id": 13,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_block_height{status=\"best\",instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Block height",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 18,
- "y": 6
- },
- "hiddenSeries": false,
- "id": 20,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "data": "",
- "expr": "[[metric_namespace]]_ready_transactions_number{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "hide": false,
- "legendFormat": "{{instance}}",
- "refId": "A",
- "target": "txcount",
- "type": "timeseries"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "TXs Count",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 0,
- "y": 12
- },
- "hiddenSeries": false,
- "id": 23,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sync_extra_finality_proofs_active{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} active",
- "refId": "A"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_finality_proofs_failed{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} failed",
- "refId": "B"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_finality_proofs_importing{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} importing",
- "refId": "C"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_finality_proofs_pending{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} pending",
- "refId": "D"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Sync Proof",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 6,
- "y": 12
- },
- "hiddenSeries": false,
- "id": 22,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sync_extra_justifications_active{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} active",
- "refId": "A"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_justifications_failed{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} failed",
- "refId": "B"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_justifications_importing{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} importing",
- "refId": "C"
- },
- {
- "expr": "[[metric_namespace]]_sync_extra_justifications_pending{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} pending",
- "refId": "D"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Sync justifications",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 12,
- "y": 12
- },
- "hiddenSeries": false,
- "id": 24,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sub_libp2p_connections{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "hide": false,
- "legendFormat": "{{instance}} connections",
- "refId": "A"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_is_major_syncing{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "hide": false,
- "legendFormat": "{{instance}} syncing",
- "refId": "B"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_kbuckets_num_nodes{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "hide": false,
- "legendFormat": "{{instance}} num_nodes",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "sub_libp2p",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 18,
- "y": 12
- },
- "hiddenSeries": false,
- "id": 26,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total{instance=\"[[instance]]\",network=\"[[network]]\",protocol=\"FRNK\",direction=\"in\"}",
- "hide": false,
- "legendFormat": "{{instance}} FRNK in",
- "refId": "A"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total{instance=\"[[instance]]\",network=\"[[network]]\",protocol=\"FRNK\",direction=\"out\"}",
- "hide": false,
- "legendFormat": "{{instance}} FRNK out",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "libp2p_notifications",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 0,
- "y": 18
- },
- "hiddenSeries": false,
- "id": 28,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_cpu_usage_percentage{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "CPU usage %",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 6,
- "y": 18
- },
- "hiddenSeries": false,
- "id": 27,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_memory_usage_bytes{instance=\"[[instance]]\",network=\"[[network]]\"}",
- "legendFormat": "{{instance}} Mem bytes",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Memory",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 2,
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 12,
- "y": 18
- },
- "hiddenSeries": false,
- "id": 25,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sub_libp2p_network_per_sec_bytes",
- "hide": false,
- "legendFormat": "{{instance}}",
- "refId": "A"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total",
- "hide": true,
- "legendFormat": "{{instance}}",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "libp2p_network_per_sec_bytes",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "description": "",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 6,
- "x": 18,
- "y": 18
- },
- "hiddenSeries": false,
- "id": 29,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pluginVersion": "6.5.2",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total{instance=\"[[instance]]\",network=\"[[network]]\",protocol=\"dot1\",direction=\"in\"}",
- "hide": false,
- "legendFormat": "{{instance}} dot1 in",
- "refId": "B"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total{instance=\"[[instance]]\",network=\"[[network]]\",protocol=\"dot2\",direction=\"in\"}",
- "hide": false,
- "legendFormat": "{{instance}} dot2 in",
- "refId": "C"
- },
- {
- "expr": "[[metric_namespace]]_sub_libp2p_notifications_total{instance=\"[[instance]]\",network=\"[[network]]\",protocol=\"dot2\",direction=\"out\"}",
- "hide": false,
- "legendFormat": "{{instance}} dot2 out",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "libp2p_notifications",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- }
- ],
- "refresh": "5s",
- "schemaVersion": 22,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "allValue": null,
- "current": {
- "selected": true,
- "text": "substrate",
- "value": "substrate"
- },
- "hide": 0,
- "includeAll": false,
- "label": null,
- "multi": false,
- "name": "metric_namespace",
- "options": [
- {
- "selected": true,
- "text": "substrate",
- "value": "substrate"
- },
- {
- "selected": false,
- "text": "polkadot",
- "value": "polkadot"
- }
- ],
- "query": "substrate, polkadot",
- "skipUrlSync": false,
- "type": "custom"
- },
- {
- "allValue": null,
- "current": {
- "selected": true,
- "text": "dev",
- "value": "dev"
- },
- "datasource": "Prometheus",
- "definition": "label_values(network)",
- "hide": 0,
- "includeAll": false,
- "index": -1,
- "label": null,
- "multi": false,
- "name": "network",
- "options": [],
- "query": "label_values(network)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "allValue": null,
- "current": {
- "selected": false,
- "text": "validator-a:9615",
- "value": "validator-a:9615"
- },
- "datasource": "Prometheus",
- "definition": "label_values(instance)",
- "hide": 0,
- "includeAll": false,
- "index": -1,
- "label": null,
- "multi": false,
- "name": "instance",
- "options": [],
- "query": "label_values(instance)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- }
- ]
- },
- "time": {
- "from": "now-1h",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ]
- },
- "timezone": "",
- "title": "Substrate Dashboard",
- "uid": "ColmenaLabs",
- "variables": {
- "list": []
- },
- "version": 2
-}
diff --git a/.maintain/monitoring/grafana-dashboards/substrate-networking.json b/.maintain/monitoring/grafana-dashboards/substrate-networking.json
index dfc143005493d..46942cf582fc6 100644
--- a/.maintain/monitoring/grafana-dashboards/substrate-networking.json
+++ b/.maintain/monitoring/grafana-dashboards/substrate-networking.json
@@ -1,13 +1,5 @@
{
"__inputs": [
- {
- "name": "DS_PROMETHEUS",
- "label": "Prometheus",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- },
{
"name": "VAR_METRIC_NAMESPACE",
"type": "constant",
@@ -17,11 +9,17 @@
}
],
"__requires": [
+ {
+ "type": "panel",
+ "id": "dashlist",
+ "name": "Dashboard list",
+ "version": ""
+ },
{
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "6.7.3"
+ "version": "7.3.6"
},
{
"type": "panel",
@@ -29,12 +27,6 @@
"name": "Graph",
"version": ""
},
- {
- "type": "panel",
- "id": "heatmap",
- "name": "Heatmap",
- "version": ""
- },
{
"type": "datasource",
"id": "prometheus",
@@ -76,10 +68,11 @@
"gnetId": null,
"graphTooltip": 0,
"id": null,
- "iteration": 1600780210197,
+ "iteration": 1621244671073,
"links": [],
"panels": [
{
+ "collapsed": false,
"datasource": null,
"gridPos": {
"h": 1,
@@ -87,8 +80,9 @@
"x": 0,
"y": 0
},
- "id": 167,
- "title": "Sync",
+ "id": 27,
+ "panels": [],
+ "title": "Transport",
"type": "row"
},
{
@@ -97,57 +91,116 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 5,
+ "h": 6,
"w": 24,
"x": 0,
"y": 1
},
"hiddenSeries": false,
- "id": 101,
+ "id": 19,
+ "interval": "",
"legend": {
+ "alignAsTable": false,
"avg": false,
"current": false,
+ "hideEmpty": false,
"max": false,
"min": false,
- "show": false,
+ "rightSide": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "connected",
+ "maxPerRow": 12,
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [],
+ "repeat": "nodename",
+ "repeatDirection": "h",
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:70",
+ "alias": "established (in)",
+ "color": "#37872D"
+ },
+ {
+ "$$hashKey": "object:71",
+ "alias": "established (out)",
+ "color": "#C4162A"
+ },
+ {
+ "$$hashKey": "object:72",
+ "alias": "pending (out)",
+ "color": "#FF7383"
+ },
+ {
+ "$$hashKey": "object:73",
+ "alias": "closed-recently",
+ "color": "#FADE2A",
+ "steppedLine": true
+ }
+ ],
"spaceLength": 10,
- "stack": false,
- "steppedLine": true,
+ "stack": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "1 - (${metric_namespace}_sub_libp2p_peerset_num_requested{instance=~\"${nodename}\"} - ${metric_namespace}_sub_libp2p_peers_count{instance=~\"${nodename}\"}) / ${metric_namespace}_sub_libp2p_peerset_num_requested{instance=~\"${nodename}\"}",
+ "expr": "(\n sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"in\", instance=~\"${nodename}\"}) by (instance) -\n sum(${metric_namespace}_sub_libp2p_connections_closed_total{direction=\"in\", instance=~\"${nodename}\"}) by (instance)\n)\n\n# Because `closed_total` can be null, this serves as fallback\nor on(instance) sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"in\", instance=~\"${nodename}\"}) by (instance)",
+ "format": "time_series",
+ "hide": false,
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "established (in)",
"refId": "A"
+ },
+ {
+ "expr": "(\n sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"out\", instance=~\"${nodename}\"}) by (instance) -\n sum(${metric_namespace}_sub_libp2p_connections_closed_total{direction=\"out\", instance=~\"${nodename}\"}) by (instance)\n)\n\n# Because `closed_total` can be null, this serves as fallback\nor on(instance) sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"out\", instance=~\"${nodename}\"}) by (instance)",
+ "hide": false,
+ "instant": false,
+ "interval": "",
+ "legendFormat": "established (out)",
+ "refId": "C"
+ },
+ {
+ "expr": "sum by (instance) (${metric_namespace}_sub_libp2p_pending_connections{instance=~\"${nodename}\"})",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "pending (out)",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(rate(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}[$__interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "closed-per-sec",
+ "refId": "D"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of peer slots filled",
+ "title": "Average transport-level (TCP, QUIC, ...) connections",
"tooltip": {
"shared": true,
- "sort": 1,
+ "sort": 0,
"value_type": "individual"
},
"type": "graph",
@@ -160,14 +213,16 @@
},
"yaxes": [
{
- "format": "percentunit",
- "label": null,
+ "$$hashKey": "object:100",
+ "format": "short",
+ "label": "Connections",
"logBase": 1,
- "max": "1.0",
+ "max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:101",
"format": "short",
"label": null,
"logBase": 1,
@@ -181,63 +236,65 @@
"alignLevel": null
}
},
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 6
- },
- "id": 29,
- "panels": [],
- "repeat": "request_protocol",
- "title": "Requests (${request_protocol})",
- "type": "row"
- },
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
+ "h": 6,
+ "w": 24,
"x": 0,
"y": 7
},
"hiddenSeries": false,
- "id": 148,
+ "id": 189,
+ "interval": "",
"legend": {
+ "alignAsTable": false,
"avg": false,
"current": false,
+ "hideEmpty": false,
"max": false,
"min": false,
- "show": false,
+ "rightSide": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "maxPerRow": 12,
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "irate(${metric_namespace}_sub_libp2p_requests_out_started_total{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])",
+ "expr": "1 - \n\navg(\n ${metric_namespace}_sub_libp2p_distinct_peers_connections_opened_total{instance=~\"${nodename}\"} - ${metric_namespace}_sub_libp2p_distinct_peers_connections_closed_total{instance=~\"${nodename}\"}\n) by (instance)\n\n/\n\navg(\r\n sum(${metric_namespace}_sub_libp2p_connections_opened_total{instance=~\"${nodename}\"}) by (instance) - sum(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}) by (instance)\r\n) by (instance)",
+ "format": "time_series",
+ "hide": false,
"interval": "",
"legendFormat": "{{instance}}",
"refId": "A"
@@ -247,7 +304,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Requests emitted per second",
+ "title": "Percentage of peers for which we have more than one connection open",
"tooltip": {
"shared": true,
"sort": 2,
@@ -263,20 +320,22 @@
},
"yaxes": [
{
- "format": "reqps",
- "label": null,
+ "$$hashKey": "object:184",
+ "format": "percentunit",
+ "label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:185",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": true
+ "show": false
}
],
"yaxis": {
@@ -286,20 +345,28 @@
},
{
"aliasColors": {},
- "bars": false,
+ "bars": true,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
- "x": 12,
- "y": 7
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 13
},
"hiddenSeries": false,
- "id": 151,
+ "id": 39,
+ "interval": "",
"legend": {
"avg": false,
"current": false,
@@ -309,33 +376,48 @@
"total": false,
"values": false
},
- "lines": true,
+ "lines": false,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "seriesOverrides": [],
+ "repeat": "nodename",
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:263",
+ "alias": "/.*/",
+ "color": "#FF780A"
+ }
+ ],
"spaceLength": 10,
- "stack": false,
+ "stack": true,
"steppedLine": false,
"targets": [
{
- "expr": "irate(${metric_namespace}_sub_libp2p_requests_in_success_total_count{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])",
+ "expr": "increase(${metric_namespace}_sub_libp2p_incoming_connections_handshake_errors_total{instance=~\"${nodename}\"}[$__rate_interval])",
+ "hide": false,
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{reason}}",
"refId": "A"
+ },
+ {
+ "expr": "increase(${metric_namespace}_sub_libp2p_listeners_errors_total{instance=~\"${nodename}\"}[$__rate_interval])",
+ "interval": "",
+ "legendFormat": "pre-handshake",
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Requests served per second",
+ "title": "Number of incoming connection errors",
"tooltip": {
"shared": true,
"sort": 2,
@@ -351,20 +433,22 @@
},
"yaxes": [
{
- "format": "reqps",
- "label": null,
+ "$$hashKey": "object:270",
+ "format": "short",
+ "label": "Errors",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:271",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": true
+ "show": false
}
],
"yaxis": {
@@ -378,56 +462,64 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
+ "h": 6,
+ "w": 24,
"x": 0,
- "y": 11
+ "y": 19
},
"hiddenSeries": false,
- "id": 256,
+ "id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
- "show": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "histogram_quantile(0.5, sum(rate(${metric_namespace}_sub_libp2p_requests_out_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (instance, le)) > 0",
- "instant": false,
+ "expr": "rate(${metric_namespace}_sub_libp2p_network_bytes_total{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
- "legendFormat": "{{instance}}",
- "refId": "A"
+ "legendFormat": "{{direction}}",
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Median request answer time",
+ "title": "Network bandwidth",
"tooltip": {
"shared": true,
- "sort": 2,
+ "sort": 0,
"value_type": "individual"
},
"type": "graph",
@@ -440,7 +532,8 @@
},
"yaxes": [
{
- "format": "s",
+ "$$hashKey": "object:352",
+ "format": "binBps",
"label": null,
"logBase": 1,
"max": null,
@@ -448,6 +541,7 @@
"show": true
},
{
+ "$$hashKey": "object:353",
"format": "short",
"label": null,
"logBase": 1,
@@ -463,48 +557,63 @@
},
{
"aliasColors": {},
- "bars": false,
+ "bars": true,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
- "x": 12,
- "y": 11
+ "h": 7,
+ "w": 24,
+ "x": 0,
+ "y": 25
},
"hiddenSeries": false,
- "id": 258,
+ "id": 81,
+ "interval": "",
"legend": {
+ "alignAsTable": false,
"avg": false,
"current": false,
+ "hideEmpty": true,
+ "hideZero": true,
"max": false,
"min": false,
- "show": false,
+ "rightSide": false,
+ "show": true,
"total": false,
"values": false
},
- "lines": true,
+ "lines": false,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": false,
+ "stack": true,
"steppedLine": false,
"targets": [
{
- "expr": "histogram_quantile(0.5, sum(rate(${metric_namespace}_sub_libp2p_requests_in_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (instance, le))",
+ "expr": "increase(${metric_namespace}_sub_libp2p_pending_connections_errors_total{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{reason}}",
"refId": "A"
}
],
@@ -512,7 +621,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Median request serving time",
+ "title": "Dialing attempt errors",
"tooltip": {
"shared": true,
"sort": 2,
@@ -528,7 +637,8 @@
},
"yaxes": [
{
- "format": "s",
+ "$$hashKey": "object:431",
+ "format": "short",
"label": null,
"logBase": 1,
"max": null,
@@ -536,12 +646,13 @@
"show": true
},
{
+ "$$hashKey": "object:432",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": true
+ "show": false
}
],
"yaxis": {
@@ -555,45 +666,56 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
+ "h": 7,
+ "w": 24,
"x": 0,
- "y": 15
+ "y": 32
},
"hiddenSeries": false,
- "id": 257,
+ "id": 46,
+ "interval": "",
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
- "show": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "maxPerRow": 12,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": false,
+ "stack": true,
"steppedLine": false,
"targets": [
{
- "expr": "histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_requests_out_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (instance, le)) > 0",
- "instant": false,
+ "expr": "rate(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{reason}} ({{direction}})",
"refId": "A"
}
],
@@ -601,7 +723,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "99th percentile request answer time",
+ "title": "Disconnects/sec",
"tooltip": {
"shared": true,
"sort": 2,
@@ -617,20 +739,23 @@
},
"yaxes": [
{
- "format": "s",
- "label": null,
+ "$$hashKey": "object:514",
+ "decimals": null,
+ "format": "cps",
+ "label": "Disconnects",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:515",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": true
+ "show": false
}
],
"yaxis": {
@@ -639,21 +764,43 @@
}
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 0,
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 39
+ },
+ "id": 167,
+ "panels": [],
+ "repeat": null,
+ "title": "Sync",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
- "x": 12,
- "y": 15
+ "h": 5,
+ "w": 24,
+ "x": 0,
+ "y": 40
},
"hiddenSeries": false,
- "id": 259,
+ "id": 101,
"legend": {
"avg": false,
"current": false,
@@ -665,34 +812,43 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_requests_in_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (instance, le))",
+ "expr": "${metric_namespace}_sub_libp2p_peerset_num_requested{instance=~\"${nodename}\"}",
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "peers-requested",
"refId": "A"
+ },
+ {
+ "expr": "${metric_namespace}_sub_libp2p_peers_count{instance=~\"${nodename}.*\"}",
+ "interval": "",
+ "legendFormat": "peers-count",
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "99th percentile request serving time",
+ "title": "Number of peer slots filled",
"tooltip": {
- "shared": false,
- "sort": 2,
+ "shared": true,
+ "sort": 1,
"value_type": "individual"
},
"type": "graph",
@@ -705,20 +861,22 @@
},
"yaxes": [
{
- "format": "s",
+ "$$hashKey": "object:679",
+ "format": "none",
"label": null,
"logBase": 1,
"max": null,
- "min": null,
+ "min": "0",
"show": true
},
{
+ "$$hashKey": "object:680",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": true
+ "show": false
}
],
"yaxis": {
@@ -726,22 +884,44 @@
"alignLevel": null
}
},
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 45
+ },
+ "id": 29,
+ "panels": [],
+ "repeat": "request_protocol_out",
+ "title": "Outbound requests (${request_protocol_out})",
+ "type": "row"
+ },
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 4,
- "w": 12,
+ "w": 24,
"x": 0,
- "y": 19
+ "y": 46
},
"hiddenSeries": false,
- "id": 287,
+ "id": 148,
"legend": {
"avg": false,
"current": false,
@@ -753,24 +933,26 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_sub_libp2p_requests_out_failure_total{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (reason)",
- "instant": false,
+ "expr": "rate(${metric_namespace}_sub_libp2p_requests_out_success_total_count{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\"}[$__rate_interval]) + on(instance) sum(rate(${metric_namespace}_sub_libp2p_requests_out_failure_total{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\"}[$__rate_interval])) by (instance)\n\nor\n\nrate(${metric_namespace}_sub_libp2p_requests_out_success_total_count{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\"}[$__rate_interval])",
+ "hide": false,
"interval": "",
- "legendFormat": "{{reason}}",
+ "legendFormat": "{{instance}}",
"refId": "A"
}
],
@@ -778,7 +960,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Outgoing request failures per second",
+ "title": "Requests emitted per second",
"tooltip": {
"shared": true,
"sort": 2,
@@ -794,7 +976,8 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:209",
+ "format": "reqps",
"label": null,
"logBase": 1,
"max": null,
@@ -802,6 +985,7 @@
"show": true
},
{
+ "$$hashKey": "object:210",
"format": "short",
"label": null,
"logBase": 1,
@@ -821,16 +1005,23 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 4,
- "w": 12,
- "x": 12,
- "y": 19
+ "w": 24,
+ "x": 0,
+ "y": 50
},
"hiddenSeries": false,
- "id": 286,
+ "id": 448,
"legend": {
"avg": false,
"current": false,
@@ -842,23 +1033,26 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_sub_libp2p_requests_in_failure_total{instance=~\"${nodename}\", protocol=\"${request_protocol}\"}[5m])) by (reason)",
- "instant": false,
+ "expr": "sum(rate(${metric_namespace}_sub_libp2p_requests_out_failure_total{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\", reason != \"obsolete\"}[$__rate_interval])) by (instance, reason)",
+ "hide": false,
"interval": "",
+ "intervalFactor": 1,
"legendFormat": "{{reason}}",
"refId": "A"
}
@@ -867,7 +1061,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Ingoing request failures per second",
+ "title": "Outbound requests failures (other than \"obsolete\")",
"tooltip": {
"shared": true,
"sort": 2,
@@ -883,7 +1077,8 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:209",
+ "format": "reqps",
"label": null,
"logBase": 1,
"max": null,
@@ -891,6 +1086,7 @@
"show": true
},
{
+ "$$hashKey": "object:210",
"format": "short",
"label": null,
"logBase": 1,
@@ -904,79 +1100,60 @@
"alignLevel": null
}
},
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 40
- },
- "id": 23,
- "panels": [],
- "repeat": "notif_protocol",
- "title": "Notifications (${notif_protocol})",
- "type": "row"
- },
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 7,
- "w": 12,
+ "h": 4,
+ "w": 24,
"x": 0,
- "y": 41
+ "y": 54
},
"hiddenSeries": false,
- "id": 31,
- "interval": "1m",
+ "id": 256,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
- "rightSide": true,
- "show": true,
+ "show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "maxPerRow": 2,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [
- {
- "alias": "/(in)/",
- "color": "#73BF69"
- },
- {
- "alias": "/(out)/",
- "color": "#F2495C"
- }
- ],
+ "repeat": "nodename",
+ "seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg by (direction) (irate(${metric_namespace}_sub_libp2p_notifications_sizes_count{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__interval]))",
+ "expr": "histogram_quantile(0.5, sum(rate(${metric_namespace}_sub_libp2p_requests_out_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\"}[$__rate_interval])) by (instance, le)) > 0",
+ "instant": false,
"interval": "",
- "legendFormat": "{{direction}}",
+ "legendFormat": "{{instance}}",
"refId": "A"
}
],
@@ -984,7 +1161,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Average network notifications per second",
+ "title": "Median request answer time",
"tooltip": {
"shared": true,
"sort": 2,
@@ -1000,20 +1177,22 @@
},
"yaxes": [
{
- "format": "cps",
- "label": "Notifs/sec",
+ "$$hashKey": "object:1069",
+ "format": "s",
+ "label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:1070",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -1027,62 +1206,54 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 41
+ "h": 4,
+ "w": 24,
+ "x": 0,
+ "y": 58
},
"hiddenSeries": false,
- "id": 37,
- "interval": "1m",
+ "id": 257,
"legend": {
- "alignAsTable": false,
"avg": false,
"current": false,
- "hideEmpty": false,
- "hideZero": false,
"max": false,
"min": false,
- "rightSide": true,
- "show": true,
+ "show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "maxPerRow": 2,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [
- {
- "alias": "/(in)/",
- "color": "#73BF69"
- },
- {
- "alias": "/(out)/",
- "color": "#F2495C"
- }
- ],
+ "repeat": "nodename",
+ "seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_sub_libp2p_notifications_sizes_sum{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__interval])) by (direction)",
+ "expr": "histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_requests_out_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol_out}\"}[$__rate_interval])) by (instance, le)) > 0",
"instant": false,
"interval": "",
- "legendFormat": "{{direction}}",
+ "legendFormat": "{{instance}}",
"refId": "A"
}
],
@@ -1090,7 +1261,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Average bandwidth used by notifications",
+ "title": "99th percentile request answer time",
"tooltip": {
"shared": true,
"sort": 2,
@@ -1106,20 +1277,22 @@
},
"yaxes": [
{
- "format": "Bps",
- "label": "Bandwidth",
+ "$$hashKey": "object:988",
+ "format": "s",
+ "label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:989",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -1127,22 +1300,44 @@
"alignLevel": null
}
},
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 62
+ },
+ "id": 504,
+ "panels": [],
+ "repeat": "request_protocol_in",
+ "title": "Inbound requests (${request_protocol_in})",
+ "type": "row"
+ },
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 1,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 6,
- "w": 12,
+ "h": 4,
+ "w": 24,
"x": 0,
- "y": 48
+ "y": 63
},
"hiddenSeries": false,
- "id": 16,
+ "id": 151,
"legend": {
"avg": false,
"current": false,
@@ -1154,21 +1349,23 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
- "steppedLine": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "max(${metric_namespace}_sub_libp2p_out_events_notifications_sizes{instance=~\"${nodename}\", protocol=\"${notif_protocol}\", action=\"sent\"} - ignoring(action) ${metric_namespace}_sub_libp2p_out_events_notifications_sizes{instance=~\"${nodename}\", protocol=\"${notif_protocol}\", action=\"received\"}) by (instance) > 0",
+ "expr": "rate(${metric_namespace}_sub_libp2p_requests_in_success_total_count{instance=~\"${nodename}\", protocol=\"${request_protocol_in}\"}[$__rate_interval])",
"interval": "",
"legendFormat": "{{instance}}",
"refId": "A"
@@ -1178,10 +1375,10 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Total sizes of notifications waiting to be delivered to the rest of Substrate",
+ "title": "Requests served per second",
"tooltip": {
- "shared": false,
- "sort": 1,
+ "shared": true,
+ "sort": 2,
"value_type": "individual"
},
"type": "graph",
@@ -1194,7 +1391,8 @@
},
"yaxes": [
{
- "format": "bytes",
+ "$$hashKey": "object:907",
+ "format": "reqps",
"label": null,
"logBase": 1,
"max": null,
@@ -1202,12 +1400,13 @@
"show": true
},
{
+ "$$hashKey": "object:908",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -1221,16 +1420,23 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 1,
- "fillGradient": 1,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 0,
+ "fillGradient": 0,
"gridPos": {
- "h": 6,
- "w": 12,
- "x": 12,
- "y": 48
+ "h": 4,
+ "w": 24,
+ "x": 0,
+ "y": 67
},
"hiddenSeries": false,
- "id": 21,
+ "id": 449,
"legend": {
"avg": false,
"current": false,
@@ -1242,25 +1448,27 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
- "pluginVersion": "6.4.5",
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "sum(rate(${metric_namespace}_sub_libp2p_notifications_sizes_sum{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[5m])) by (direction, protocol) / sum(rate(${metric_namespace}_sub_libp2p_notifications_sizes_count{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[5m])) by (direction, protocol)",
- "format": "time_series",
+ "expr": "sum(rate(${metric_namespace}_sub_libp2p_requests_in_failure_total{instance=~\"${nodename}\", protocol=\"${request_protocol_in}\"}[$__rate_interval])) by (instance, reason)",
+ "hide": false,
"interval": "",
- "legendFormat": "{{direction}}",
+ "intervalFactor": 1,
+ "legendFormat": "{{reason}}",
"refId": "A"
}
],
@@ -1268,7 +1476,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Average size of sent and received notifications in the past 5 minutes",
+ "title": "Inbound requests failures",
"tooltip": {
"shared": true,
"sort": 2,
@@ -1284,20 +1492,22 @@
},
"yaxes": [
{
- "format": "bytes",
- "label": "Max. notification size",
- "logBase": 10,
+ "$$hashKey": "object:209",
+ "format": "reqps",
+ "label": null,
+ "logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:210",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -1311,660 +1521,53 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "description": "99.9% of the time, the output queue size for this protocol is below the given value",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 6,
- "w": 12,
+ "h": 4,
+ "w": 24,
"x": 0,
- "y": 54
+ "y": 71
},
"hiddenSeries": false,
- "id": 14,
+ "id": 258,
"legend": {
- "alignAsTable": false,
"avg": false,
- "current": true,
- "hideEmpty": false,
- "hideZero": true,
- "max": true,
+ "current": false,
+ "max": false,
"min": false,
- "rightSide": true,
- "show": true,
+ "show": false,
"total": false,
- "values": true
+ "values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "max",
- "fill": 1,
- "linewidth": 0
- }
- ],
+ "repeat": "nodename",
+ "seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_notifications_queues_size_bucket{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[2m])) by (le, instance))",
- "hide": false,
+ "expr": "histogram_quantile(0.5, sum(rate(${metric_namespace}_sub_libp2p_requests_in_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol_in}\"}[$__rate_interval])) by (instance, le))",
"interval": "",
- "legendFormat": "{{protocol}}",
- "refId": "A"
- },
- {
- "expr": "max(histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_notifications_queues_size_bucket{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[2m])) by (le, instance)))",
- "interval": "",
- "legendFormat": "max",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "99th percentile of queues sizes",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": "300",
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 1,
- "fillGradient": 1,
- "gridPos": {
- "h": 6,
- "w": 12,
- "x": 12,
- "y": 54
- },
- "hiddenSeries": false,
- "id": 134,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pluginVersion": "6.4.5",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "histogram_quantile(1.0, sum(rate(${metric_namespace}_sub_libp2p_notifications_sizes_bucket{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[5m])) by (direction, le))",
- "format": "time_series",
- "interval": "",
- "legendFormat": "{{direction}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Maximum size of sent and received notifications in the past 5 minutes",
- "tooltip": {
- "shared": true,
- "sort": 2,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bytes",
- "label": "Max. notification size",
- "logBase": 10,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 60
- },
- "id": 27,
- "panels": [],
- "title": "Transport",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 24,
- "x": 0,
- "y": 61
- },
- "hiddenSeries": false,
- "id": 19,
- "interval": "1m",
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "hideEmpty": false,
- "max": false,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "maxPerRow": 2,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [
- {
- "alias": "established (in)",
- "color": "#37872D"
- },
- {
- "alias": "established (out)",
- "color": "#C4162A"
- },
- {
- "alias": "pending (out)",
- "color": "#FF7383"
- },
- {
- "alias": "closed-recently",
- "color": "#FADE2A",
- "steppedLine": true
- }
- ],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "avg(sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"in\", instance=~\"${nodename}\"}) by (instance) - sum(${metric_namespace}_sub_libp2p_connections_closed_total{direction=\"in\", instance=~\"${nodename}\"}) by (instance))",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "legendFormat": "established (in)",
- "refId": "A"
- },
- {
- "expr": "avg(sum(${metric_namespace}_sub_libp2p_connections_opened_total{direction=\"out\", instance=~\"${nodename}\"}) by (instance) - sum(${metric_namespace}_sub_libp2p_connections_closed_total{direction=\"out\", instance=~\"${nodename}\"}) by (instance))",
- "hide": false,
- "instant": false,
- "interval": "",
- "legendFormat": "established (out)",
- "refId": "C"
- },
- {
- "expr": "avg(sum by (instance) (${metric_namespace}_sub_libp2p_pending_connections{instance=~\"${nodename}\"}))",
- "hide": false,
- "interval": "",
- "legendFormat": "pending (out)",
- "refId": "B"
- },
- {
- "expr": "avg(sum by(instance) (increase(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}[$__interval])))",
- "hide": false,
- "interval": "",
- "legendFormat": "closed-recently",
- "refId": "D"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average transport-level (TCP, QUIC, ...) connections per node",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Connections",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 0,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 24,
- "x": 0,
- "y": 67
- },
- "hiddenSeries": false,
- "id": 189,
- "interval": "1m",
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "hideEmpty": false,
- "max": false,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "maxPerRow": 2,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "1 - \n\navg(\n ${metric_namespace}_sub_libp2p_distinct_peers_connections_opened_total{instance=~\"${nodename}\"} - ${metric_namespace}_sub_libp2p_distinct_peers_connections_closed_total{instance=~\"${nodename}\"}\n) by (instance)\n\n/\n\navg(\r\n sum(${metric_namespace}_sub_libp2p_connections_opened_total{instance=~\"${nodename}\"}) by (instance) - sum(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}) by (instance)\r\n) by (instance)",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Percentage of peers for which we have more than one connection open",
- "tooltip": {
- "shared": true,
- "sort": 2,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "percentunit",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 12,
- "x": 0,
- "y": 73
- },
- "hiddenSeries": false,
- "id": 39,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "/.*/",
- "color": "#FF780A"
- }
- ],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "avg(increase(${metric_namespace}_sub_libp2p_incoming_connections_handshake_errors_total{instance=~\"${nodename}\"}[$__interval])) by (reason)",
- "interval": "",
- "legendFormat": "{{reason}}",
- "refId": "A"
- },
- {
- "expr": "avg(increase(${metric_namespace}_sub_libp2p_listeners_errors_total{instance=~\"${nodename}\"}[$__interval]))",
- "interval": "",
- "legendFormat": "pre-handshake",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Number of incoming connection errors, averaged by node",
- "tooltip": {
- "shared": true,
- "sort": 2,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Errors",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cards": {
- "cardPadding": null,
- "cardRound": null
- },
- "color": {
- "cardColor": "#b4ff00",
- "colorScale": "sqrt",
- "colorScheme": "interpolateOranges",
- "exponent": 0.5,
- "max": 100,
- "min": 0,
- "mode": "spectrum"
- },
- "dataFormat": "timeseries",
- "datasource": "$data_source",
- "description": "Each bucket represent a certain number of nodes using a certain bandwidth range.",
- "gridPos": {
- "h": 6,
- "w": 12,
- "x": 12,
- "y": 73
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 4,
- "legend": {
- "show": false
- },
- "reverseYBuckets": false,
- "targets": [
- {
- "expr": "${metric_namespace}_network_per_sec_bytes{instance=~\"${nodename}\"}",
- "format": "time_series",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Heatmap of network bandwidth",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": "2.5m",
- "yAxis": {
- "decimals": null,
- "format": "Bps",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 79
- },
- "hiddenSeries": false,
- "id": 81,
- "interval": "1m",
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "hideEmpty": true,
- "hideZero": true,
- "max": false,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "avg(increase(${metric_namespace}_sub_libp2p_pending_connections_errors_total{instance=~\"${nodename}\"}[$__interval])) by (reason)",
- "interval": "",
- "legendFormat": "{{reason}}",
+ "legendFormat": "{{instance}}",
"refId": "A"
}
],
@@ -1972,7 +1575,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Dialing attempt errors, averaged per node",
+ "title": "Median request serving time",
"tooltip": {
"shared": true,
"sort": 2,
@@ -1988,7 +1591,8 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:666",
+ "format": "s",
"label": null,
"logBase": 1,
"max": null,
@@ -1996,12 +1600,13 @@
"show": true
},
{
+ "$$hashKey": "object:667",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -2011,52 +1616,57 @@
},
{
"aliasColors": {},
- "bars": true,
+ "bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 1,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 79
+ "h": 4,
+ "w": 24,
+ "x": 0,
+ "y": 75
},
"hiddenSeries": false,
- "id": 46,
- "interval": "1m",
+ "id": 259,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
- "show": true,
+ "show": false,
"total": false,
"values": false
},
- "lines": false,
+ "lines": true,
"linewidth": 1,
- "maxPerRow": 2,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": true,
+ "stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(increase(${metric_namespace}_sub_libp2p_connections_closed_total{instance=~\"${nodename}\"}[$__interval])) by (reason)",
+ "expr": "histogram_quantile(0.99, sum(rate(${metric_namespace}_sub_libp2p_requests_in_success_total_bucket{instance=~\"${nodename}\", protocol=\"${request_protocol_in}\"}[$__rate_interval])) by (instance, le))",
"interval": "",
- "legendFormat": "{{reason}}",
+ "legendFormat": "{{instance}}",
"refId": "A"
}
],
@@ -2064,9 +1674,9 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Disconnects, averaged per node",
+ "title": "99th percentile request serving time",
"tooltip": {
- "shared": true,
+ "shared": false,
"sort": 2,
"value_type": "individual"
},
@@ -2080,21 +1690,22 @@
},
"yaxes": [
{
- "decimals": null,
- "format": "short",
- "label": "Disconnects",
+ "$$hashKey": "object:747",
+ "format": "s",
+ "label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:748",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
@@ -2109,204 +1720,86 @@
"h": 1,
"w": 24,
"x": 0,
- "y": 86
+ "y": 79
},
- "id": 52,
+ "id": 23,
"panels": [],
- "title": "GrandPa",
+ "repeat": "notif_protocol",
+ "title": "Notifications (${notif_protocol})",
"type": "row"
},
{
"aliasColors": {},
- "bars": true,
+ "bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 87
+ "y": 80
},
"hiddenSeries": false,
- "id": 54,
- "interval": "1m",
+ "id": 447,
"legend": {
"alignAsTable": true,
- "avg": false,
- "current": false,
- "hideEmpty": true,
- "hideZero": true,
- "max": false,
- "min": false,
- "rightSide": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
"show": true,
- "total": true,
+ "total": false,
"values": true
},
- "lines": false,
+ "lines": true,
"linewidth": 1,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "seriesOverrides": [
- {
- "alias": "/discard/",
- "color": "#FA6400",
- "zindex": -2
- },
- {
- "alias": "/keep/",
- "color": "#73BF69",
- "zindex": 2
- },
- {
- "alias": "/process_and_discard/",
- "color": "#5794F2"
- }
- ],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "avg(increase(${metric_namespace}_finality_grandpa_communication_gossip_validator_messages{instance=~\"${nodename}\"}[$__interval])) by (action, message)",
- "interval": "",
- "legendFormat": "{{message}} => {{action}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "GrandPa messages received from the network, and action",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 93
- },
- "id": 25,
- "panels": [],
- "repeat": null,
- "title": "Kademlia & authority-discovery",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "description": "",
- "fill": 0,
- "fillGradient": 0,
- "gridPos": {
- "h": 5,
- "w": 12,
- "x": 0,
- "y": 94
- },
- "hiddenSeries": false,
- "id": 33,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": true,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "sum(${metric_namespace}_sub_libp2p_kbuckets_num_nodes{instance=~\"${nodename}\"}) by (instance)",
- "format": "time_series",
- "instant": false,
+ "expr": "${metric_namespace}_sub_libp2p_notifications_streams_opened_total{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"} - ${metric_namespace}_sub_libp2p_notifications_streams_closed_total{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}",
"interval": "",
"legendFormat": "{{instance}}",
- "refId": "A"
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of entries in Kademlia k-buckets",
+ "title": "Number of open substreams",
"tooltip": {
- "shared": true,
+ "shared": false,
"sort": 1,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
- "max": 0,
- "min": null,
"mode": "time",
"name": null,
"show": true,
@@ -2314,6 +1807,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:896",
"format": "short",
"label": null,
"logBase": 1,
@@ -2322,6 +1816,7 @@
"show": true
},
{
+ "$$hashKey": "object:897",
"format": "short",
"label": null,
"logBase": 1,
@@ -2341,55 +1836,67 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
- "fillGradient": 7,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
"gridPos": {
- "h": 5,
- "w": 12,
- "x": 12,
- "y": 94
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 86
},
"hiddenSeries": false,
- "id": 35,
- "interval": "",
+ "id": 486,
"legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
"show": false,
"total": false,
- "values": false
+ "values": true
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
+ "repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "rate(${metric_namespace}_sub_libp2p_kademlia_random_queries_total{instance=~\"${nodename}\"}[5m])",
+ "expr": "rate(${metric_namespace}_sub_libp2p_notifications_streams_closed_total{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval])",
"interval": "",
+ "intervalFactor": 4,
"legendFormat": "{{instance}}",
- "refId": "A"
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Kademlia random discovery queries started per second",
+ "title": "Substreams closed/sec",
"tooltip": {
- "shared": true,
+ "shared": false,
"sort": 1,
"value_type": "individual"
},
@@ -2403,14 +1910,16 @@
},
"yaxes": [
{
- "format": "cps",
- "label": "Queries per second",
+ "$$hashKey": "object:484",
+ "format": "short",
+ "label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:485",
"format": "short",
"label": null,
"logBase": 1,
@@ -2430,44 +1939,68 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
+ "h": 6,
+ "w": 24,
"x": 0,
- "y": 99
+ "y": 92
},
"hiddenSeries": false,
- "id": 111,
+ "id": 31,
+ "interval": "",
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
- "show": false,
+ "rightSide": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "maxPerRow": 12,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "seriesOverrides": [],
+ "repeat": "nodename",
+ "repeatDirection": "h",
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:399",
+ "alias": "/(in)/",
+ "color": "#73BF69"
+ },
+ {
+ "$$hashKey": "object:400",
+ "alias": "/(out)/",
+ "color": "#F2495C"
+ }
+ ],
"spaceLength": 10,
"stack": false,
- "steppedLine": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "${metric_namespace}_sub_libp2p_kademlia_records_count{instance=~\"${nodename}\"}",
+ "expr": "avg by (direction) (rate(${metric_namespace}_sub_libp2p_notifications_sizes_count{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval]))",
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{direction}}",
"refId": "A"
}
],
@@ -2475,10 +2008,10 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of Kademlia records",
+ "title": "Number of network notifications",
"tooltip": {
"shared": true,
- "sort": 1,
+ "sort": 2,
"value_type": "individual"
},
"type": "graph",
@@ -2491,14 +2024,16 @@
},
"yaxes": [
{
+ "$$hashKey": "object:413",
"format": "short",
- "label": null,
+ "label": "Notifs/sec",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:414",
"format": "short",
"label": null,
"logBase": 1,
@@ -2518,44 +2053,72 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
- "h": 4,
- "w": 12,
- "x": 12,
- "y": 99
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 98
},
"hiddenSeries": false,
- "id": 112,
+ "id": 37,
+ "interval": "",
"legend": {
+ "alignAsTable": false,
"avg": false,
"current": false,
+ "hideEmpty": false,
+ "hideZero": false,
"max": false,
"min": false,
- "show": false,
+ "rightSide": false,
+ "show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "maxPerRow": 12,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "seriesOverrides": [],
+ "repeat": "nodename",
+ "repeatDirection": "h",
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:492",
+ "alias": "/(in)/",
+ "color": "#73BF69"
+ },
+ {
+ "$$hashKey": "object:493",
+ "alias": "/(out)/",
+ "color": "#F2495C"
+ }
+ ],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "${metric_namespace}_sub_libp2p_kademlia_records_sizes_total{instance=~\"${nodename}\"}",
+ "expr": "avg(rate(${metric_namespace}_sub_libp2p_notifications_sizes_sum{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval])) by (direction)",
+ "instant": false,
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{direction}}",
"refId": "A"
}
],
@@ -2563,7 +2126,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Total size of Kademlia records",
+ "title": "Average bandwidth used by notifications",
"tooltip": {
"shared": true,
"sort": 2,
@@ -2579,14 +2142,16 @@
},
"yaxes": [
{
- "format": "bytes",
- "label": null,
+ "$$hashKey": "object:506",
+ "format": "Bps",
+ "label": "Bandwidth",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:507",
"format": "short",
"label": null,
"logBase": 1,
@@ -2606,19 +2171,24 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "description": "",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 5,
- "w": 12,
+ "h": 6,
+ "w": 24,
"x": 0,
- "y": 103
+ "y": 104
},
"hiddenSeries": false,
- "id": 211,
+ "id": 16,
"legend": {
- "alignAsTable": false,
"avg": false,
"current": false,
"max": false,
@@ -2629,25 +2199,25 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
- "percentage": true,
+ "percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "${metric_namespace}_authority_discovery_known_authorities_count{instance=~\"${nodename}\"}",
- "format": "time_series",
- "instant": false,
+ "expr": "${metric_namespace}_sub_libp2p_out_events_notifications_sizes{instance=~\"${nodename}\", protocol=\"${notif_protocol}\", action=\"sent\"} - ignoring(action) ${metric_namespace}_sub_libp2p_out_events_notifications_sizes{instance=~\"${nodename}\", protocol=\"${notif_protocol}\", action=\"received\"}",
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{name}}",
"refId": "A"
}
],
@@ -2655,17 +2225,15 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of authorities discovered by authority-discovery",
+ "title": "Total sizes of notifications waiting to be delivered to the rest of Substrate",
"tooltip": {
- "shared": true,
+ "shared": false,
"sort": 1,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
- "max": 0,
- "min": null,
"mode": "time",
"name": null,
"show": true,
@@ -2673,7 +2241,8 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:232",
+ "format": "bytes",
"label": null,
"logBase": 1,
"max": null,
@@ -2681,6 +2250,7 @@
"show": true
},
{
+ "$$hashKey": "object:233",
"format": "short",
"label": null,
"logBase": 1,
@@ -2700,19 +2270,24 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "description": "",
- "fill": 0,
- "fillGradient": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 1,
"gridPos": {
- "h": 5,
- "w": 12,
- "x": 12,
- "y": 103
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 110
},
"hiddenSeries": false,
- "id": 233,
+ "id": 21,
"legend": {
- "alignAsTable": false,
"avg": false,
"current": false,
"max": false,
@@ -2723,25 +2298,26 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
- "percentage": true,
+ "percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "${metric_namespace}_authority_discovery_amount_external_addresses_last_published{instance=~\"${nodename}\"}",
+ "expr": "sum(rate(${metric_namespace}_sub_libp2p_notifications_sizes_sum{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval])) by (direction, protocol) / sum(rate(${metric_namespace}_sub_libp2p_notifications_sizes_count{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval])) by (direction, protocol)",
"format": "time_series",
- "instant": false,
"interval": "",
- "legendFormat": "{{instance}}",
+ "legendFormat": "{{direction}}",
"refId": "A"
}
],
@@ -2749,17 +2325,15 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of addresses published by authority-discovery",
+ "title": "Average size of sent and received notifications",
"tooltip": {
"shared": true,
- "sort": 1,
+ "sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
- "max": 0,
- "min": null,
"mode": "time",
"name": null,
"show": true,
@@ -2767,14 +2341,16 @@
},
"yaxes": [
{
- "format": "short",
- "label": null,
- "logBase": 1,
+ "$$hashKey": "object:322",
+ "format": "bytes",
+ "label": "Max. notification size",
+ "logBase": 10,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:323",
"format": "short",
"label": null,
"logBase": 1,
@@ -2794,17 +2370,23 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
- "fillGradient": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 1,
"gridPos": {
- "h": 5,
- "w": 12,
+ "h": 6,
+ "w": 24,
"x": 0,
- "y": 108
+ "y": 116
},
"hiddenSeries": false,
- "id": 68,
- "interval": "1m",
+ "id": 134,
"legend": {
"avg": false,
"current": false,
@@ -2816,36 +2398,37 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "connected",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_found\", instance=~\"${nodename}\"}[2h]) / ignoring(name) (\n rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_found\", instance=~\"${nodename}\"}[2h]) +\n ignoring(name) rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_not_found\", instance=~\"${nodename}\"}[2h])\n)",
+ "expr": "histogram_quantile(0.99, sum(irate(${metric_namespace}_sub_libp2p_notifications_sizes_bucket{instance=~\"${nodename}\", protocol=\"${notif_protocol}\"}[$__rate_interval])) by (direction, le))",
+ "format": "time_series",
"interval": "",
- "legendFormat": "{{instance}}",
- "refId": "B"
+ "legendFormat": "{{direction}}",
+ "refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Authority discovery get_value success rate in past two hours",
+ "title": "99th percentile of size of sent and received notifications",
"tooltip": {
"shared": true,
- "sort": 1,
+ "sort": 2,
"value_type": "individual"
},
"type": "graph",
@@ -2858,14 +2441,16 @@
},
"yaxes": [
{
- "format": "percentunit",
- "label": null,
- "logBase": 1,
- "max": "1.0",
+ "$$hashKey": "object:244",
+ "format": "bytes",
+ "label": "Max. notification size",
+ "logBase": 10,
+ "max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:245",
"format": "short",
"label": null,
"logBase": 1,
@@ -2879,63 +2464,108 @@
"alignLevel": null
}
},
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 122
+ },
+ "id": 52,
+ "panels": [],
+ "title": "GrandPa",
+ "type": "row"
+ },
{
"aliasColors": {},
- "bars": false,
+ "bars": true,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 5,
- "w": 12,
- "x": 12,
- "y": 108
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 123
},
"hiddenSeries": false,
- "id": 234,
+ "id": 54,
"interval": "1m",
"legend": {
+ "alignAsTable": true,
"avg": false,
"current": false,
+ "hideEmpty": true,
+ "hideZero": true,
"max": false,
"min": false,
- "show": false,
- "total": false,
- "values": false
+ "rightSide": true,
+ "show": true,
+ "total": true,
+ "values": true
},
- "lines": true,
+ "lines": false,
"linewidth": 1,
- "nullPointMode": "connected",
+ "nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
- "repeatDirection": "v",
- "seriesOverrides": [],
+ "repeat": "nodename",
+ "repeatDirection": "h",
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:366",
+ "alias": "/discard/",
+ "color": "#FA6400",
+ "zindex": -2
+ },
+ {
+ "$$hashKey": "object:367",
+ "alias": "/keep/",
+ "color": "#73BF69",
+ "zindex": 2
+ },
+ {
+ "$$hashKey": "object:368",
+ "alias": "/process_and_discard/",
+ "color": "#5794F2"
+ }
+ ],
"spaceLength": 10,
- "stack": false,
+ "stack": true,
"steppedLine": false,
"targets": [
{
- "expr": "rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_put\", instance=~\"${nodename}\"}[2h]) / ignoring(name) (\n rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_put\", instance=~\"${nodename}\"}[2h]) +\n ignoring(name) rate(${metric_namespace}_authority_discovery_dht_event_received{name=\"value_put_failed\", instance=~\"${nodename}\"}[2h])\n)",
+ "expr": "rate(${metric_namespace}_finality_grandpa_communication_gossip_validator_messages{instance=~\"${nodename}\"}[$__interval])",
"interval": "",
- "legendFormat": "{{instance}}",
- "refId": "B"
+ "legendFormat": "{{message}} => {{action}}",
+ "refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Authority discovery put_value success rate in past two hours",
+ "title": "GrandPa messages received from the network, and action",
"tooltip": {
"shared": true,
- "sort": 1,
+ "sort": 0,
"value_type": "individual"
},
"type": "graph",
@@ -2948,30 +2578,77 @@
},
"yaxes": [
{
- "format": "percentunit",
+ "$$hashKey": "object:409",
+ "format": "short",
"label": null,
"logBase": 1,
- "max": "1.0",
+ "max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:410",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
- "show": false
+ "show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
+ },
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 129
+ },
+ "id": 25,
+ "panels": [],
+ "repeat": null,
+ "title": "Kademlia & authority-discovery",
+ "type": "row"
+ },
+ {
+ "datasource": null,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "folderId": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 130
+ },
+ "headings": true,
+ "id": 423,
+ "limit": 10,
+ "pluginVersion": "7.2.1",
+ "query": "kademlia",
+ "recent": false,
+ "search": false,
+ "starred": false,
+ "tags": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Kademlia and Authority Discovery metrics moved to \"kademlia-and-authority-discovery\" dashboard.",
+ "type": "dashlist"
}
],
- "refresh": "1m",
- "schemaVersion": 22,
+ "refresh": false,
+ "schemaVersion": 26,
"style": "dark",
"tags": [],
"templating": {
@@ -2981,9 +2658,9 @@
"current": {},
"datasource": "$data_source",
"definition": "${metric_namespace}_process_start_time_seconds",
+ "error": null,
"hide": 0,
- "includeAll": true,
- "index": -1,
+ "includeAll": false,
"label": "Instance name filter",
"multi": true,
"name": "nodename",
@@ -3003,15 +2680,15 @@
"allValue": null,
"current": {},
"datasource": "$data_source",
- "definition": "${metric_namespace}_sub_libp2p_notifications_sizes_count",
+ "definition": "${metric_namespace}_sub_libp2p_notifications_streams_opened_total{instance=~\"${nodename}\"}",
+ "error": null,
"hide": 2,
"includeAll": true,
- "index": -1,
"label": null,
"multi": false,
"name": "notif_protocol",
"options": [],
- "query": "${metric_namespace}_sub_libp2p_notifications_sizes_count",
+ "query": "${metric_namespace}_sub_libp2p_notifications_streams_opened_total{instance=~\"${nodename}\"}",
"refresh": 1,
"regex": "/protocol=\"(.*?)\"/",
"skipUrlSync": false,
@@ -3026,15 +2703,15 @@
"allValue": null,
"current": {},
"datasource": "$data_source",
- "definition": "${metric_namespace}_sub_libp2p_requests_out_started_total",
+ "definition": "${metric_namespace}_sub_libp2p_requests_in_success_total_count{instance=~\"${nodename}\"}",
+ "error": null,
"hide": 2,
"includeAll": true,
- "index": -1,
"label": null,
"multi": false,
- "name": "request_protocol",
+ "name": "request_protocol_in",
"options": [],
- "query": "${metric_namespace}_sub_libp2p_requests_out_started_total",
+ "query": "${metric_namespace}_sub_libp2p_requests_in_success_total_count{instance=~\"${nodename}\"}",
"refresh": 1,
"regex": "/protocol=\"(.*?)\"/",
"skipUrlSync": false,
@@ -3048,9 +2725,10 @@
{
"current": {
"selected": false,
- "text": "Prometheus",
- "value": "Prometheus"
+ "text": "prometheus.parity-mgmt",
+ "value": "prometheus.parity-mgmt"
},
+ "error": null,
"hide": 0,
"includeAll": false,
"label": "Source of data",
@@ -3058,6 +2736,7 @@
"name": "data_source",
"options": [],
"query": "prometheus",
+ "queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
@@ -3066,20 +2745,46 @@
{
"current": {
"value": "${VAR_METRIC_NAMESPACE}",
- "text": "${VAR_METRIC_NAMESPACE}"
+ "text": "${VAR_METRIC_NAMESPACE}",
+ "selected": false
},
+ "error": null,
"hide": 2,
"label": "Prefix of the metrics",
"name": "metric_namespace",
"options": [
{
"value": "${VAR_METRIC_NAMESPACE}",
- "text": "${VAR_METRIC_NAMESPACE}"
+ "text": "${VAR_METRIC_NAMESPACE}",
+ "selected": false
}
],
"query": "${VAR_METRIC_NAMESPACE}",
"skipUrlSync": false,
"type": "constant"
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "$data_source",
+ "definition": "${metric_namespace}_sub_libp2p_requests_out_success_total_count{instance=~\"${nodename}\"}",
+ "error": null,
+ "hide": 2,
+ "includeAll": true,
+ "label": null,
+ "multi": false,
+ "name": "request_protocol_out",
+ "options": [],
+ "query": "${metric_namespace}_sub_libp2p_requests_out_success_total_count{instance=~\"${nodename}\"}",
+ "refresh": 1,
+ "regex": "/protocol=\"(.*?)\"/",
+ "skipUrlSync": false,
+ "sort": 5,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
}
]
},
@@ -3101,11 +2806,8 @@
"1d"
]
},
- "timezone": "",
+ "timezone": "utc",
"title": "Substrate Networking",
"uid": "vKVuiD9Zk",
- "variables": {
- "list": []
- },
- "version": 121
-}
+ "version": 176
+}
\ No newline at end of file
diff --git a/.maintain/monitoring/grafana-dashboards/substrate-service-tasks.json b/.maintain/monitoring/grafana-dashboards/substrate-service-tasks.json
index 539fdec086a37..2f08ac7bb34c5 100644
--- a/.maintain/monitoring/grafana-dashboards/substrate-service-tasks.json
+++ b/.maintain/monitoring/grafana-dashboards/substrate-service-tasks.json
@@ -13,7 +13,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "6.7.3"
+ "version": "7.3.6"
},
{
"type": "panel",
@@ -26,11 +26,18 @@
"id": "prometheus",
"name": "Prometheus",
"version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
}
],
"annotations": {
"list": [
{
+ "$$hashKey": "object:326",
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
@@ -42,6 +49,7 @@
"type": "dashboard"
},
{
+ "$$hashKey": "object:327",
"datasource": "$data_source",
"enable": true,
"expr": "increase(${metric_namespace}_tasks_ended_total{reason=\"panic\", instance=~\"${nodename}\"}[10m])",
@@ -58,6 +66,7 @@
"type": "tags"
},
{
+ "$$hashKey": "object:621",
"datasource": "$data_source",
"enable": true,
"expr": "changes(${metric_namespace}_process_start_time_seconds{instance=~\"${nodename}\"}[10m])",
@@ -75,18 +84,45 @@
"gnetId": null,
"graphTooltip": 0,
"id": null,
- "iteration": 1599471940817,
+ "iteration": 1621244116095,
"links": [],
"panels": [
{
- "collapsed": false,
"datasource": null,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
+ "id": 42,
+ "options": {
+ "content": "",
+ "mode": "markdown"
+ },
+ "pluginVersion": "7.3.6",
+ "repeat": "nodename",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "$nodename",
+ "type": "text"
+ },
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
"id": 29,
"panels": [],
"title": "Tasks",
@@ -98,17 +134,24 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 3,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 1
+ "y": 2
},
"hiddenSeries": false,
"id": 11,
- "interval": "1m",
+ "interval": "",
"legend": {
"alignAsTable": true,
"avg": true,
@@ -123,22 +166,24 @@
"values": true
},
"lines": true,
- "linewidth": 2,
- "nullPointMode": "null",
+ "linewidth": 1,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": false,
- "steppedLine": true,
+ "stack": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_tasks_polling_duration_sum{instance=~\"${nodename}\"}[10m])) by (task_name)",
+ "expr": "rate(${metric_namespace}_tasks_polling_duration_sum{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
"legendFormat": "{{task_name}}",
"refId": "A"
@@ -148,7 +193,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "CPU time spent on each task (average per node)",
+ "title": "CPU time spent on each task",
"tooltip": {
"shared": true,
"sort": 2,
@@ -164,6 +209,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:2721",
"format": "percentunit",
"label": null,
"logBase": 1,
@@ -172,6 +218,7 @@
"show": true
},
{
+ "$$hashKey": "object:2722",
"format": "short",
"label": null,
"logBase": 1,
@@ -191,13 +238,20 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
+ "fill": 3,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 7
+ "y": 8
},
"hiddenSeries": false,
"id": 30,
@@ -216,22 +270,24 @@
"values": true
},
"lines": true,
- "linewidth": 2,
- "nullPointMode": "null",
+ "linewidth": 1,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": false,
- "steppedLine": true,
+ "stack": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_tasks_polling_duration_count{instance=~\"${nodename}\"}[10m])) by (task_name)",
+ "expr": "rate(${metric_namespace}_tasks_polling_duration_count{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
"legendFormat": "{{task_name}}",
"refId": "A"
@@ -241,7 +297,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Task polling rate per second (average per node)",
+ "title": "Task polling rate per second",
"tooltip": {
"shared": true,
"sort": 2,
@@ -257,6 +313,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:2571",
"format": "cps",
"label": null,
"logBase": 1,
@@ -265,6 +322,7 @@
"show": true
},
{
+ "$$hashKey": "object:2572",
"format": "short",
"label": null,
"logBase": 1,
@@ -284,21 +342,30 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 13
+ "y": 14
},
"hiddenSeries": false,
- "id": 31,
+ "id": 43,
"interval": "",
"legend": {
"alignAsTable": true,
- "avg": false,
- "current": false,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": false,
"max": true,
"min": false,
"rightSide": true,
@@ -307,22 +374,24 @@
"values": true
},
"lines": true,
- "linewidth": 2,
- "nullPointMode": "null",
+ "linewidth": 1,
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
- "steppedLine": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "max(irate(${metric_namespace}_tasks_polling_duration_count{instance=~\"${nodename}\"}[10m])) by (task_name)",
+ "expr": "increase(${metric_namespace}_tasks_polling_duration_sum{instance=~\"${nodename}\"}[$__rate_interval]) / increase(${metric_namespace}_tasks_polling_duration_count{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
"legendFormat": "{{task_name}}",
"refId": "A"
@@ -332,7 +401,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Task polling rate per second (maximum per node)",
+ "title": "Average time it takes to call Future::poll()",
"tooltip": {
"shared": true,
"sort": 2,
@@ -348,14 +417,16 @@
},
"yaxes": [
{
- "format": "cps",
+ "$$hashKey": "object:2571",
+ "format": "s",
"label": null,
"logBase": 1,
"max": null,
- "min": null,
+ "min": "0",
"show": true
},
{
+ "$$hashKey": "object:2572",
"format": "short",
"label": null,
"logBase": 1,
@@ -371,50 +442,60 @@
},
{
"aliasColors": {},
- "bars": false,
+ "bars": true,
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 19
+ "y": 20
},
"hiddenSeries": false,
"id": 15,
"interval": "",
"legend": {
"alignAsTable": true,
- "avg": true,
+ "avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
- "total": false,
+ "total": true,
"values": true
},
- "lines": true,
+ "lines": false,
"linewidth": 1,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
- "stack": false,
+ "stack": true,
"steppedLine": true,
"targets": [
{
- "expr": "avg by(task_name) (irate(${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"}[10m]))",
+ "expr": "increase(${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"}[$__rate_interval])",
"interval": "",
+ "intervalFactor": 1,
"legendFormat": "{{task_name}}",
"refId": "A"
}
@@ -423,7 +504,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of tasks started per second (average per node)",
+ "title": "Number of tasks started",
"tooltip": {
"shared": true,
"sort": 2,
@@ -439,6 +520,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:771",
"format": "short",
"label": null,
"logBase": 10,
@@ -447,6 +529,7 @@
"show": true
},
{
+ "$$hashKey": "object:772",
"format": "short",
"label": null,
"logBase": 1,
@@ -466,205 +549,30 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
- "fill": 0,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 24,
- "x": 0,
- "y": 25
- },
- "hiddenSeries": false,
- "id": 16,
- "interval": "",
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": false,
- "max": true,
- "min": false,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": true,
- "targets": [
- {
- "expr": "max by(task_name) (irate(${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"}[10m]))",
- "interval": "",
- "legendFormat": "{{task_name}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Number of tasks started per second (maximum over all nodes)",
- "tooltip": {
- "shared": true,
- "sort": 2,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 10,
- "max": null,
- "min": "0",
- "show": true
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
},
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
- "fill": 0,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 24,
- "x": 0,
- "y": 31
- },
- "hiddenSeries": false,
- "id": 2,
- "interval": "",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": false,
- "min": false,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null as zero",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": true,
- "targets": [
- {
- "expr": "avg by(task_name) (${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"} - sum(${metric_namespace}_tasks_ended_total{instance=~\"${nodename}\"}) without(reason))",
- "interval": "",
- "legendFormat": "{{task_name}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Number of tasks running (average per node)",
- "tooltip": {
- "shared": true,
- "sort": 2,
- "value_type": "individual"
+ "overrides": []
},
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 10,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$data_source",
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 37
+ "y": 26
},
"hiddenSeries": false,
- "id": 3,
+ "id": 2,
"interval": "",
"legend": {
"alignAsTable": true,
"avg": false,
- "current": false,
+ "current": true,
"max": true,
- "min": false,
+ "min": true,
"rightSide": true,
"show": true,
"total": false,
@@ -672,21 +580,23 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null as zero",
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
- "steppedLine": true,
+ "steppedLine": false,
"targets": [
{
- "expr": "max by(task_name) (${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"} - sum(${metric_namespace}_tasks_ended_total{instance=~\"${nodename}\"}) without(reason))",
+ "expr": "${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"} - sum(${metric_namespace}_tasks_ended_total{instance=~\"${nodename}\"}) without(reason)\n\n# Fallback if tasks_ended_total is null for that task\nor on(instance, task_name) ${metric_namespace}_tasks_spawned_total{instance=~\"${nodename}\"}",
"interval": "",
"legendFormat": "{{task_name}}",
"refId": "A"
@@ -696,7 +606,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Number of tasks running (maximum over all nodes)",
+ "title": "Number of tasks running",
"tooltip": {
"shared": true,
"sort": 2,
@@ -712,14 +622,16 @@
},
"yaxes": [
{
+ "$$hashKey": "object:919",
"format": "short",
"label": null,
- "logBase": 10,
+ "logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
+ "$$hashKey": "object:920",
"format": "short",
"label": null,
"logBase": 1,
@@ -740,13 +652,20 @@
"dashes": false,
"datasource": "$data_source",
"decimals": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
- "y": 43
+ "y": 32
},
"hiddenSeries": false,
"id": 7,
@@ -768,19 +687,21 @@
"linewidth": 1,
"nullPointMode": "null as zero",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": true,
"targets": [
{
- "expr": "avg(\n irate(${metric_namespace}_tasks_polling_duration_bucket{instance=~\"${nodename}\", le=\"+Inf\"}[10m])\n - ignoring(le)\n irate(${metric_namespace}_tasks_polling_duration_bucket{instance=~\"${nodename}\", le=\"1.024\"}[10m])\n) by (task_name) > 0",
+ "expr": "irate(${metric_namespace}_tasks_polling_duration_bucket{instance=~\"${nodename}\", le=\"+Inf\"}[$__rate_interval])\n - ignoring(le)\n irate(${metric_namespace}_tasks_polling_duration_bucket{instance=~\"${nodename}\", le=\"1.024\"}[$__rate_interval]) > 0",
"interval": "",
"legendFormat": "{{task_name}}",
"refId": "A"
@@ -790,7 +711,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Calls to `Future::poll` that took more than one second (average per node)",
+ "title": "Number of calls to `Future::poll` that took more than one second",
"tooltip": {
"shared": true,
"sort": 2,
@@ -806,6 +727,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:3040",
"decimals": null,
"format": "cps",
"label": "Calls to `Future::poll`/second",
@@ -815,6 +737,7 @@
"show": true
},
{
+ "$$hashKey": "object:3041",
"format": "short",
"label": null,
"logBase": 1,
@@ -835,11 +758,11 @@
"h": 1,
"w": 24,
"x": 0,
- "y": 49
+ "y": 38
},
"id": 27,
"panels": [],
- "title": "Misc",
+ "title": "Unbounded Channels",
"type": "row"
},
{
@@ -848,13 +771,20 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
- "y": 50
+ "y": 39
},
"hiddenSeries": false,
"id": 32,
@@ -871,21 +801,23 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"send\"} - ignoring(action) ${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"received\"}) by (entity)",
+ "expr": "(\n ${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"send\"} - ignoring(action) ${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"received\"}\n)\n\n# Fallback if the `received` is null\nor on(instance) ${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"send\"}",
"interval": "",
"legendFormat": "{{entity}}",
"refId": "B"
@@ -895,7 +827,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Unbounded channels size (average per node)",
+ "title": "Unbounded channels size",
"tooltip": {
"shared": true,
"sort": 2,
@@ -911,6 +843,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:626",
"format": "short",
"label": null,
"logBase": 1,
@@ -919,6 +852,7 @@
"show": true
},
{
+ "$$hashKey": "object:627",
"format": "short",
"label": null,
"logBase": 1,
@@ -938,13 +872,20 @@
"dashLength": 10,
"dashes": false,
"datasource": "$data_source",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "links": []
+ },
+ "overrides": []
+ },
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
- "y": 57
+ "y": 46
},
"hiddenSeries": false,
"id": 33,
@@ -961,21 +902,23 @@
},
"lines": true,
"linewidth": 1,
- "nullPointMode": "null",
+ "nullPointMode": "connected",
"options": {
- "dataLinks": []
+ "alertThreshold": true
},
"percentage": false,
+ "pluginVersion": "7.3.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
+ "repeat": "nodename",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "avg(irate(${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"send\"}[10m])) by (entity)",
+ "expr": "irate(${metric_namespace}_unbounded_channel_len{instance=~\"${nodename}\", action = \"send\"}[$__rate_interval])",
"interval": "",
"legendFormat": "{{entity}}",
"refId": "B"
@@ -985,7 +928,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Unbounded channels rate (average per node)",
+ "title": "Unbounded channels message sending rate (1s)",
"tooltip": {
"shared": true,
"sort": 2,
@@ -1001,6 +944,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:626",
"format": "cps",
"label": null,
"logBase": 1,
@@ -1009,6 +953,7 @@
"show": true
},
{
+ "$$hashKey": "object:627",
"format": "short",
"label": null,
"logBase": 1,
@@ -1024,7 +969,7 @@
}
],
"refresh": false,
- "schemaVersion": 22,
+ "schemaVersion": 26,
"style": "dark",
"tags": [],
"templating": {
@@ -1034,9 +979,9 @@
"current": {},
"datasource": "$data_source",
"definition": "${metric_namespace}_process_start_time_seconds",
+ "error": null,
"hide": 0,
- "includeAll": true,
- "index": -1,
+ "includeAll": false,
"label": "Instance filter",
"multi": true,
"name": "nodename",
@@ -1055,15 +1000,18 @@
{
"current": {
"value": "${VAR_METRIC_NAMESPACE}",
- "text": "${VAR_METRIC_NAMESPACE}"
+ "text": "${VAR_METRIC_NAMESPACE}",
+ "selected": false
},
+ "error": null,
"hide": 2,
"label": "Prefix of the metrics",
"name": "metric_namespace",
"options": [
{
"value": "${VAR_METRIC_NAMESPACE}",
- "text": "${VAR_METRIC_NAMESPACE}"
+ "text": "${VAR_METRIC_NAMESPACE}",
+ "selected": false
}
],
"query": "${VAR_METRIC_NAMESPACE}",
@@ -1076,6 +1024,7 @@
"text": "prometheus.parity-mgmt",
"value": "prometheus.parity-mgmt"
},
+ "error": null,
"hide": 0,
"includeAll": false,
"label": "Source of all the data",
@@ -1108,11 +1057,8 @@
"1d"
]
},
- "timezone": "",
+ "timezone": "utc",
"title": "Substrate Service Tasks",
"uid": "3LA6XNqZz",
- "variables": {
- "list": []
- },
- "version": 52
-}
+ "version": 69
+}
\ No newline at end of file
diff --git a/.maintain/node-template-release.sh b/.maintain/node-template-release.sh
index 1a6c245320593..cb5e72e7fa98f 100755
--- a/.maintain/node-template-release.sh
+++ b/.maintain/node-template-release.sh
@@ -10,7 +10,7 @@ if [ "$#" -ne 1 ]; then
exit 1
fi
-PATH_TO_ARCHIVE=$(pwd)/$1
+PATH_TO_ARCHIVE=$1
cd $PROJECT_ROOT/.maintain/node-template-release
-cargo run $PROJECT_ROOT/bin/node-template $PATH_TO_ARCHIVE
+cargo run $PROJECT_ROOT/bin/node-template $PROJECT_ROOT/$PATH_TO_ARCHIVE
diff --git a/.maintain/node-template-release/Cargo.toml b/.maintain/node-template-release/Cargo.toml
index dd3166d58ddf4..c1d9f2da7faea 100644
--- a/.maintain/node-template-release/Cargo.toml
+++ b/.maintain/node-template-release/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "node-template-release"
-version = "2.0.0"
+version = "3.0.0"
authors = ["Parity Technologies "]
edition = "2018"
license = "GPL-3.0"
diff --git a/.maintain/node-template-release/src/main.rs b/.maintain/node-template-release/src/main.rs
index a1d85bf33fe33..7dcb1f0f4d816 100644
--- a/.maintain/node-template-release/src/main.rs
+++ b/.maintain/node-template-release/src/main.rs
@@ -1,8 +1,11 @@
use structopt::StructOpt;
use std::{
- path::{PathBuf, Path}, collections::HashMap, fs::{File, OpenOptions, self}, io::{Read, Write},
- process::Command
+ collections::HashMap,
+ fs::{self, File, OpenOptions},
+ io::{Read, Write},
+ path::{Path, PathBuf},
+ process::Command,
};
use glob;
@@ -40,11 +43,9 @@ fn find_cargo_tomls(path: PathBuf) -> Vec {
let glob = glob::glob(&path).expect("Generates globbing pattern");
let mut result = Vec::new();
- glob.into_iter().for_each(|file| {
- match file {
- Ok(file) => result.push(file),
- Err(e) => println!("{:?}", e),
- }
+ glob.into_iter().for_each(|file| match file {
+ Ok(file) => result.push(file),
+ Err(e) => println!("{:?}", e),
});
if result.is_empty() {
@@ -78,31 +79,44 @@ fn get_git_commit_id(path: &Path) -> String {
/// Parse the given `Cargo.toml` into a `HashMap`
fn parse_cargo_toml(file: &Path) -> CargoToml {
let mut content = String::new();
- File::open(file).expect("Cargo.toml exists").read_to_string(&mut content).expect("Reads file");
+ File::open(file)
+ .expect("Cargo.toml exists")
+ .read_to_string(&mut content)
+ .expect("Reads file");
toml::from_str(&content).expect("Cargo.toml is a valid toml file")
}
/// Replaces all substrate path dependencies with a git dependency.
-fn replace_path_dependencies_with_git(cargo_toml_path: &Path, commit_id: &str, cargo_toml: &mut CargoToml) {
+fn replace_path_dependencies_with_git(
+ cargo_toml_path: &Path,
+ commit_id: &str,
+ cargo_toml: &mut CargoToml,
+) {
let mut cargo_toml_path = cargo_toml_path.to_path_buf();
// remove `Cargo.toml`
cargo_toml_path.pop();
for &table in &["dependencies", "build-dependencies", "dev-dependencies"] {
- let mut dependencies: toml::value::Table = match cargo_toml
- .remove(table)
- .and_then(|v| v.try_into().ok()) {
- Some(deps) => deps,
- None => continue,
- };
+ let mut dependencies: toml::value::Table =
+ match cargo_toml.remove(table).and_then(|v| v.try_into().ok()) {
+ Some(deps) => deps,
+ None => continue,
+ };
let deps_rewritten = dependencies
.iter()
- .filter_map(|(k, v)| v.clone().try_into::().ok().map(move |v| (k, v)))
- .filter(|t| t.1.contains_key("path"))
+ .filter_map(|(k, v)| {
+ v.clone().try_into::().ok().map(move |v| (k, v))
+ })
.filter(|t| {
- // if the path does not exists, we need to add this as git dependency
- t.1.get("path").unwrap().as_str().map(|path| !cargo_toml_path.join(path).exists()).unwrap_or(false)
+ t.1.contains_key("path") && {
+ // if the path does not exists, we need to add this as git dependency
+ t.1.get("path")
+ .unwrap()
+ .as_str()
+ .map(|path| !cargo_toml_path.join(path).exists())
+ .unwrap_or(false)
+ }
})
.map(|(k, mut v)| {
// remove `path` and add `git` and `rev`
@@ -111,7 +125,8 @@ fn replace_path_dependencies_with_git(cargo_toml_path: &Path, commit_id: &str, c
v.insert("rev".into(), commit_id.into());
(k.clone(), v.into())
- }).collect::>();
+ })
+ .collect::>();
dependencies.extend(deps_rewritten.into_iter());
@@ -136,8 +151,9 @@ fn update_top_level_cargo_toml(
cargo_toml.insert("profile".into(), profile.into());
- let members = workspace_members.iter()
- .map(|p|
+ let members = workspace_members
+ .iter()
+ .map(|p| {
p.strip_prefix(node_template_path)
.expect("Workspace member is a child of the node template path!")
.parent()
@@ -146,7 +162,7 @@ fn update_top_level_cargo_toml(
.expect("The given path ends with `Cargo.toml` as file name!")
.display()
.to_string()
- )
+ })
.collect::>();
let mut members_section = toml::value::Table::new();
@@ -164,24 +180,20 @@ fn write_cargo_toml(path: &Path, cargo_toml: CargoToml) {
/// Build and test the generated node-template
fn build_and_test(path: &Path, cargo_tomls: &[PathBuf]) {
// Build node
- assert!(
- Command::new("cargo")
- .args(&["build", "--all"])
- .current_dir(path)
- .status()
- .expect("Compiles node")
- .success()
- );
+ assert!(Command::new("cargo")
+ .args(&["build", "--all"])
+ .current_dir(path)
+ .status()
+ .expect("Compiles node")
+ .success());
// Test node
- assert!(
- Command::new("cargo")
- .args(&["test", "--all"])
- .current_dir(path)
- .status()
- .expect("Tests node")
- .success()
- );
+ assert!(Command::new("cargo")
+ .args(&["test", "--all"])
+ .current_dir(path)
+ .status()
+ .expect("Tests node")
+ .success());
// Remove all `target` directories
for toml in cargo_tomls {
@@ -190,7 +202,8 @@ fn build_and_test(path: &Path, cargo_tomls: &[PathBuf]) {
target_path = target_path.join("target");
if target_path.exists() {
- fs::remove_dir_all(&target_path).expect(&format!("Removes `{}`", target_path.display()));
+ fs::remove_dir_all(&target_path)
+ .expect(&format!("Removes `{}`", target_path.display()));
}
}
}
@@ -220,7 +233,10 @@ fn main() {
// Check if top level Cargo.toml exists. If not, create one in the destination
if !cargo_tomls.contains(&top_level_cargo_toml_path) {
// create the top_level_cargo_toml
- OpenOptions::new().create(true).write(true).open(top_level_cargo_toml_path.clone())
+ OpenOptions::new()
+ .create(true)
+ .write(true)
+ .open(top_level_cargo_toml_path.clone())
.expect("Create root level `Cargo.toml` failed.");
// push into our data structure
@@ -234,9 +250,8 @@ fn main() {
// Check if this is the top level `Cargo.toml`, as this requires some special treatments.
if top_level_cargo_toml_path == *t {
// All workspace member `Cargo.toml` file paths.
- let workspace_members = cargo_tomls.iter()
- .filter(|p| **p != top_level_cargo_toml_path)
- .collect();
+ let workspace_members =
+ cargo_tomls.iter().filter(|p| **p != top_level_cargo_toml_path).collect();
update_top_level_cargo_toml(&mut cargo_toml, workspace_members, &node_template_path);
}
@@ -244,10 +259,21 @@ fn main() {
write_cargo_toml(&t, cargo_toml);
});
+ // adding root rustfmt to node template build path
+ let node_template_rustfmt_toml_path = node_template_path.join("rustfmt.toml");
+ let root_rustfmt_toml =
+ &options.node_template.join("../../rustfmt.toml");
+ if root_rustfmt_toml.exists() {
+ fs::copy(&root_rustfmt_toml, &node_template_rustfmt_toml_path)
+ .expect("Copying rustfmt.toml.");
+ }
+
build_and_test(&node_template_path, &cargo_tomls);
- let output = GzEncoder::new(File::create(&options.output)
- .expect("Creates output file"), Compression::default());
+ let output = GzEncoder::new(
+ File::create(&options.output).expect("Creates output file"),
+ Compression::default(),
+ );
let mut tar = tar::Builder::new(output);
tar.append_dir_all("substrate-node-template", node_template_path)
.expect("Writes substrate-node-template archive");
diff --git a/.maintain/update-copyright.sh b/.maintain/update-copyright.sh
index d48fc3cc979d6..d67cab7c1e152 100755
--- a/.maintain/update-copyright.sh
+++ b/.maintain/update-copyright.sh
@@ -1,15 +1,14 @@
#!/usr/bin/env bash
-SINGLE_DATES=$(grep -lr "// Copyright [0-9]* Parity Technologies (UK) Ltd.")
-RANGE_DATES=$(grep -lr "// Copyright [0-9]*-[0-9]* Parity Technologies (UK) Ltd.")
+SINGLE_DATES=$(grep -lr "// Copyright (C) [0-9]* Parity Technologies (UK) Ltd.")
YEAR=$(date +%Y)
for file in $SINGLE_DATES; do
- FILE_YEAR=$(cat $file | sed -n "s|// Copyright \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\) Parity Technologies (UK) Ltd.|\1|p")
+ FILE_YEAR=$(cat $file | sed -n "s|// Copyright (C) \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\) Parity Technologies (UK) Ltd.|\1|p")
if [ $YEAR -ne $FILE_YEAR ]; then
- sed -i -e "s|// Copyright \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\) Parity Technologies (UK) Ltd.|// Copyright \1-$YEAR Parity Technologies (UK) Ltd.|g" $file
+ sed -i -e "s|// Copyright (C) \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\) Parity Technologies (UK) Ltd.|// Copyright (C) \1-$YEAR Parity Technologies (UK) Ltd.|g" $file
fi
done
-grep -lr "// Copyright [0-9]*-[0-9]* Parity Technologies (UK) Ltd." |
- xargs sed -i -e "s|// Copyright \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\)-[[:digit:]][[:digit:]][[:digit:]][[:digit:]] Parity Technologies (UK) Ltd.|// Copyright \1-$YEAR Parity Technologies (UK) Ltd.|g"
+grep -lr "// Copyright (C) [0-9]*-[0-9]* Parity Technologies (UK) Ltd." |
+ xargs sed -i -e "s|// Copyright (C) \([[:digit:]][[:digit:]][[:digit:]][[:digit:]]\)-[[:digit:]][[:digit:]][[:digit:]][[:digit:]] Parity Technologies (UK) Ltd.|// Copyright (C) \1-$YEAR Parity Technologies (UK) Ltd.|g"
diff --git a/Cargo.lock b/Cargo.lock
index f43bc9e7ec839..0f75bc2b51626 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,5 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+version = 3
+
[[package]]
name = "Inflector"
version = "0.11.4"
@@ -12,108 +14,83 @@ dependencies = [
[[package]]
name = "addr2line"
-version = "0.13.0"
+version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
+checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a"
dependencies = [
- "gimli 0.22.0",
+ "gimli 0.24.0",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd"
+dependencies = [
+ "gimli 0.25.0",
]
[[package]]
name = "adler"
-version = "0.2.3"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "aead"
-version = "0.3.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
+checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
dependencies = [
- "generic-array 0.14.3",
+ "generic-array 0.14.4",
]
[[package]]
name = "aes"
-version = "0.4.0"
+version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7001367fde4c768a19d1029f0a8be5abd9308e1119846d5bd9ad26297b8faf5"
+checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
dependencies = [
- "aes-soft",
- "aesni",
- "block-cipher",
+ "cfg-if 1.0.0",
+ "cipher",
+ "cpufeatures 0.2.1",
+ "opaque-debug 0.3.0",
]
[[package]]
name = "aes-gcm"
-version = "0.6.0"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f5007801316299f922a6198d1d09a0bae95786815d066d5880d13f7c45ead1"
+checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
dependencies = [
"aead",
"aes",
- "block-cipher",
+ "cipher",
+ "ctr",
"ghash",
- "subtle 2.2.3",
-]
-
-[[package]]
-name = "aes-soft"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7"
-dependencies = [
- "block-cipher",
- "byteorder 1.3.4",
- "opaque-debug 0.2.3",
-]
-
-[[package]]
-name = "aesni"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d050d39b0b7688b3a3254394c3e30a9d66c41dcf9b05b0e2dbdc623f6505d264"
-dependencies = [
- "block-cipher",
- "opaque-debug 0.2.3",
+ "subtle 2.4.1",
]
[[package]]
name = "ahash"
-version = "0.2.19"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29661b60bec623f0586702976ff4d0c9942dcb6723161c2df0eea78455cfedfb"
+checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
dependencies = [
- "const-random",
+ "getrandom 0.2.3",
+ "once_cell",
+ "version_check 0.9.3",
]
-[[package]]
-name = "ahash"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
-
[[package]]
name = "aho-corasick"
-version = "0.7.13"
+version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
"memchr",
]
-[[package]]
-name = "alga"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
-dependencies = [
- "approx",
- "num-complex",
- "num-traits",
-]
-
[[package]]
name = "ansi_term"
version = "0.11.0"
@@ -134,30 +111,24 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.31"
+version = "1.0.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
+checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
[[package]]
name = "approx"
-version = "0.3.2"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
+checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e"
dependencies = [
"num-traits",
]
[[package]]
name = "arbitrary"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cb544f1057eaaff4b34f8c4dcf56fc3cd04debd291998405d135017a7c3c0f4"
-
-[[package]]
-name = "arc-swap"
-version = "0.4.7"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
+checksum = "577b08a4acd7b99869f863c50011b01eb73424ccc798ecd996f2e24817adfca7"
[[package]]
name = "arrayref"
@@ -176,35 +147,29 @@ dependencies = [
[[package]]
name = "arrayvec"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
-name = "asn1_der"
-version = "0.6.3"
+name = "arrayvec"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fce6b6a0ffdafebd82c87e79e3f40e8d2c523e5fea5566ff6b90509bf98d638"
-dependencies = [
- "asn1_der_derive",
-]
+checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd"
[[package]]
-name = "asn1_der_derive"
-version = "0.1.2"
+name = "asn1_der"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502"
-dependencies = [
- "quote",
- "syn",
-]
+checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3"
[[package]]
name = "assert_cmd"
-version = "1.0.1"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe"
dependencies = [
+ "bstr",
"doc-comment",
"predicates",
"predicates-core",
@@ -214,15 +179,25 @@ dependencies = [
[[package]]
name = "assert_matches"
-version = "1.3.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5"
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+
+[[package]]
+name = "async-attributes"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+dependencies = [
+ "quote",
+ "syn",
+]
[[package]]
name = "async-channel"
-version = "1.5.1"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9"
+checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
dependencies = [
"concurrent-queue",
"event-listener",
@@ -231,53 +206,62 @@ dependencies = [
[[package]]
name = "async-executor"
-version = "1.3.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d373d78ded7d0b3fa8039375718cde0aace493f2e34fb60f51cbf567562ca801"
+checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
dependencies = [
"async-task",
"concurrent-queue",
"fastrand",
"futures-lite",
- "once_cell 1.4.1",
- "vec-arena",
+ "once_cell",
+ "slab",
]
[[package]]
name = "async-global-executor"
-version = "1.3.0"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fefeb39da249f4c33af940b779a56723ce45809ef5c54dad84bb538d4ffb6d9e"
+checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
dependencies = [
+ "async-channel",
"async-executor",
"async-io",
+ "async-mutex",
+ "blocking",
"futures-lite",
"num_cpus",
- "once_cell 1.4.1",
+ "once_cell",
]
[[package]]
name = "async-io"
-version = "1.1.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38628c78a34f111c5a6b98fc87dfc056cd1590b61afe748b145be4623c56d194"
+checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
dependencies = [
- "cfg-if",
"concurrent-queue",
- "fastrand",
"futures-lite",
"libc",
- "log",
- "once_cell 1.4.1",
+ "log 0.4.14",
+ "once_cell",
"parking",
"polling",
- "socket2",
- "vec-arena",
+ "slab",
+ "socket2 0.4.2",
"waker-fn",
- "wepoll-sys-stjepang",
"winapi 0.3.9",
]
+[[package]]
+name = "async-lock"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b"
+dependencies = [
+ "event-listener",
+]
+
[[package]]
name = "async-mutex"
version = "1.4.0"
@@ -287,67 +271,138 @@ dependencies = [
"event-listener",
]
+[[package]]
+name = "async-process"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692"
+dependencies = [
+ "async-io",
+ "blocking",
+ "cfg-if 1.0.0",
+ "event-listener",
+ "futures-lite",
+ "libc",
+ "once_cell",
+ "signal-hook",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "async-std"
-version = "1.6.5"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9fa76751505e8df1c7a77762f60486f60c71bbd9b8557f4da6ad47d083732ed"
+checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
dependencies = [
+ "async-attributes",
+ "async-channel",
"async-global-executor",
"async-io",
- "async-mutex",
- "blocking",
- "crossbeam-utils",
+ "async-lock",
+ "async-process",
+ "crossbeam-utils 0.8.5",
"futures-channel",
"futures-core",
"futures-io",
"futures-lite",
"gloo-timers",
"kv-log-macro",
- "log",
+ "log 0.4.14",
"memchr",
"num_cpus",
- "once_cell 1.4.1",
- "pin-project-lite",
+ "once_cell",
+ "pin-project-lite 0.2.7",
"pin-utils",
"slab",
"wasm-bindgen-futures",
]
[[package]]
-name = "async-task"
-version = "4.0.2"
+name = "async-std-resolver"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ab27c1aa62945039e44edaeee1dc23c74cc0c303dd5fe0fb462a184f1c3a518"
+checksum = "ed4e2c3da14d8ad45acb1e3191db7a918e9505b6f155b218e70a7c9a1a48c638"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "futures-io",
+ "futures-util",
+ "pin-utils",
+ "trust-dns-resolver",
+]
[[package]]
-name = "async-tls"
-version = "0.8.0"
+name = "async-stream"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634"
+checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625"
dependencies = [
- "futures 0.3.5",
- "rustls",
- "webpki",
- "webpki-roots 0.19.0",
+ "async-stream-impl",
+ "futures-core",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
]
+[[package]]
+name = "async-task"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
+
[[package]]
name = "async-trait"
-version = "0.1.37"
+version = "0.1.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caae68055714ff28740f310927e04f2eba76ff580b16fb18ed90073ee71646f7"
+checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
+[[package]]
+name = "asynchronous-codec"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6"
+dependencies = [
+ "bytes 1.1.0",
+ "futures-sink",
+ "futures-util",
+ "memchr",
+ "pin-project-lite 0.2.7",
+]
+
+[[package]]
+name = "asynchronous-codec"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690"
+dependencies = [
+ "bytes 1.1.0",
+ "futures-sink",
+ "futures-util",
+ "memchr",
+ "pin-project-lite 0.2.7",
+]
+
[[package]]
name = "atomic"
-version = "0.4.6"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f46ca51dca4837f1520754d1c8c36636356b81553d928dc9c177025369a06e"
+checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281"
+dependencies = [
+ "autocfg 1.0.1",
+]
[[package]]
name = "atomic-waker"
@@ -374,24 +429,44 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
[[package]]
name = "autocfg"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backtrace"
-version = "0.3.50"
+version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
+checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01"
dependencies = [
- "addr2line",
- "cfg-if",
+ "addr2line 0.16.0",
+ "cc",
+ "cfg-if 1.0.0",
"libc",
"miniz_oxide",
- "object 0.20.0",
+ "object 0.26.2",
"rustc-demangle",
]
+[[package]]
+name = "bae"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec107f431ee3d8a8e45e6dd117adab769556ef463959e77bf6a4888d5fd500cf"
+dependencies = [
+ "heck",
+ "proc-macro-error 0.4.12",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "base-x"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
+
[[package]]
name = "base58"
version = "0.1.0"
@@ -400,9 +475,22 @@ checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83"
[[package]]
name = "base64"
-version = "0.11.0"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "base64"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+dependencies = [
+ "byteorder",
+]
[[package]]
name = "base64"
@@ -410,88 +498,88 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
+name = "beef"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "bincode"
-version = "1.3.1"
+version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
dependencies = [
- "byteorder 1.3.4",
"serde",
]
[[package]]
name = "bindgen"
-version = "0.54.0"
+version = "0.59.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36"
+checksum = "453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375"
dependencies = [
"bitflags",
"cexpr",
- "cfg-if",
"clang-sys",
- "clap",
- "env_logger",
"lazy_static",
"lazycell",
- "log",
"peeking_take_while",
"proc-macro2",
"quote",
"regex",
"rustc-hash",
"shlex",
- "which",
-]
-
-[[package]]
-name = "bip39"
-version = "0.6.0-beta.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7059804e226b3ac116519a252d7f5fb985a5ccc0e93255e036a5f7e7283323f4"
-dependencies = [
- "failure",
- "hashbrown 0.1.8",
- "hmac",
- "once_cell 0.1.8",
- "pbkdf2",
- "rand 0.6.5",
- "sha2 0.8.2",
]
[[package]]
name = "bitflags"
-version = "1.2.1"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
-name = "bitmask"
-version = "0.5.0"
+name = "bitvec"
+version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead"
+checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
+dependencies = [
+ "funty",
+ "radium 0.5.3",
+ "tap",
+ "wyz",
+]
[[package]]
name = "bitvec"
-version = "0.17.4"
+version = "0.20.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c"
+checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848"
dependencies = [
- "either",
- "radium",
+ "funty",
+ "radium 0.6.2",
+ "tap",
+ "wyz",
]
[[package]]
name = "blake2"
-version = "0.9.0"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471"
+checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174"
dependencies = [
- "byte-tools",
- "byteorder 1.3.4",
"crypto-mac 0.8.0",
"digest 0.9.0",
- "opaque-debug 0.2.3",
+ "opaque-debug 0.3.0",
]
[[package]]
@@ -506,24 +594,39 @@ dependencies = [
[[package]]
name = "blake2b_simd"
-version = "0.5.10"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"constant_time_eq",
]
[[package]]
name = "blake2s_simd"
-version = "0.5.10"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.5.2",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "blake3"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44"
+checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
+ "cc",
+ "cfg-if 0.1.10",
"constant_time_eq",
+ "crypto-mac 0.8.0",
+ "digest 0.9.0",
]
[[package]]
@@ -532,10 +635,10 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
dependencies = [
- "block-padding",
+ "block-padding 0.1.5",
"byte-tools",
- "byteorder 1.3.4",
- "generic-array 0.12.3",
+ "byteorder",
+ "generic-array 0.12.4",
]
[[package]]
@@ -544,16 +647,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
dependencies = [
- "generic-array 0.14.3",
-]
-
-[[package]]
-name = "block-cipher"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10"
-dependencies = [
- "generic-array 0.14.3",
+ "block-padding 0.2.1",
+ "generic-array 0.14.4",
]
[[package]]
@@ -565,6 +660,12 @@ dependencies = [
"byte-tools",
]
+[[package]]
+name = "block-padding"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+
[[package]]
name = "blocking"
version = "1.0.2"
@@ -576,20 +677,20 @@ dependencies = [
"atomic-waker",
"fastrand",
"futures-lite",
- "once_cell 1.4.1",
+ "once_cell",
]
[[package]]
name = "bs58"
-version = "0.3.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
+checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
[[package]]
name = "bstr"
-version = "0.2.13"
+version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
+checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
dependencies = [
"lazy_static",
"memchr",
@@ -608,15 +709,15 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.4.0"
+version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
[[package]]
name = "byte-slice-cast"
-version = "0.3.5"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3"
+checksum = "ca0796d76a983651b4a0ddda16203032759f2fd9103d9181f7c65c06ee8872e6"
[[package]]
name = "byte-tools"
@@ -626,15 +727,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
[[package]]
name = "byteorder"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
-
-[[package]]
-name = "byteorder"
-version = "1.3.4"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
@@ -642,8 +737,7 @@ version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
dependencies = [
- "byteorder 1.3.4",
- "either",
+ "byteorder",
"iovec",
]
@@ -654,10 +748,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]]
-name = "c_linked_list"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b"
+name = "bytes"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
[[package]]
name = "cache-padded"
@@ -665,41 +759,61 @@ version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
+[[package]]
+name = "camino"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "cargo_metadata"
-version = "0.10.1"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052dbdd9db69a339d5fa9ac87bfe2e1319f709119f0345988a597af82bb1011c"
+checksum = "081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8"
dependencies = [
- "semver 0.10.0",
+ "camino",
+ "cargo-platform",
+ "semver 0.11.0",
+ "semver-parser 0.10.2",
"serde",
- "serde_derive",
"serde_json",
]
[[package]]
name = "cast"
-version = "0.2.3"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0"
+checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
dependencies = [
- "rustc_version",
+ "rustc_version 0.4.0",
]
[[package]]
name = "cc"
-version = "1.0.58"
+version = "1.0.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
dependencies = [
"jobserver",
]
[[package]]
name = "cexpr"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+checksum = "db507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89"
dependencies = [
"nom",
]
@@ -710,26 +824,34 @@ version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
[[package]]
name = "chacha20"
-version = "0.4.3"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "086c0f07ac275808b7bf9a39f2fd013aae1498be83632814c8c4e0bd53f2dc58"
+checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412"
dependencies = [
- "stream-cipher 0.4.1",
+ "cfg-if 1.0.0",
+ "cipher",
+ "cpufeatures 0.1.5",
"zeroize",
]
[[package]]
name = "chacha20poly1305"
-version = "0.5.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18b0c90556d8e3fec7cf18d84a2f53d27b21288f2fe481b830fadcf809e48205"
+checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5"
dependencies = [
"aead",
"chacha20",
+ "cipher",
"poly1305",
- "stream-cipher 0.4.1",
"zeroize",
]
@@ -749,38 +871,78 @@ dependencies = [
[[package]]
name = "chrono"
-version = "0.4.13"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
- "js-sys",
+ "libc",
"num-integer",
"num-traits",
"time",
- "wasm-bindgen",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "cid"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8709d481fb78b9808f34a1b4b4fadd08a15a0971052c18bc2b751faefaed595e"
+dependencies = [
+ "multibase 0.8.0",
+ "multihash 0.11.4",
+ "unsigned-varint 0.3.3",
+]
+
+[[package]]
+name = "cid"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768"
+dependencies = [
+ "multibase 0.8.0",
+ "multihash 0.13.2",
+ "unsigned-varint 0.5.1",
+]
+
+[[package]]
+name = "cipher"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+dependencies = [
+ "generic-array 0.14.4",
+]
+
+[[package]]
+name = "ckb-merkle-mountain-range"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5b"
+dependencies = [
+ "cfg-if 0.1.10",
]
[[package]]
name = "clang-sys"
-version = "0.29.3"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
+checksum = "10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26ee"
dependencies = [
"glob",
"libc",
- "libloading",
+ "libloading 0.7.0",
]
[[package]]
name = "clap"
-version = "2.33.1"
+version = "2.33.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
dependencies = [
"ansi_term 0.11.0",
"atty",
"bitflags",
- "strsim",
+ "strsim 0.8.0",
"textwrap",
"unicode-width",
"vec_map",
@@ -795,15 +957,6 @@ dependencies = [
"bitflags",
]
-[[package]]
-name = "cloudabi"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
-dependencies = [
- "bitflags",
-]
-
[[package]]
name = "concurrent-queue"
version = "1.2.2"
@@ -814,186 +967,240 @@ dependencies = [
]
[[package]]
-name = "console_error_panic_hook"
-version = "0.1.6"
+name = "constant_time_eq"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
-dependencies = [
- "cfg-if",
- "wasm-bindgen",
-]
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
-name = "console_log"
-version = "0.1.2"
+name = "convert_case"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e7871d2947441b0fdd8e2bd1ce2a2f75304f896582c0d572162d48290683c48"
-dependencies = [
- "log",
- "web-sys",
-]
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
[[package]]
-name = "const-random"
-version = "0.1.11"
+name = "core-foundation"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02"
+checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
dependencies = [
- "const-random-macro",
- "proc-macro-hack",
+ "core-foundation-sys",
+ "libc",
]
[[package]]
-name = "const-random-macro"
-version = "0.1.11"
+name = "core-foundation-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+
+[[package]]
+name = "cpp_demangle"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685"
+checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a"
dependencies = [
- "getrandom 0.2.0",
- "proc-macro-hack",
+ "cfg-if 1.0.0",
]
[[package]]
-name = "constant_time_eq"
+name = "cpufeatures"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
+dependencies = [
+ "libc",
+]
[[package]]
-name = "core-foundation"
-version = "0.7.0"
+name = "cpufeatures"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
+checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
dependencies = [
- "core-foundation-sys",
"libc",
]
[[package]]
-name = "core-foundation-sys"
-version = "0.7.0"
+name = "cranelift-bforest"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+checksum = "9221545c0507dc08a62b2d8b5ffe8e17ac580b0a74d1813b496b8d70b070fbd0"
+dependencies = [
+ "cranelift-entity 0.68.0",
+]
[[package]]
-name = "cpuid-bool"
-version = "0.1.2"
+name = "cranelift-bforest"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
+checksum = "c8ca3560686e7c9c7ed7e0fe77469f2410ba5d7781b1acaa9adc8d8deea28e3e"
+dependencies = [
+ "cranelift-entity 0.74.0",
+]
[[package]]
-name = "cranelift-bforest"
-version = "0.66.0"
+name = "cranelift-codegen"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dcc286b052ee24a1e5a222e7c1125e6010ad35b0f248709b9b3737a8fedcfdf"
+checksum = "7e9936ea608b6cd176f107037f6adbb4deac933466fc7231154f96598b2d3ab1"
dependencies = [
- "cranelift-entity",
+ "byteorder",
+ "cranelift-bforest 0.68.0",
+ "cranelift-codegen-meta 0.68.0",
+ "cranelift-codegen-shared 0.68.0",
+ "cranelift-entity 0.68.0",
+ "gimli 0.22.0",
+ "log 0.4.14",
+ "regalloc",
+ "smallvec 1.6.1",
+ "target-lexicon 0.11.2",
+ "thiserror",
]
[[package]]
name = "cranelift-codegen"
-version = "0.66.0"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38"
+checksum = "baf9bf1ffffb6ce3d2e5ebc83549bd2436426c99b31cc550d521364cbe35d276"
dependencies = [
- "byteorder 1.3.4",
- "cranelift-bforest",
- "cranelift-codegen-meta",
- "cranelift-codegen-shared",
- "cranelift-entity",
- "gimli 0.21.0",
- "log",
+ "cranelift-bforest 0.74.0",
+ "cranelift-codegen-meta 0.74.0",
+ "cranelift-codegen-shared 0.74.0",
+ "cranelift-entity 0.74.0",
+ "gimli 0.24.0",
+ "log 0.4.14",
"regalloc",
"serde",
- "smallvec 1.4.1",
- "target-lexicon",
- "thiserror",
+ "smallvec 1.6.1",
+ "target-lexicon 0.12.2",
+]
+
+[[package]]
+name = "cranelift-codegen-meta"
+version = "0.68.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ef2b2768568306540f4c8db3acce9105534d34c4a1e440529c1e702d7f8c8d7"
+dependencies = [
+ "cranelift-codegen-shared 0.68.0",
+ "cranelift-entity 0.68.0",
]
[[package]]
name = "cranelift-codegen-meta"
-version = "0.66.0"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3f460031861e4f4ad510be62b2ae50bba6cc886b598a36f9c0a970feab9598"
+checksum = "4cc21936a5a6d07e23849ffe83e5c1f6f50305c074f4b2970ca50c13bf55b821"
dependencies = [
- "cranelift-codegen-shared",
- "cranelift-entity",
+ "cranelift-codegen-shared 0.74.0",
+ "cranelift-entity 0.74.0",
]
[[package]]
name = "cranelift-codegen-shared"
-version = "0.66.0"
+version = "0.68.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6759012d6d19c4caec95793f052613e9d4113e925e7f14154defbac0f1d4c938"
+
+[[package]]
+name = "cranelift-codegen-shared"
+version = "0.74.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca5b6ffaa87560bebe69a5446449da18090b126037920b0c1c6d5945f72faf6b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cranelift-entity"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76ad12409e922e7697cd0bdc7dc26992f64a77c31880dfe5e3c7722f4710206d"
+checksum = "86badbce14e15f52a45b666b38abe47b204969dd7f8fb7488cb55dd46b361fa6"
+dependencies = [
+ "serde",
+]
[[package]]
name = "cranelift-entity"
-version = "0.66.0"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97cdc58972ea065d107872cfb9079f4c92ade78a8af85aaff519a65b5d13f71"
+checksum = "7d6b4a8bef04f82e4296782646f733c641d09497df2fabf791323fefaa44c64c"
dependencies = [
"serde",
]
[[package]]
name = "cranelift-frontend"
-version = "0.66.0"
+version = "0.68.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b608bb7656c554d0a4cf8f50c7a10b857e80306f6ff829ad6d468a7e2323c8d8"
+dependencies = [
+ "cranelift-codegen 0.68.0",
+ "log 0.4.14",
+ "smallvec 1.6.1",
+ "target-lexicon 0.11.2",
+]
+
+[[package]]
+name = "cranelift-frontend"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6"
+checksum = "c31b783b351f966fce33e3c03498cb116d16d97a8f9978164a60920bd0d3a99c"
dependencies = [
- "cranelift-codegen",
- "log",
- "smallvec 1.4.1",
- "target-lexicon",
+ "cranelift-codegen 0.74.0",
+ "log 0.4.14",
+ "smallvec 1.6.1",
+ "target-lexicon 0.12.2",
]
[[package]]
name = "cranelift-native"
-version = "0.66.0"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e69d44d59826eef6794066ac2c0f4ad3975f02d97030c60dbc04e3886adf36e"
+checksum = "a77c88d3dd48021ff1e37e978a00098524abd3513444ae252c08d37b310b3d2a"
dependencies = [
- "cranelift-codegen",
- "raw-cpuid",
- "target-lexicon",
+ "cranelift-codegen 0.74.0",
+ "target-lexicon 0.12.2",
]
[[package]]
name = "cranelift-wasm"
-version = "0.66.0"
+version = "0.74.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "979df666b1304624abe99738e9e0e7c7479ee5523ba4b8b237df9ff49996acbb"
+checksum = "edb6d408e2da77cdbbd65466298d44c86ae71c1785d2ab0d8657753cdb4d9d89"
dependencies = [
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
- "log",
+ "cranelift-codegen 0.74.0",
+ "cranelift-entity 0.74.0",
+ "cranelift-frontend 0.74.0",
+ "itertools",
+ "log 0.4.14",
"serde",
+ "smallvec 1.6.1",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.78.2",
]
[[package]]
name = "crc32fast"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
name = "criterion"
-version = "0.3.3"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8"
+checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10"
dependencies = [
"atty",
"cast",
"clap",
"criterion-plot",
"csv",
- "itertools 0.9.0",
+ "itertools",
"lazy_static",
"num-traits",
"oorandom",
@@ -1010,59 +1217,66 @@ dependencies = [
[[package]]
name = "criterion-plot"
-version = "0.4.3"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d"
+checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57"
dependencies = [
"cast",
- "itertools 0.9.0",
+ "itertools",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.5",
]
[[package]]
name = "crossbeam-deque"
-version = "0.7.3"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [
+ "cfg-if 1.0.0",
"crossbeam-epoch",
- "crossbeam-utils",
- "maybe-uninit",
+ "crossbeam-utils 0.8.5",
]
[[package]]
name = "crossbeam-epoch"
-version = "0.8.2"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
- "autocfg 1.0.0",
- "cfg-if",
- "crossbeam-utils",
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.5",
"lazy_static",
- "maybe-uninit",
"memoffset",
- "scopeguard 1.1.0",
+ "scopeguard",
]
[[package]]
-name = "crossbeam-queue"
-version = "0.2.3"
+name = "crossbeam-utils"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
dependencies = [
- "cfg-if",
- "crossbeam-utils",
- "maybe-uninit",
+ "autocfg 1.0.1",
+ "cfg-if 0.1.10",
+ "lazy_static",
]
[[package]]
name = "crossbeam-utils"
-version = "0.7.2"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
- "autocfg 1.0.0",
- "cfg-if",
+ "cfg-if 1.0.0",
"lazy_static",
]
@@ -1078,7 +1292,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
dependencies = [
- "generic-array 0.12.3",
+ "generic-array 0.12.4",
"subtle 1.0.0",
]
@@ -1088,15 +1302,25 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
dependencies = [
- "generic-array 0.14.3",
- "subtle 2.2.3",
+ "generic-array 0.14.4",
+ "subtle 2.4.1",
+]
+
+[[package]]
+name = "crypto-mac"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
+dependencies = [
+ "generic-array 0.14.4",
+ "subtle 2.4.1",
]
[[package]]
name = "csv"
-version = "1.1.3"
+version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00affe7f6ab566df61b4be3ce8cf16bc2576bca0963ceb0955e45d514bf9a279"
+checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
dependencies = [
"bstr",
"csv-core",
@@ -1116,76 +1340,168 @@ dependencies = [
[[package]]
name = "ct-logs"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c8e13110a84b6315df212c045be706af261fd364791cad863285439ebba672e"
+checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8"
dependencies = [
"sct",
]
[[package]]
name = "ctor"
-version = "0.1.15"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39858aa5bac06462d4dd4b9164848eb81ffc4aa5c479746393598fd193afa227"
+checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
dependencies = [
"quote",
"syn",
]
+[[package]]
+name = "ctr"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+dependencies = [
+ "cipher",
+]
+
[[package]]
name = "cuckoofilter"
-version = "0.3.2"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f"
+checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18"
dependencies = [
- "byteorder 0.5.3",
- "rand 0.3.23",
+ "byteorder",
+ "fnv",
+ "rand 0.7.3",
]
[[package]]
name = "curve25519-dalek"
-version = "2.1.0"
+version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5"
+checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216"
dependencies = [
- "byteorder 1.3.4",
+ "byteorder",
"digest 0.8.1",
"rand_core 0.5.1",
- "subtle 2.2.3",
+ "subtle 2.4.1",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
+dependencies = [
+ "byteorder",
+ "digest 0.9.0",
+ "rand_core 0.5.1",
+ "subtle 2.4.1",
"zeroize",
]
+[[package]]
+name = "darling"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "data-encoding"
-version = "2.2.1"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
+
+[[package]]
+name = "data-encoding-macro"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca"
+dependencies = [
+ "data-encoding",
+ "data-encoding-macro-internal",
+]
+
+[[package]]
+name = "data-encoding-macro-internal"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69"
+checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db"
+dependencies = [
+ "data-encoding",
+ "syn",
+]
[[package]]
name = "derive_more"
-version = "0.99.9"
+version = "0.99.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76"
+checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df"
dependencies = [
+ "convert_case",
"proc-macro2",
"quote",
+ "rustc_version 0.3.3",
"syn",
]
+[[package]]
+name = "diff"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
+
[[package]]
name = "difference"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+[[package]]
+name = "difflib"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+
[[package]]
name = "digest"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
dependencies = [
- "generic-array 0.12.3",
+ "generic-array 0.12.4",
]
[[package]]
@@ -1194,27 +1510,47 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
dependencies = [
- "generic-array 0.14.3",
+ "generic-array 0.14.4",
]
[[package]]
name = "directories"
-version = "2.0.2"
+version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c"
+checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7"
dependencies = [
- "cfg-if",
"dirs-sys",
]
[[package]]
-name = "dirs-sys"
-version = "0.3.5"
+name = "directories-next"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
+checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
dependencies = [
- "libc",
- "redox_users",
+ "cfg-if 1.0.0",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
"winapi 0.3.9",
]
@@ -1230,8 +1566,8 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea"
dependencies = [
- "byteorder 1.3.4",
- "quick-error",
+ "byteorder",
+ "quick-error 1.2.3",
]
[[package]]
@@ -1240,6 +1576,12 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
[[package]]
name = "dyn-clonable"
version = "0.9.0"
@@ -1263,38 +1605,76 @@ dependencies = [
[[package]]
name = "dyn-clone"
-version = "1.0.2"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf"
+
+[[package]]
+name = "dynasm"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdc2d9a5e44da60059bd38db2d05cbb478619541b8c79890547861ec1e3194f0"
+dependencies = [
+ "bitflags",
+ "byteorder",
+ "lazy_static",
+ "proc-macro-error 1.0.4",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "dynasmrt"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82"
+checksum = "42276e3f205fe63887cca255aa9a65a63fb72764c30b9a6252a7c7e46994f689"
+dependencies = [
+ "byteorder",
+ "dynasm",
+ "memmap2",
+]
[[package]]
name = "ed25519"
-version = "1.0.1"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf038a7b6fd7ef78ad3348b63f3a17550877b0e28f8d68bcc94894d1412158bc"
+checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc"
dependencies = [
"signature",
]
[[package]]
name = "ed25519-dalek"
-version = "1.0.0-pre.4"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
- "curve25519-dalek",
+ "curve25519-dalek 3.2.0",
"ed25519",
"rand 0.7.3",
"serde",
- "sha2 0.8.2",
+ "sha2 0.9.8",
"zeroize",
]
[[package]]
name = "either"
-version = "1.6.0"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+
+[[package]]
+name = "enum-as-inner"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f"
+checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
[[package]]
name = "enumflags2"
@@ -1317,132 +1697,103 @@ dependencies = [
]
[[package]]
-name = "env_logger"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "environmental"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e"
-
-[[package]]
-name = "erased-serde"
-version = "0.3.12"
+name = "enumset"
+version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ca8b296792113e1500fd935ae487be6e00ce318952a6880555554824d6ebf38"
+checksum = "7e76129da36102af021b8e5000dab2c1c30dbef85c1e482beeff8da5dde0e0b0"
dependencies = [
- "serde",
+ "enumset_derive",
]
[[package]]
-name = "errno"
-version = "0.2.6"
+name = "enumset_derive"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01"
+checksum = "6451128aa6655d880755345d085494cf7561a6bee7c8dc821e5d77e6d267ecd4"
dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi 0.3.9",
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
-name = "errno-dragonfly"
-version = "0.1.1"
+name = "env_logger"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
dependencies = [
- "gcc",
- "libc",
+ "atty",
+ "humantime 1.3.0",
+ "log 0.4.14",
+ "regex",
+ "termcolor",
]
[[package]]
-name = "ethbloom"
-version = "0.9.2"
+name = "env_logger"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
dependencies = [
- "crunchy",
- "fixed-hash",
- "impl-rlp",
- "impl-serde",
- "tiny-keccak",
+ "log 0.4.14",
+ "regex",
]
[[package]]
-name = "ethereum-types"
-version = "0.9.2"
+name = "env_logger"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473aecff686bd8e7b9db0165cbbb53562376b39bf35b427f0c60446a9e1634b0"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
dependencies = [
- "ethbloom",
- "fixed-hash",
- "impl-rlp",
- "impl-serde",
- "primitive-types",
- "uint",
+ "atty",
+ "humantime 2.1.0",
+ "log 0.4.14",
+ "regex",
+ "termcolor",
]
[[package]]
-name = "event-listener"
-version = "2.5.1"
+name = "environmental"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
+checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797"
[[package]]
-name = "evm"
-version = "0.17.0"
+name = "erased-serde"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68224b0aa788720ef0c8a23030a4412a021ed73df069a922bee8f0db9ed617e2"
+checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa"
dependencies = [
- "evm-core",
- "evm-gasometer",
- "evm-runtime",
- "primitive-types",
- "rlp",
"serde",
- "sha3",
]
[[package]]
-name = "evm-core"
-version = "0.17.0"
+name = "errno"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a040378759577447945c89da1b07d6e33fda32a97a104afe0ec3fa1c382949d"
+checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe"
dependencies = [
- "primitive-types",
+ "errno-dragonfly",
+ "libc",
+ "winapi 0.3.9",
]
[[package]]
-name = "evm-gasometer"
-version = "0.17.0"
+name = "errno-dragonfly"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bb5bc051afad6bb0735c82b46656bbdfac41917861307a608b1404a546fec42"
+checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067"
dependencies = [
- "evm-core",
- "evm-runtime",
- "primitive-types",
+ "gcc",
+ "libc",
]
[[package]]
-name = "evm-runtime"
-version = "0.17.0"
+name = "event-listener"
+version = "2.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7410f5677a52203d3fca02b0eb8f96f9799f3a45cff82946a8ed28379e6b1b04"
-dependencies = [
- "evm-core",
- "primitive-types",
- "sha3",
-]
+checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
[[package]]
name = "exit-future"
@@ -1450,29 +1801,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
- "futures 0.3.5",
-]
-
-[[package]]
-name = "failure"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
-dependencies = [
- "backtrace",
- "failure_derive",
-]
-
-[[package]]
-name = "failure_derive"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
+ "futures 0.3.17",
]
[[package]]
@@ -1489,9 +1818,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
[[package]]
name = "fastrand"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3"
+checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
dependencies = [
"instant",
]
@@ -1507,38 +1836,51 @@ dependencies = [
[[package]]
name = "file-per-thread-logger"
-version = "0.1.3"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126"
+dependencies = [
+ "env_logger 0.7.1",
+ "log 0.4.14",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b3937f028664bd0e13df401ba49a4567ccda587420365823242977f06609ed1"
+checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98"
dependencies = [
- "env_logger",
- "log",
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.2.10",
+ "winapi 0.3.9",
]
[[package]]
name = "finality-grandpa"
-version = "0.12.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"
+checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a"
dependencies = [
"either",
- "futures 0.3.5",
- "futures-timer 2.0.2",
- "log",
+ "futures 0.3.17",
+ "futures-timer 3.0.2",
+ "log 0.4.14",
"num-traits",
"parity-scale-codec",
- "parking_lot 0.9.0",
- "rand 0.6.5",
+ "parking_lot 0.11.2",
+ "rand 0.8.4",
+ "scale-info",
]
[[package]]
name = "fixed-hash"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c"
+checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c"
dependencies = [
- "byteorder 1.3.4",
- "rand 0.7.3",
+ "byteorder",
+ "rand 0.8.4",
"rustc-hex",
"static_assertions",
]
@@ -1551,11 +1893,11 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
[[package]]
name = "flate2"
-version = "1.0.16"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e"
+checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"crc32fast",
"libc",
"libz-sys",
@@ -1568,23 +1910,50 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
[[package]]
name = "fork-tree"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"parity-scale-codec",
]
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding 2.1.0",
+]
+
[[package]]
name = "frame-benchmarking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"hex-literal",
"linregress",
+ "log 0.4.14",
"parity-scale-codec",
- "paste 0.1.18",
+ "paste 1.0.5",
+ "scale-info",
"sp-api",
"sp-io",
"sp-runtime",
@@ -1595,15 +1964,21 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "Inflector",
"chrono",
"frame-benchmarking",
+ "frame-support",
+ "handlebars",
+ "linked-hash-map",
+ "log 0.4.14",
"parity-scale-codec",
"sc-cli",
"sc-client-db",
"sc-executor",
"sc-service",
+ "serde",
"sp-core",
"sp-externalities",
"sp-keystore",
@@ -1612,19 +1987,35 @@ dependencies = [
"structopt",
]
+[[package]]
+name = "frame-election-provider-support"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "frame-executive"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"hex-literal",
"pallet-balances",
- "pallet-indices",
"pallet-transaction-payment",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
+ "sp-inherents",
"sp-io",
"sp-runtime",
"sp-std",
@@ -1634,47 +2025,51 @@ dependencies = [
[[package]]
name = "frame-metadata"
-version = "12.0.0"
+version = "14.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110"
dependencies = [
+ "cfg-if 1.0.0",
"parity-scale-codec",
+ "scale-info",
"serde",
- "sp-core",
- "sp-std",
]
[[package]]
name = "frame-support"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "bitmask",
+ "assert_matches",
+ "bitflags",
"frame-metadata",
"frame-support-procedural",
"frame-system",
"impl-trait-for-tuples",
- "log",
- "once_cell 1.4.1",
+ "log 0.4.14",
+ "once_cell",
"parity-scale-codec",
"parity-util-mem",
- "paste 0.1.18",
- "pretty_assertions",
+ "paste 1.0.5",
+ "pretty_assertions 0.6.1",
+ "scale-info",
"serde",
- "smallvec 1.4.1",
- "sp-api",
+ "smallvec 1.6.1",
"sp-arithmetic",
"sp-core",
"sp-inherents",
"sp-io",
"sp-runtime",
+ "sp-staking",
"sp-state-machine",
"sp-std",
"sp-tracing",
- "substrate-test-runtime-client",
]
[[package]]
name = "frame-support-procedural"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "Inflector",
"frame-support-procedural-tools",
"proc-macro2",
"quote",
@@ -1683,10 +2078,10 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support-procedural-tools-derive",
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"syn",
@@ -1694,7 +2089,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools-derive"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"proc-macro2",
"quote",
@@ -1703,31 +2098,45 @@ dependencies = [
[[package]]
name = "frame-support-test"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
- "frame-metadata",
"frame-support",
+ "frame-support-test-pallet",
+ "frame-system",
"parity-scale-codec",
- "pretty_assertions",
+ "pretty_assertions 0.6.1",
"rustversion",
+ "scale-info",
"serde",
+ "sp-arithmetic",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-state-machine",
"sp-std",
+ "sp-version",
"trybuild",
]
+[[package]]
+name = "frame-support-test-pallet"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+]
+
[[package]]
name = "frame-system"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"criterion",
"frame-support",
- "impl-trait-for-tuples",
+ "log 0.4.14",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
"sp-externalities",
@@ -1740,13 +2149,13 @@ dependencies = [
[[package]]
name = "frame-system-benchmarking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -1755,21 +2164,31 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
"sp-api",
]
[[package]]
-name = "fs-swap"
-version = "0.2.4"
+name = "frame-try-runtime"
+version = "0.10.0-dev"
+dependencies = [
+ "frame-support",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "fs-swap"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb"
+checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5"
dependencies = [
"lazy_static",
"libc",
- "libloading",
+ "libloading 0.5.2",
"winapi 0.3.9",
]
@@ -1785,9 +2204,9 @@ dependencies = [
[[package]]
name = "fs_extra"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
+checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
[[package]]
name = "fuchsia-cprng"
@@ -1811,17 +2230,23 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+[[package]]
+name = "funty"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
+
[[package]]
name = "futures"
-version = "0.1.29"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
+checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
dependencies = [
"futures-channel",
"futures-core",
@@ -1834,66 +2259,25 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
dependencies = [
"futures-core",
"futures-sink",
]
-[[package]]
-name = "futures-channel-preview"
-version = "0.3.0-alpha.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
-dependencies = [
- "futures-core-preview",
-]
-
[[package]]
name = "futures-core"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
-
-[[package]]
-name = "futures-core-preview"
-version = "0.3.0-alpha.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
-
-[[package]]
-name = "futures-cpupool"
-version = "0.1.8"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
-dependencies = [
- "futures 0.1.29",
- "num_cpus",
-]
-
-[[package]]
-name = "futures-diagnose"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
-dependencies = [
- "futures 0.1.29",
- "futures 0.3.5",
- "lazy_static",
- "log",
- "parking_lot 0.9.0",
- "pin-project",
- "serde",
- "serde_json",
-]
+checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
[[package]]
name = "futures-executor"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
dependencies = [
"futures-core",
"futures-task",
@@ -1903,51 +2287,60 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
[[package]]
name = "futures-lite"
-version = "1.11.1"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "381a7ad57b1bad34693f63f6f377e1abded7a9c85c9d3eb6771e11c60aaadab9"
+checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
dependencies = [
"fastrand",
"futures-core",
"futures-io",
"memchr",
"parking",
- "pin-project-lite",
+ "pin-project-lite 0.2.7",
"waker-fn",
]
[[package]]
name = "futures-macro"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
dependencies = [
+ "autocfg 1.0.1",
"proc-macro-hack",
"proc-macro2",
"quote",
"syn",
]
+[[package]]
+name = "futures-rustls"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b"
+dependencies = [
+ "futures-io",
+ "rustls",
+ "webpki",
+]
+
[[package]]
name = "futures-sink"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"
[[package]]
name = "futures-task"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
-dependencies = [
- "once_cell 1.4.1",
-]
+checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"
[[package]]
name = "futures-timer"
@@ -1960,18 +2353,15 @@ name = "futures-timer"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-dependencies = [
- "gloo-timers",
- "send_wrapper 0.4.0",
-]
[[package]]
name = "futures-util"
-version = "0.3.5"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
dependencies = [
- "futures 0.1.29",
+ "autocfg 1.0.1",
+ "futures 0.1.31",
"futures-channel",
"futures-core",
"futures-io",
@@ -1979,7 +2369,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project",
+ "pin-project-lite 0.2.7",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@@ -1987,27 +2377,12 @@ dependencies = [
]
[[package]]
-name = "futures-util-preview"
-version = "0.3.0-alpha.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d"
-dependencies = [
- "futures-channel-preview",
- "futures-core-preview",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "futures_codec"
-version = "0.4.1"
+name = "fxhash"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
dependencies = [
- "bytes 0.5.6",
- "futures 0.3.5",
- "memchr",
- "pin-project",
+ "byteorder",
]
[[package]]
@@ -2018,82 +2393,73 @@ checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
[[package]]
name = "generic-array"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
+checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
dependencies = [
"typenum",
]
[[package]]
name = "generic-array"
-version = "0.14.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63"
+checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
dependencies = [
"typenum",
- "version_check",
+ "version_check 0.9.3",
]
[[package]]
-name = "get_if_addrs"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7"
-dependencies = [
- "c_linked_list",
- "get_if_addrs-sys",
- "libc",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "get_if_addrs-sys"
-version = "0.1.1"
+name = "getrandom"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
- "gcc",
+ "cfg-if 1.0.0",
"libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]]
name = "getrandom"
-version = "0.1.14"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+ "js-sys",
"libc",
- "wasi",
+ "wasi 0.10.0+wasi-snapshot-preview1",
"wasm-bindgen",
]
[[package]]
-name = "getrandom"
-version = "0.2.0"
+name = "ghash"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4"
+checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
dependencies = [
- "cfg-if",
- "libc",
- "wasi",
+ "opaque-debug 0.3.0",
+ "polyval",
]
[[package]]
-name = "ghash"
-version = "0.3.0"
+name = "gimli"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531"
+checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
dependencies = [
- "polyval",
+ "fallible-iterator",
+ "indexmap",
+ "stable_deref_trait",
]
[[package]]
name = "gimli"
-version = "0.21.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
+checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189"
dependencies = [
"fallible-iterator",
"indexmap",
@@ -2102,9 +2468,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.22.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
+checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7"
[[package]]
name = "glob"
@@ -2114,14 +2480,14 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
[[package]]
name = "globset"
-version = "0.4.5"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120"
+checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
dependencies = [
"aho-corasick",
"bstr",
"fnv",
- "log",
+ "log 0.4.14",
"regex",
]
@@ -2139,48 +2505,25 @@ dependencies = [
]
[[package]]
-name = "h2"
-version = "0.1.26"
+name = "half"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
-dependencies = [
- "byteorder 1.3.4",
- "bytes 0.4.12",
- "fnv",
- "futures 0.1.29",
- "http 0.1.21",
- "indexmap",
- "log",
- "slab",
- "string",
- "tokio-io",
-]
+checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"
[[package]]
-name = "h2"
-version = "0.2.6"
+name = "handlebars"
+version = "3.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53"
+checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3"
dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http 0.2.1",
- "indexmap",
- "slab",
- "tokio 0.2.22",
- "tokio-util",
- "tracing",
+ "log 0.4.14",
+ "pest",
+ "pest_derive",
+ "quick-error 2.0.1",
+ "serde",
+ "serde_json",
]
-[[package]]
-name = "half"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177"
-
[[package]]
name = "hash-db"
version = "0.15.2"
@@ -2197,64 +2540,49 @@ dependencies = [
]
[[package]]
-name = "hashbrown"
-version = "0.1.8"
+name = "hash_hasher"
+version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da"
-dependencies = [
- "byteorder 1.3.4",
- "scopeguard 0.3.3",
-]
+checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c"
[[package]]
name = "hashbrown"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead"
-dependencies = [
- "ahash 0.2.19",
- "autocfg 0.1.7",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.8.1"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [
- "ahash 0.3.8",
- "autocfg 1.0.0",
+ "ahash",
]
[[package]]
name = "heck"
-version = "0.3.1"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "hermit-abi"
-version = "0.1.15"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hex"
-version = "0.4.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hex-literal"
-version = "0.3.1"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8"
+checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b"
[[package]]
name = "hex_fmt"
@@ -2272,6 +2600,26 @@ dependencies = [
"digest 0.8.1",
]
+[[package]]
+name = "hmac"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
+dependencies = [
+ "crypto-mac 0.8.0",
+ "digest 0.9.0",
+]
+
+[[package]]
+name = "hmac"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
+dependencies = [
+ "crypto-mac 0.11.1",
+ "digest 0.9.0",
+]
+
[[package]]
name = "hmac-drbg"
version = "0.2.0"
@@ -2279,15 +2627,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b"
dependencies = [
"digest 0.8.1",
- "generic-array 0.12.3",
- "hmac",
+ "generic-array 0.12.4",
+ "hmac 0.7.1",
+]
+
+[[package]]
+name = "hmac-drbg"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
+dependencies = [
+ "digest 0.9.0",
+ "generic-array 0.14.4",
+ "hmac 0.8.1",
]
[[package]]
name = "honggfuzz"
-version = "0.5.49"
+version = "0.5.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "832bac18a82ec7d6c21887daa8616b238fe90d5d5e762d0d4b9372cdaa9e097f"
+checksum = "bea09577d948a98a5f59b7c891e274c4fb35ad52f67782b3d0cb53b9c05301f1"
dependencies = [
"arbitrary",
"lazy_static",
@@ -2295,54 +2654,49 @@ dependencies = [
]
[[package]]
-name = "http"
-version = "0.1.21"
+name = "hostname"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
dependencies = [
- "bytes 0.4.12",
- "fnv",
- "itoa",
+ "libc",
+ "match_cfg",
+ "winapi 0.3.9",
]
[[package]]
name = "http"
-version = "0.2.1"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
+checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"fnv",
"itoa",
]
[[package]]
name = "http-body"
-version = "0.1.0"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
+checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "http 0.1.21",
- "tokio-buf",
+ "bytes 1.1.0",
+ "http",
+ "pin-project-lite 0.2.7",
]
[[package]]
-name = "http-body"
-version = "0.3.1"
+name = "httparse"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
-dependencies = [
- "bytes 0.5.6",
- "http 0.2.1",
-]
+checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
[[package]]
-name = "httparse"
-version = "1.3.4"
+name = "httpdate"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
[[package]]
name = "humantime"
@@ -2350,81 +2704,93 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
dependencies = [
- "quick-error",
+ "quick-error 1.2.3",
]
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
[[package]]
name = "hyper"
-version = "0.12.35"
+version = "0.10.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
+checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "futures-cpupool",
- "h2 0.1.26",
- "http 0.1.21",
- "http-body 0.1.0",
+ "base64 0.9.3",
"httparse",
- "iovec",
- "itoa",
- "log",
- "net2",
- "rustc_version",
+ "language-tags",
+ "log 0.3.9",
+ "mime",
+ "num_cpus",
"time",
- "tokio 0.1.22",
- "tokio-buf",
- "tokio-executor 0.1.10",
- "tokio-io",
- "tokio-reactor",
- "tokio-tcp",
- "tokio-threadpool",
- "tokio-timer",
- "want 0.2.0",
+ "traitobject",
+ "typeable",
+ "unicase 1.4.2",
+ "url 1.7.2",
]
[[package]]
name = "hyper"
-version = "0.13.7"
+version = "0.14.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb"
+checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"futures-channel",
"futures-core",
"futures-util",
- "h2 0.2.6",
- "http 0.2.1",
- "http-body 0.3.1",
+ "http",
+ "http-body",
"httparse",
+ "httpdate",
"itoa",
- "pin-project",
- "socket2",
- "time",
- "tokio 0.2.22",
+ "pin-project-lite 0.2.7",
+ "socket2 0.4.2",
+ "tokio",
"tower-service",
"tracing",
- "want 0.3.0",
+ "want",
]
[[package]]
name = "hyper-rustls"
-version = "0.21.0"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6"
+checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
dependencies = [
- "bytes 0.5.6",
"ct-logs",
"futures-util",
- "hyper 0.13.7",
- "log",
+ "hyper 0.14.13",
+ "log 0.4.14",
"rustls",
"rustls-native-certs",
- "tokio 0.2.22",
+ "tokio",
"tokio-rustls",
"webpki",
]
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes 1.1.0",
+ "hyper 0.14.13",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
[[package]]
name = "idna"
version = "0.1.5"
@@ -2438,9 +2804,9 @@ dependencies = [
[[package]]
name = "idna"
-version = "0.2.0"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
dependencies = [
"matches",
"unicode-bidi",
@@ -2448,21 +2814,49 @@ dependencies = [
]
[[package]]
-name = "impl-codec"
-version = "0.4.2"
+name = "if-addrs"
+version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53"
+checksum = "c9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8"
dependencies = [
- "parity-scale-codec",
+ "if-addrs-sys",
+ "libc",
+ "winapi 0.3.9",
]
[[package]]
-name = "impl-rlp"
-version = "0.2.1"
+name = "if-addrs-sys"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "if-watch"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f7a72f11830b52333f36e3b09a288333888bf54380fd0ac0790a3c31ab0f3c5"
+checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179"
dependencies = [
- "rlp",
+ "async-io",
+ "futures 0.3.17",
+ "futures-lite",
+ "if-addrs",
+ "ipnet",
+ "libc",
+ "log 0.4.14",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "impl-codec"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443"
+dependencies = [
+ "parity-scale-codec",
]
[[package]]
@@ -2476,9 +2870,9 @@ dependencies = [
[[package]]
name = "impl-trait-for-tuples"
-version = "0.1.3"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d"
+checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee"
dependencies = [
"proc-macro2",
"quote",
@@ -2487,26 +2881,32 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.5.0"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7"
+checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
dependencies = [
- "autocfg 1.0.0",
- "hashbrown 0.8.1",
+ "autocfg 1.0.1",
+ "hashbrown",
"serde",
]
[[package]]
name = "instant"
-version = "0.1.6"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485"
+checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
+dependencies = [
+ "cfg-if 1.0.0",
+]
[[package]]
name = "integer-sqrt"
-version = "0.1.3"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f65877bf7d44897a473350b1046277941cee20b263397e90869c50b6e766088b"
+checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770"
+dependencies = [
+ "num-traits",
+]
[[package]]
name = "intervalier"
@@ -2514,7 +2914,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 2.0.2",
]
@@ -2529,83 +2929,161 @@ dependencies = [
[[package]]
name = "ip_network"
-version = "0.3.4"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f"
+checksum = "09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303"
[[package]]
-name = "ipnet"
-version = "2.3.0"
+name = "ipconfig"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
+checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
+dependencies = [
+ "socket2 0.3.19",
+ "widestring",
+ "winapi 0.3.9",
+ "winreg",
+]
[[package]]
-name = "itertools"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
+name = "ipfs"
+version = "0.2.1"
+source = "git+https://github.com/rs-ipfs/rust-ipfs#111f116e366e8f3f9b409d1c92be6ac51f7009f4"
+dependencies = [
+ "anyhow",
+ "async-stream",
+ "async-trait",
+ "base64 0.13.0",
+ "byteorder",
+ "bytes 1.1.0",
+ "cid 0.5.1",
+ "either",
+ "fs2",
+ "futures 0.3.17",
+ "hash_hasher",
+ "ipfs-bitswap",
+ "ipfs-unixfs",
+ "libp2p",
+ "multibase 0.9.1",
+ "multihash 0.11.4",
+ "once_cell",
+ "prost",
+ "prost-build",
+ "serde",
+ "serde_json",
+ "sled",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+ "tracing-futures",
+ "trust-dns-resolver",
+ "void",
+]
+
+[[package]]
+name = "ipfs-bitswap"
+version = "0.1.0"
+source = "git+https://github.com/rs-ipfs/rust-ipfs#111f116e366e8f3f9b409d1c92be6ac51f7009f4"
+dependencies = [
+ "cid 0.5.1",
+ "fnv",
+ "futures 0.3.17",
+ "hash_hasher",
+ "libp2p-core",
+ "libp2p-swarm",
+ "multihash 0.11.4",
+ "prost",
+ "prost-build",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "unsigned-varint 0.3.3",
+]
+
+[[package]]
+name = "ipfs-unixfs"
+version = "0.2.0"
+source = "git+https://github.com/rs-ipfs/rust-ipfs#111f116e366e8f3f9b409d1c92be6ac51f7009f4"
dependencies = [
+ "cid 0.5.1",
"either",
+ "filetime",
+ "multihash 0.11.4",
+ "quick-protobuf",
+ "sha2 0.9.8",
]
+[[package]]
+name = "ipnet"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
+
[[package]]
name = "itertools"
-version = "0.9.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
"either",
]
[[package]]
name = "itoa"
-version = "0.4.6"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "jobserver"
-version = "0.1.21"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
+checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
dependencies = [
"libc",
]
[[package]]
name = "js-sys"
-version = "0.3.39"
+version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7"
+checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "jsonrpc-client-transports"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6f7b1cdf66312002e15682a24430728bd13036c641163c016bc53fb686a7c2d"
+checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a"
dependencies = [
- "failure",
- "futures 0.1.29",
- "hyper 0.12.35",
+ "derive_more",
+ "futures 0.3.17",
+ "hyper 0.14.13",
+ "hyper-tls",
"jsonrpc-core",
"jsonrpc-pubsub",
- "log",
+ "log 0.4.14",
"serde",
"serde_json",
+ "tokio",
"url 1.7.2",
+ "websocket",
]
[[package]]
name = "jsonrpc-core"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b12567a31d48588a65b6cf870081e6ba1d7b2ae353977cb9820d512e69c70"
+checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb"
dependencies = [
- "futures 0.1.29",
- "log",
+ "futures 0.3.17",
+ "futures-executor",
+ "futures-util",
+ "log 0.4.14",
"serde",
"serde_derive",
"serde_json",
@@ -2613,20 +3091,21 @@ dependencies = [
[[package]]
name = "jsonrpc-core-client"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d175ca0cf77439b5495612bf216c650807d252d665b4b70ab2eebd895a88fac1"
+checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0"
dependencies = [
+ "futures 0.3.17",
"jsonrpc-client-transports",
]
[[package]]
name = "jsonrpc-derive"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2cc6ea7f785232d9ca8786a44e9fa698f92149dcdc1acc4aa1fc69c4993d79e"
+checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 0.1.5",
"proc-macro2",
"quote",
"syn",
@@ -2634,74 +3113,137 @@ dependencies = [
[[package]]
name = "jsonrpc-http-server"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9996b26c0c7a59626d0ed6c5ec8bf06218e62ce1474bd2849f9b9fd38a0158c0"
+checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff"
dependencies = [
- "hyper 0.12.35",
+ "futures 0.3.17",
+ "hyper 0.14.13",
"jsonrpc-core",
"jsonrpc-server-utils",
- "log",
+ "log 0.4.14",
"net2",
- "parking_lot 0.10.2",
- "unicase",
+ "parking_lot 0.11.2",
+ "unicase 2.6.0",
]
[[package]]
name = "jsonrpc-ipc-server"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e8f2278fb2b277175b6e21b23e7ecf30e78daff5ee301d0a2a411d9a821a0a"
+checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845"
dependencies = [
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-server-utils",
- "log",
+ "log 0.4.14",
"parity-tokio-ipc",
- "parking_lot 0.10.2",
- "tokio-service",
+ "parking_lot 0.11.2",
+ "tower-service",
]
[[package]]
name = "jsonrpc-pubsub"
-version = "15.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f389c5cd1f3db258a99296892c21047e21ae73ff4c0e2d39650ea86fe994b4c7"
+checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011"
dependencies = [
+ "futures 0.3.17",
"jsonrpc-core",
- "log",
- "parking_lot 0.10.2",
+ "lazy_static",
+ "log 0.4.14",
+ "parking_lot 0.11.2",
"rand 0.7.3",
"serde",
]
[[package]]
-name = "jsonrpc-server-utils"
-version = "15.0.0"
+name = "jsonrpc-server-utils"
+version = "18.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4"
+dependencies = [
+ "bytes 1.1.0",
+ "futures 0.3.17",
+ "globset",
+ "jsonrpc-core",
+ "lazy_static",
+ "log 0.4.14",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "unicase 2.6.0",
+]
+
+[[package]]
+name = "jsonrpc-ws-server"
+version = "18.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946"
+dependencies = [
+ "futures 0.3.17",
+ "jsonrpc-core",
+ "jsonrpc-server-utils",
+ "log 0.4.14",
+ "parity-ws",
+ "parking_lot 0.11.2",
+ "slab",
+]
+
+[[package]]
+name = "jsonrpsee-proc-macros"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f37924e16300e249a52a22cabb5632f846dc9760b39355f5e8bc70cd23dc6300"
+dependencies = [
+ "Inflector",
+ "bae",
+ "proc-macro-crate 1.1.0",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "jsonrpsee-types"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c623e1895d0d9110cb0ea7736cfff13191ff52335ad33b21bd5c775ea98b27af"
+checksum = "d67724d368c59e08b557a516cf8fcc51100e7a708850f502e1044b151fe89788"
dependencies = [
- "bytes 0.4.12",
- "globset",
- "jsonrpc-core",
- "lazy_static",
- "log",
- "tokio 0.1.22",
- "tokio-codec",
- "unicase",
+ "async-trait",
+ "beef",
+ "futures-channel",
+ "futures-util",
+ "hyper 0.14.13",
+ "log 0.4.14",
+ "serde",
+ "serde_json",
+ "soketto 0.6.0",
+ "thiserror",
]
[[package]]
-name = "jsonrpc-ws-server"
-version = "15.0.0"
+name = "jsonrpsee-ws-client"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436a92034d0137ab3e3c64a7a6350b428f31cb4d7d1a89f284bcdbcd98a7bc56"
+checksum = "8e2834b6e7f57ce9a4412ed4d6dc95125d2c8612e68f86b9d9a07369164e4198"
dependencies = [
- "jsonrpc-core",
- "jsonrpc-server-utils",
- "log",
- "parity-ws",
- "parking_lot 0.10.2",
- "slab",
+ "async-trait",
+ "fnv",
+ "futures 0.3.17",
+ "jsonrpsee-types",
+ "log 0.4.14",
+ "pin-project 1.0.8",
+ "rustls",
+ "rustls-native-certs",
+ "serde",
+ "serde_json",
+ "soketto 0.6.0",
+ "thiserror",
+ "tokio",
+ "tokio-rustls",
+ "tokio-util",
+ "url 2.2.2",
]
[[package]]
@@ -2737,64 +3279,53 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
dependencies = [
- "log",
+ "log 0.4.14",
]
[[package]]
name = "kvdb"
-version = "0.7.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a"
+checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512"
dependencies = [
"parity-util-mem",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
]
[[package]]
name = "kvdb-memorydb"
-version = "0.7.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73de822b260a3bdfb889dbbb65bb2d473eee2253973d6fa4a5d149a2a4a7c66e"
+checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5"
dependencies = [
"kvdb",
"parity-util-mem",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
]
[[package]]
name = "kvdb-rocksdb"
-version = "0.9.1"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44947dd392f09475af614d740fe0320b66d01cb5b977f664bbbb5e45a70ea4c1"
+checksum = "9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35a"
dependencies = [
"fs-swap",
"kvdb",
- "log",
+ "log 0.4.14",
"num_cpus",
"owning_ref",
"parity-util-mem",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"regex",
"rocksdb",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
]
[[package]]
-name = "kvdb-web"
-version = "0.7.0"
+name = "language-tags"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2701a1369d6ea4f1b9f606db46e5e2a4a8e47f22530a07823d653f85ab1f6c34"
-dependencies = [
- "futures 0.3.5",
- "js-sys",
- "kvdb",
- "kvdb-memorydb",
- "log",
- "parity-util-mem",
- "send_wrapper 0.3.0",
- "wasm-bindgen",
- "web-sys",
-]
+checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
[[package]]
name = "lazy_static"
@@ -2804,9 +3335,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "lazycell"
-version = "1.2.1"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "leb128"
@@ -2816,9 +3347,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
[[package]]
name = "libc"
-version = "0.2.79"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743"
+checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103"
[[package]]
name = "libloading"
@@ -2830,6 +3361,26 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "libloading"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "libm"
version = "0.2.1"
@@ -2838,16 +3389,15 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
[[package]]
name = "libp2p"
-version = "0.28.1"
+version = "0.39.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "571f5a4604c1a40d75651da141dfde29ad15329f537a779528803297d2220274"
+checksum = "9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433"
dependencies = [
"atomic",
- "bytes 0.5.6",
- "futures 0.3.5",
+ "bytes 1.1.0",
+ "futures 0.3.17",
"lazy_static",
"libp2p-core",
- "libp2p-core-derive",
"libp2p-deflate",
"libp2p-dns",
"libp2p-floodsub",
@@ -2860,227 +3410,222 @@ dependencies = [
"libp2p-ping",
"libp2p-plaintext",
"libp2p-pnet",
+ "libp2p-relay",
"libp2p-request-response",
"libp2p-swarm",
+ "libp2p-swarm-derive",
"libp2p-tcp",
"libp2p-uds",
"libp2p-wasm-ext",
"libp2p-websocket",
"libp2p-yamux",
- "multihash",
- "parity-multiaddr",
- "parking_lot 0.10.2",
- "pin-project",
- "smallvec 1.4.1",
+ "multiaddr",
+ "parking_lot 0.11.2",
+ "pin-project 1.0.8",
+ "smallvec 1.6.1",
"wasm-timer",
]
[[package]]
name = "libp2p-core"
-version = "0.22.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52f13ba8c7df0768af2eb391696d562c7de88cc3a35122531aaa6a7d77754d25"
+checksum = "af9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59"
dependencies = [
"asn1_der",
"bs58",
"ed25519-dalek",
"either",
"fnv",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
"lazy_static",
- "libsecp256k1",
- "log",
- "multihash",
+ "libsecp256k1 0.5.0",
+ "log 0.4.14",
+ "multiaddr",
+ "multihash 0.14.0",
"multistream-select",
- "parity-multiaddr",
- "parking_lot 0.10.2",
- "pin-project",
+ "parking_lot 0.11.2",
+ "pin-project 1.0.8",
"prost",
"prost-build",
"rand 0.7.3",
"ring",
"rw-stream-sink",
- "sha2 0.8.2",
- "smallvec 1.4.1",
+ "sha2 0.9.8",
+ "smallvec 1.6.1",
"thiserror",
- "unsigned-varint 0.4.0",
+ "unsigned-varint 0.7.0",
"void",
"zeroize",
]
-[[package]]
-name = "libp2p-core-derive"
-version = "0.20.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213"
-dependencies = [
- "quote",
- "syn",
-]
-
[[package]]
name = "libp2p-deflate"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74029ae187f35f4b8ddf26b9779a68b340045d708528a103917cdca49a296db5"
+checksum = "66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8"
dependencies = [
"flate2",
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
]
[[package]]
name = "libp2p-dns"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cf319822e08dd65c8e060d2354e9f952895bbc433f5706c75ed010c152aee5e"
+checksum = "58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32"
dependencies = [
- "futures 0.3.5",
+ "async-std-resolver",
+ "futures 0.3.17",
"libp2p-core",
- "log",
+ "log 0.4.14",
+ "smallvec 1.6.1",
+ "trust-dns-resolver",
]
[[package]]
name = "libp2p-floodsub"
-version = "0.22.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8a9acb43a3e4a4e413e0c4abe0fa49308df7c6335c88534757b647199cb8a51"
+checksum = "404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214f"
dependencies = [
"cuckoofilter",
"fnv",
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
"libp2p-swarm",
+ "log 0.4.14",
"prost",
"prost-build",
"rand 0.7.3",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
]
[[package]]
name = "libp2p-gossipsub"
-version = "0.22.0"
+version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab20fcb60edebe3173bbb708c6ac3444afdf1e3152dc2866b10c4f5497f17467"
+checksum = "b1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058e"
dependencies = [
- "base64 0.11.0",
- "byteorder 1.3.4",
- "bytes 0.5.6",
+ "asynchronous-codec 0.6.0",
+ "base64 0.13.0",
+ "byteorder",
+ "bytes 1.1.0",
"fnv",
- "futures 0.3.5",
- "futures_codec",
+ "futures 0.3.17",
"hex_fmt",
"libp2p-core",
"libp2p-swarm",
- "log",
- "lru_time_cache",
+ "log 0.4.14",
"prost",
"prost-build",
"rand 0.7.3",
- "sha2 0.8.2",
- "smallvec 1.4.1",
- "unsigned-varint 0.4.0",
+ "regex",
+ "sha2 0.9.8",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
"wasm-timer",
]
[[package]]
name = "libp2p-identify"
-version = "0.22.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56396ee63aa9164eacf40c2c5d2bda8c4133c2f57e1b0425d51d3a4e362583b1"
+checksum = "a7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008e"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
"libp2p-swarm",
- "log",
+ "log 0.4.14",
"prost",
"prost-build",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
"wasm-timer",
]
[[package]]
name = "libp2p-kad"
-version = "0.23.0"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7fa9047f8b8f544278a35c2d9d45d3b2c1785f2d86d4e1629d6edf97be3955"
+checksum = "50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75e"
dependencies = [
- "arrayvec 0.5.1",
- "bytes 0.5.6",
+ "arrayvec 0.5.2",
+ "asynchronous-codec 0.6.0",
+ "bytes 1.1.0",
"either",
"fnv",
- "futures 0.3.5",
- "futures_codec",
+ "futures 0.3.17",
"libp2p-core",
"libp2p-swarm",
- "log",
- "multihash",
+ "log 0.4.14",
"prost",
"prost-build",
"rand 0.7.3",
- "sha2 0.8.2",
- "smallvec 1.4.1",
+ "sha2 0.9.8",
+ "smallvec 1.6.1",
"uint",
- "unsigned-varint 0.4.0",
+ "unsigned-varint 0.7.0",
"void",
"wasm-timer",
]
[[package]]
name = "libp2p-mdns"
-version = "0.22.0"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3173b5a6b2f690c29ae07798d85b9441a131ac76ddae9015ef22905b623d0c69"
+checksum = "a29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33"
dependencies = [
- "async-std",
+ "async-io",
"data-encoding",
"dns-parser",
- "either",
- "futures 0.3.5",
+ "futures 0.3.17",
+ "if-watch",
"lazy_static",
"libp2p-core",
"libp2p-swarm",
- "log",
- "net2",
- "rand 0.7.3",
- "smallvec 1.4.1",
+ "log 0.4.14",
+ "rand 0.8.4",
+ "smallvec 1.6.1",
+ "socket2 0.4.2",
"void",
- "wasm-timer",
]
[[package]]
name = "libp2p-mplex"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a73a799cc8410b36e40b8f4c4b6babbcb9efd3727111bf517876e4acfa612d3"
+checksum = "313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99"
dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures 0.3.5",
- "futures_codec",
+ "asynchronous-codec 0.6.0",
+ "bytes 1.1.0",
+ "futures 0.3.17",
"libp2p-core",
- "log",
- "parking_lot 0.10.2",
- "unsigned-varint 0.4.0",
+ "log 0.4.14",
+ "nohash-hasher",
+ "parking_lot 0.11.2",
+ "rand 0.7.3",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
]
[[package]]
name = "libp2p-noise"
-version = "0.24.0"
+version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ef6c490042f549fb1025f2892dfe6083d97a77558f450c1feebe748ca9eb15a"
+checksum = "3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523e"
dependencies = [
- "bytes 0.5.6",
- "curve25519-dalek",
- "futures 0.3.5",
+ "bytes 1.1.0",
+ "curve25519-dalek 3.2.0",
+ "futures 0.3.17",
"lazy_static",
"libp2p-core",
- "log",
+ "log 0.4.14",
"prost",
"prost-build",
- "rand 0.7.3",
- "sha2 0.8.2",
+ "rand 0.8.4",
+ "sha2 0.9.8",
"snow",
"static_assertions",
"x25519-dalek",
@@ -3089,14 +3634,14 @@ dependencies = [
[[package]]
name = "libp2p-ping"
-version = "0.22.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad063c21dfcea4518ac9e8bd4119d33a5b26c41e674f602f41f05617a368a5c8"
+checksum = "2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
"libp2p-swarm",
- "log",
+ "log 0.4.14",
"rand 0.7.3",
"void",
"wasm-timer",
@@ -3104,107 +3649,142 @@ dependencies = [
[[package]]
name = "libp2p-plaintext"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "903a12e99c72dbebefea258de887982adeacc7025baa1ceb10b7fa9928f54791"
+checksum = "13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4"
dependencies = [
- "bytes 0.5.6",
- "futures 0.3.5",
- "futures_codec",
+ "asynchronous-codec 0.6.0",
+ "bytes 1.1.0",
+ "futures 0.3.17",
"libp2p-core",
- "log",
+ "log 0.4.14",
"prost",
"prost-build",
- "rw-stream-sink",
- "unsigned-varint 0.4.0",
+ "unsigned-varint 0.7.0",
"void",
]
[[package]]
name = "libp2p-pnet"
-version = "0.19.1"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37d0db10e139d22d7af0b23ed7949449ec86262798aa0fd01595abdbcb02dc87"
+checksum = "07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974"
dependencies = [
- "futures 0.3.5",
- "log",
- "pin-project",
+ "futures 0.3.17",
+ "log 0.4.14",
+ "pin-project 1.0.8",
"rand 0.7.3",
"salsa20",
"sha3",
]
[[package]]
-name = "libp2p-request-response"
+name = "libp2p-relay"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c0c9e8a4cd69d97e9646c54313d007512f411aba8c5226cfcda16df6a6e84a3"
+checksum = "0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aa"
+dependencies = [
+ "asynchronous-codec 0.6.0",
+ "bytes 1.1.0",
+ "futures 0.3.17",
+ "futures-timer 3.0.2",
+ "libp2p-core",
+ "libp2p-swarm",
+ "log 0.4.14",
+ "pin-project 1.0.8",
+ "prost",
+ "prost-build",
+ "rand 0.7.3",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
+ "void",
+ "wasm-timer",
+]
+
+[[package]]
+name = "libp2p-request-response"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241"
dependencies = [
"async-trait",
- "bytes 0.5.6",
- "futures 0.3.5",
+ "bytes 1.1.0",
+ "futures 0.3.17",
"libp2p-core",
"libp2p-swarm",
- "log",
- "lru 0.6.0",
+ "log 0.4.14",
+ "lru",
"minicbor",
"rand 0.7.3",
- "smallvec 1.4.1",
- "unsigned-varint 0.5.1",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
"wasm-timer",
]
[[package]]
name = "libp2p-swarm"
-version = "0.22.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7193e444210132237b81b755ec7fe53f1c4bd2f53cf719729b94c0c72eb6eaa1"
+checksum = "7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9"
dependencies = [
"either",
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
- "log",
+ "log 0.4.14",
"rand 0.7.3",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
"void",
"wasm-timer",
]
+[[package]]
+name = "libp2p-swarm-derive"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79c"
+dependencies = [
+ "quote",
+ "syn",
+]
+
[[package]]
name = "libp2p-tcp"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44f42ec130d7a37a7e47bf4398026b7ad9185c08ed26972e2720f8b94112796f"
+checksum = "79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28"
dependencies = [
- "async-std",
- "futures 0.3.5",
+ "async-io",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "get_if_addrs",
+ "if-addrs",
+ "if-watch",
"ipnet",
+ "libc",
"libp2p-core",
- "log",
- "socket2",
+ "log 0.4.14",
+ "socket2 0.4.2",
+ "tokio",
]
[[package]]
name = "libp2p-uds"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dea7acb0a034f70d7db94c300eba3f65c0f6298820105624088a9609c9974d77"
+checksum = "280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182"
dependencies = [
"async-std",
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
- "log",
+ "log 0.4.14",
]
[[package]]
name = "libp2p-wasm-ext"
-version = "0.22.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34c1faac6f92c21fbe155417957863ea822fba9e9fd5eb24c0912336a100e63f"
+checksum = "f553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"js-sys",
"libp2p-core",
"parity-send-wrapper",
@@ -3214,42 +3794,40 @@ dependencies = [
[[package]]
name = "libp2p-websocket"
-version = "0.23.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d650534ebd99f48f6fa292ed5db10d30df2444943afde4407ceeddab8e513fca"
+checksum = "ddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27"
dependencies = [
- "async-tls",
"either",
- "futures 0.3.5",
+ "futures 0.3.17",
+ "futures-rustls",
"libp2p-core",
- "log",
+ "log 0.4.14",
"quicksink",
- "rustls",
"rw-stream-sink",
- "soketto",
- "url 2.1.1",
- "webpki",
- "webpki-roots 0.18.0",
+ "soketto 0.4.2",
+ "url 2.2.2",
+ "webpki-roots",
]
[[package]]
name = "libp2p-yamux"
-version = "0.25.0"
+version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "781d9b9f043dcdabc40640807125368596b849fd4d96cdca2dcf052fdf6f33fd"
+checksum = "214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bf"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p-core",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.2",
"thiserror",
"yamux",
]
[[package]]
name = "librocksdb-sys"
-version = "6.11.4"
+version = "6.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb5b56f651c204634b936be2f92dbb42c36867e00ff7fe2405591f3b9fa66f09"
+checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d"
dependencies = [
"bindgen",
"cc",
@@ -3266,30 +3844,96 @@ dependencies = [
"arrayref",
"crunchy",
"digest 0.8.1",
- "hmac-drbg",
+ "hmac-drbg 0.2.0",
"rand 0.7.3",
"sha2 0.8.2",
- "subtle 2.2.3",
+ "subtle 2.4.1",
+ "typenum",
+]
+
+[[package]]
+name = "libsecp256k1"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7"
+dependencies = [
+ "arrayref",
+ "base64 0.12.3",
+ "digest 0.9.0",
+ "hmac-drbg 0.3.0",
+ "libsecp256k1-core",
+ "libsecp256k1-gen-ecmult",
+ "libsecp256k1-gen-genmult",
+ "rand 0.7.3",
+ "serde",
+ "sha2 0.9.8",
+ "typenum",
+]
+
+[[package]]
+name = "libsecp256k1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73"
+dependencies = [
+ "arrayref",
+ "base64 0.12.3",
+ "digest 0.9.0",
+ "hmac-drbg 0.3.0",
+ "libsecp256k1-core",
+ "libsecp256k1-gen-ecmult",
+ "libsecp256k1-gen-genmult",
+ "rand 0.7.3",
+ "serde",
+ "sha2 0.9.8",
"typenum",
]
+[[package]]
+name = "libsecp256k1-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80"
+dependencies = [
+ "crunchy",
+ "digest 0.9.0",
+ "subtle 2.4.1",
+]
+
+[[package]]
+name = "libsecp256k1-gen-ecmult"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3"
+dependencies = [
+ "libsecp256k1-core",
+]
+
+[[package]]
+name = "libsecp256k1-gen-genmult"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d"
+dependencies = [
+ "libsecp256k1-core",
+]
+
[[package]]
name = "libz-sys"
-version = "1.0.25"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
dependencies = [
"cc",
- "libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "linked-hash-map"
-version = "0.5.3"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
+checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
[[package]]
name = "linked_hash_set"
@@ -3302,20 +3946,19 @@ dependencies = [
[[package]]
name = "linregress"
-version = "0.1.7"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9290cf6f928576eeb9c096c6fad9d8d452a0a1a70a2bbffa6e36064eedc0aac9"
+checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8"
dependencies = [
- "failure",
"nalgebra",
"statrs",
]
[[package]]
name = "lite-json"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c73e713a23ac6e12074c9e96ef2dfb770921e0cb9244c093bd38424209e0e523"
+checksum = "0460d985423a026b4d9b828a7c6eed1bcf606f476322f3f9b507529686a61715"
dependencies = [
"lite-parser",
]
@@ -3331,72 +3974,78 @@ dependencies = [
[[package]]
name = "lock_api"
-version = "0.1.5"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
dependencies = [
- "scopeguard 0.3.3",
+ "scopeguard",
]
[[package]]
name = "lock_api"
-version = "0.3.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
dependencies = [
- "scopeguard 1.1.0",
+ "scopeguard",
]
[[package]]
-name = "lock_api"
-version = "0.4.1"
+name = "log"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
dependencies = [
- "scopeguard 1.1.0",
+ "log 0.4.14",
]
[[package]]
name = "log"
-version = "0.4.11"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+ "value-bag",
]
[[package]]
name = "lru"
-version = "0.4.3"
+version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237"
+checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91"
dependencies = [
- "hashbrown 0.6.3",
+ "hashbrown",
]
[[package]]
-name = "lru"
-version = "0.5.3"
+name = "lru-cache"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35c456c123957de3a220cd03786e0d86aa542a88b46029973b542f426da6ef34"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
dependencies = [
- "hashbrown 0.6.3",
+ "linked-hash-map",
]
[[package]]
-name = "lru"
-version = "0.6.0"
+name = "lz4"
+version = "1.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "111b945ac72ec09eb7bc62a0fbdc3cc6e80555a7245f52a69d3921a75b53b153"
+checksum = "aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c"
dependencies = [
- "hashbrown 0.8.1",
+ "libc",
+ "lz4-sys",
]
[[package]]
-name = "lru_time_cache"
-version = "0.10.0"
+name = "lz4-sys"
+version = "1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adb241df5c4caeb888755363fc95f8a896618dc0d435e9e775f7930cb099beab"
+checksum = "dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae"
+dependencies = [
+ "cc",
+ "libc",
+]
[[package]]
name = "mach"
@@ -3407,6 +4056,18 @@ dependencies = [
"libc",
]
+[[package]]
+name = "maplit"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
[[package]]
name = "matchers"
version = "0.0.1"
@@ -3418,15 +4079,15 @@ dependencies = [
[[package]]
name = "matches"
-version = "0.1.8"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
[[package]]
name = "matrixmultiply"
-version = "0.2.3"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
+checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741"
dependencies = [
"rawpointer",
]
@@ -3439,9 +4100,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
name = "memchr"
-version = "2.3.3"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]]
name = "memmap"
@@ -3453,23 +4114,32 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "memmap2"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "memoffset"
-version = "0.5.5"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
]
[[package]]
name = "memory-db"
-version = "0.24.1"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a"
+checksum = "de006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5"
dependencies = [
"hash-db",
- "hashbrown 0.8.1",
+ "hashbrown",
"parity-util-mem",
]
@@ -3481,30 +4151,39 @@ checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882"
[[package]]
name = "merlin"
-version = "2.0.0"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
+dependencies = [
+ "byteorder",
+ "keccak",
+ "rand_core 0.5.1",
+ "zeroize",
+]
+
+[[package]]
+name = "mime"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78"
+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
dependencies = [
- "byteorder 1.3.4",
- "keccak",
- "rand_core 0.5.1",
- "zeroize",
+ "log 0.3.9",
]
[[package]]
name = "minicbor"
-version = "0.5.1"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc03ad6f8f548db7194a5ff5a6f96342ecae4e3ef67d2bf18bacc0e245cd041"
+checksum = "51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0d"
dependencies = [
"minicbor-derive",
]
[[package]]
name = "minicbor-derive"
-version = "0.4.1"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c214bf3d90099b52f3e4b328ae0fe34837fd0fab683ad1e10fceb4629106df48"
+checksum = "54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788"
dependencies = [
"proc-macro2",
"quote",
@@ -3513,72 +4192,63 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.4.0"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
"adler",
+ "autocfg 1.0.1",
]
[[package]]
name = "mio"
-version = "0.6.22"
+version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"fuchsia-zircon",
"fuchsia-zircon-sys",
"iovec",
"kernel32-sys",
"libc",
- "log",
- "miow 0.2.1",
+ "log 0.4.14",
+ "miow 0.2.2",
"net2",
"slab",
"winapi 0.2.8",
]
[[package]]
-name = "mio-extras"
-version = "2.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
-dependencies = [
- "lazycell",
- "log",
- "mio",
- "slab",
-]
-
-[[package]]
-name = "mio-named-pipes"
-version = "0.1.7"
+name = "mio"
+version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
+checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
dependencies = [
- "log",
- "mio",
- "miow 0.3.5",
+ "libc",
+ "log 0.4.14",
+ "miow 0.3.7",
+ "ntapi",
"winapi 0.3.9",
]
[[package]]
-name = "mio-uds"
-version = "0.6.8"
+name = "mio-extras"
+version = "2.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
dependencies = [
- "iovec",
- "libc",
- "mio",
+ "lazycell",
+ "log 0.4.14",
+ "mio 0.6.23",
+ "slab",
]
[[package]]
name = "miow"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
dependencies = [
"kernel32-sys",
"net2",
@@ -3588,11 +4258,10 @@ dependencies = [
[[package]]
name = "miow"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
dependencies = [
- "socket2",
"winapi 0.3.9",
]
@@ -3602,104 +4271,217 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238"
+[[package]]
+name = "multiaddr"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499"
+dependencies = [
+ "arrayref",
+ "bs58",
+ "byteorder",
+ "data-encoding",
+ "multihash 0.14.0",
+ "percent-encoding 2.1.0",
+ "serde",
+ "static_assertions",
+ "unsigned-varint 0.7.0",
+ "url 2.2.2",
+]
+
+[[package]]
+name = "multibase"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2"
+dependencies = [
+ "base-x",
+ "data-encoding",
+ "data-encoding-macro",
+]
+
+[[package]]
+name = "multibase"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404"
+dependencies = [
+ "base-x",
+ "data-encoding",
+ "data-encoding-macro",
+]
+
[[package]]
name = "multihash"
-version = "0.11.2"
+version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f75db05d738947aa5389863aadafbcf2e509d7ba099dc2ddcdf4fc66bf7a9e03"
+checksum = "567122ab6492f49b59def14ecc36e13e64dca4188196dd0cd41f9f3f979f3df6"
dependencies = [
"blake2b_simd",
"blake2s_simd",
- "digest 0.8.1",
- "sha-1",
- "sha2 0.8.2",
+ "digest 0.9.0",
+ "sha-1 0.9.8",
+ "sha2 0.9.8",
"sha3",
- "unsigned-varint 0.3.3",
+ "unsigned-varint 0.5.1",
+]
+
+[[package]]
+name = "multihash"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab"
+dependencies = [
+ "blake2b_simd",
+ "blake2s_simd",
+ "blake3",
+ "digest 0.9.0",
+ "generic-array 0.14.4",
+ "multihash-derive",
+ "sha2 0.9.8",
+ "sha3",
+ "unsigned-varint 0.5.1",
+]
+
+[[package]]
+name = "multihash"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8"
+dependencies = [
+ "digest 0.9.0",
+ "generic-array 0.14.4",
+ "multihash-derive",
+ "sha2 0.9.8",
+ "unsigned-varint 0.7.0",
+]
+
+[[package]]
+name = "multihash-derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99"
+dependencies = [
+ "proc-macro-crate 1.1.0",
+ "proc-macro-error 1.0.4",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "synstructure",
]
[[package]]
name = "multimap"
-version = "0.8.1"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce"
+checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
name = "multistream-select"
-version = "0.8.2"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5"
+checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8"
dependencies = [
- "bytes 0.5.6",
- "futures 0.3.5",
- "log",
- "pin-project",
- "smallvec 1.4.1",
- "unsigned-varint 0.4.0",
+ "bytes 1.1.0",
+ "futures 0.3.17",
+ "log 0.4.14",
+ "pin-project 1.0.8",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
]
[[package]]
name = "nalgebra"
-version = "0.18.1"
+version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"
+checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120"
dependencies = [
- "alga",
"approx",
- "generic-array 0.12.3",
"matrixmultiply",
+ "nalgebra-macros",
"num-complex",
- "num-rational",
+ "num-rational 0.4.0",
"num-traits",
- "rand 0.6.5",
+ "rand 0.8.4",
+ "rand_distr",
+ "simba",
"typenum",
]
+[[package]]
+name = "nalgebra-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "names"
-version = "0.11.0"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775"
+dependencies = [
+ "rand 0.8.4",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da"
+checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
dependencies = [
- "rand 0.3.23",
+ "lazy_static",
+ "libc",
+ "log 0.4.14",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
]
[[package]]
name = "net2"
-version = "0.2.34"
+version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
+checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"libc",
"winapi 0.3.9",
]
[[package]]
name = "nix"
-version = "0.17.0"
+version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
+checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2"
dependencies = [
"bitflags",
"cc",
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
- "void",
]
[[package]]
name = "node-bench"
-version = "0.8.0"
+version = "0.9.0-dev"
dependencies = [
"derive_more",
"fs_extra",
- "futures 0.3.5",
+ "futures 0.3.17",
"hash-db",
"hex",
"kvdb",
"kvdb-rocksdb",
"lazy_static",
- "log",
+ "log 0.4.14",
"node-primitives",
"node-runtime",
"node-testing",
@@ -3707,9 +4489,9 @@ dependencies = [
"parity-util-mem",
"rand 0.7.3",
"sc-basic-authorship",
- "sc-cli",
"sc-client-api",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
"serde",
"serde_json",
"sp-consensus",
@@ -3719,57 +4501,32 @@ dependencies = [
"sp-state-machine",
"sp-timestamp",
"sp-tracing",
- "sp-transaction-pool",
"sp-trie",
"structopt",
"tempfile",
]
-[[package]]
-name = "node-browser-testing"
-version = "2.0.0"
-dependencies = [
- "futures 0.3.5",
- "futures-timer 3.0.2",
- "jsonrpc-core",
- "libp2p",
- "node-cli",
- "sc-rpc-api",
- "serde",
- "serde_json",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-bindgen-test",
-]
-
[[package]]
name = "node-cli"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
"assert_cmd",
+ "async-std",
"frame-benchmarking-cli",
- "frame-support",
"frame-system",
- "futures 0.3.5",
+ "futures 0.3.17",
"hex-literal",
- "log",
+ "ipfs",
+ "log 0.4.14",
"nix",
"node-executor",
"node-inspect",
"node-primitives",
"node-rpc",
"node-runtime",
- "pallet-authority-discovery",
- "pallet-balances",
- "pallet-contracts",
- "pallet-grandpa",
"pallet-im-online",
- "pallet-indices",
- "pallet-staking",
- "pallet-timestamp",
"pallet-transaction-payment",
"parity-scale-codec",
- "parking_lot 0.10.2",
"platforms",
"rand 0.7.3",
"regex",
@@ -3782,85 +4539,84 @@ dependencies = [
"sc-consensus",
"sc-consensus-babe",
"sc-consensus-epochs",
+ "sc-consensus-slots",
+ "sc-consensus-uncles",
+ "sc-executor",
"sc-finality-grandpa",
"sc-keystore",
"sc-network",
- "sc-offchain",
"sc-rpc",
"sc-service",
"sc-service-test",
+ "sc-sync-state-rpc",
"sc-telemetry",
- "sc-tracing",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
"serde",
"serde_json",
+ "soketto 0.4.2",
"sp-authority-discovery",
+ "sp-authorship",
"sp-consensus",
"sp-consensus-babe",
"sp-core",
"sp-finality-grandpa",
"sp-inherents",
- "sp-io",
"sp-keyring",
"sp-keystore",
"sp-runtime",
"sp-timestamp",
+ "sp-tracing",
"sp-transaction-pool",
+ "sp-transaction-storage-proof",
"sp-trie",
"structopt",
- "substrate-browser-utils",
"substrate-build-script-utils",
"substrate-frame-cli",
"tempfile",
- "tracing",
- "wasm-bindgen",
- "wasm-bindgen-futures",
+ "try-runtime-cli",
]
[[package]]
name = "node-executor"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
"criterion",
"frame-benchmarking",
"frame-support",
"frame-system",
+ "futures 0.3.17",
"node-primitives",
"node-runtime",
"node-testing",
"pallet-balances",
"pallet-contracts",
- "pallet-grandpa",
"pallet-im-online",
- "pallet-indices",
- "pallet-session",
"pallet-timestamp",
- "pallet-transaction-payment",
"pallet-treasury",
"parity-scale-codec",
"sc-executor",
+ "scale-info",
"sp-application-crypto",
+ "sp-consensus-babe",
"sp-core",
"sp-externalities",
- "sp-io",
"sp-keystore",
"sp-runtime",
"sp-state-machine",
"sp-trie",
- "substrate-test-client",
- "trie-root",
"wat",
]
[[package]]
name = "node-inspect"
-version = "0.8.0"
+version = "0.9.0-dev"
dependencies = [
"derive_more",
- "log",
"parity-scale-codec",
"sc-cli",
"sc-client-api",
+ "sc-executor",
"sc-service",
"sp-blockchain",
"sp-core",
@@ -3874,21 +4630,20 @@ version = "2.0.0"
dependencies = [
"frame-system",
"parity-scale-codec",
- "pretty_assertions",
+ "scale-info",
"sp-application-crypto",
"sp-core",
"sp-runtime",
- "sp-serializer",
]
[[package]]
name = "node-rpc"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
"jsonrpc-core",
"node-primitives",
- "node-runtime",
"pallet-contracts-rpc",
+ "pallet-mmr-rpc",
"pallet-transaction-payment-rpc",
"sc-chain-spec",
"sc-client-api",
@@ -3897,10 +4652,10 @@ dependencies = [
"sc-consensus-epochs",
"sc-finality-grandpa",
"sc-finality-grandpa-rpc",
- "sc-keystore",
"sc-rpc",
"sc-rpc-api",
"sc-sync-state-rpc",
+ "sc-transaction-pool-api",
"sp-api",
"sp-block-builder",
"sp-blockchain",
@@ -3908,7 +4663,6 @@ dependencies = [
"sp-consensus-babe",
"sp-keystore",
"sp-runtime",
- "sp-transaction-pool",
"substrate-frame-rpc-system",
]
@@ -3916,10 +4670,8 @@ dependencies = [
name = "node-rpc-client"
version = "2.0.0"
dependencies = [
- "futures 0.1.29",
- "hyper 0.12.35",
+ "futures 0.3.17",
"jsonrpc-core-client",
- "log",
"node-primitives",
"sc-rpc",
"sp-tracing",
@@ -3927,32 +4679,40 @@ dependencies = [
[[package]]
name = "node-runtime"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-executive",
"frame-support",
"frame-system",
"frame-system-benchmarking",
"frame-system-rpc-runtime-api",
+ "frame-try-runtime",
"hex-literal",
- "integer-sqrt",
+ "log 0.4.14",
"node-primitives",
+ "pallet-assets",
"pallet-authority-discovery",
"pallet-authorship",
"pallet-babe",
"pallet-balances",
+ "pallet-bounties",
"pallet-collective",
"pallet-contracts",
"pallet-contracts-primitives",
"pallet-contracts-rpc-runtime-api",
"pallet-democracy",
+ "pallet-election-provider-multi-phase",
"pallet-elections-phragmen",
+ "pallet-gilt",
"pallet-grandpa",
"pallet-identity",
"pallet-im-online",
"pallet-indices",
+ "pallet-lottery",
"pallet-membership",
+ "pallet-mmr",
"pallet-multisig",
"pallet-offences",
"pallet-offences-benchmarking",
@@ -3967,13 +4727,16 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-sudo",
"pallet-timestamp",
+ "pallet-tips",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
+ "pallet-transaction-storage",
"pallet-treasury",
+ "pallet-uniques",
"pallet-utility",
"pallet-vesting",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-api",
"sp-authority-discovery",
"sp-block-builder",
@@ -3982,6 +4745,7 @@ dependencies = [
"sp-inherents",
"sp-io",
"sp-keyring",
+ "sp-npos-elections",
"sp-offchain",
"sp-runtime",
"sp-session",
@@ -3990,15 +4754,16 @@ dependencies = [
"sp-transaction-pool",
"sp-version",
"static_assertions",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
]
[[package]]
name = "node-template"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"frame-benchmarking",
"frame-benchmarking-cli",
+ "ipfs",
"jsonrpc-core",
"node-template-runtime",
"pallet-transaction-payment-rpc",
@@ -4009,10 +4774,13 @@ dependencies = [
"sc-consensus-aura",
"sc-executor",
"sc-finality-grandpa",
+ "sc-keystore",
"sc-rpc",
"sc-rpc-api",
"sc-service",
+ "sc-telemetry",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
"sp-api",
"sp-block-builder",
"sp-blockchain",
@@ -4020,9 +4788,8 @@ dependencies = [
"sp-consensus-aura",
"sp-core",
"sp-finality-grandpa",
- "sp-inherents",
"sp-runtime",
- "sp-transaction-pool",
+ "sp-timestamp",
"structopt",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
@@ -4030,7 +4797,7 @@ dependencies = [
[[package]]
name = "node-template-runtime"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"frame-benchmarking",
"frame-executive",
@@ -4049,7 +4816,7 @@ dependencies = [
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-api",
"sp-block-builder",
"sp-consensus-aura",
@@ -4061,37 +4828,26 @@ dependencies = [
"sp-std",
"sp-transaction-pool",
"sp-version",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
]
[[package]]
name = "node-testing"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
- "criterion",
- "frame-support",
"frame-system",
"fs_extra",
- "futures 0.3.5",
- "log",
+ "futures 0.3.17",
+ "log 0.4.14",
"node-executor",
"node-primitives",
"node-runtime",
- "pallet-balances",
- "pallet-contracts",
- "pallet-grandpa",
- "pallet-indices",
- "pallet-session",
- "pallet-society",
- "pallet-staking",
- "pallet-timestamp",
"pallet-transaction-payment",
- "pallet-treasury",
"parity-scale-codec",
"sc-block-builder",
- "sc-cli",
"sc-client-api",
"sc-client-db",
+ "sc-consensus",
"sc-executor",
"sc-service",
"sp-api",
@@ -4122,12 +4878,23 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
[[package]]
name = "nom"
-version = "5.1.2"
+version = "6.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
dependencies = [
+ "bitvec 0.19.5",
+ "funty",
"memchr",
- "version_check",
+ "version_check 0.9.3",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
+dependencies = [
+ "winapi 0.3.9",
]
[[package]]
@@ -4136,28 +4903,27 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
"num-integer",
"num-traits",
]
[[package]]
name = "num-complex"
-version = "0.2.4"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
dependencies = [
- "autocfg 1.0.0",
"num-traits",
]
[[package]]
name = "num-integer"
-version = "0.1.43"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
"num-traits",
]
@@ -4167,19 +4933,30 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
"num-bigint",
"num-integer",
"num-traits",
]
+[[package]]
+name = "num-rational"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
+dependencies = [
+ "autocfg 1.0.1",
+ "num-integer",
+ "num-traits",
+]
+
[[package]]
name = "num-traits"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
"libm",
]
@@ -4195,44 +4972,47 @@ dependencies = [
[[package]]
name = "object"
-version = "0.19.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
+checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
+dependencies = [
+ "crc32fast",
+ "indexmap",
+]
[[package]]
name = "object"
-version = "0.20.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
+checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170"
dependencies = [
"crc32fast",
"indexmap",
- "wasmparser 0.57.0",
]
[[package]]
-name = "once_cell"
-version = "0.1.8"
+name = "object"
+version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37"
+checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2"
dependencies = [
- "parking_lot 0.7.1",
+ "memchr",
]
[[package]]
name = "once_cell"
-version = "1.4.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
+checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
dependencies = [
- "parking_lot 0.11.0",
+ "parking_lot 0.11.2",
]
[[package]]
name = "oorandom"
-version = "11.1.2"
+version = "11.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c"
+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
[[package]]
name = "opaque-debug"
@@ -4246,11 +5026,38 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+[[package]]
+name = "openssl"
+version = "0.10.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
+dependencies = [
+ "bitflags",
+ "cfg-if 1.0.0",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-sys",
+]
+
[[package]]
name = "openssl-probe"
-version = "0.1.2"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82"
+dependencies = [
+ "autocfg 1.0.1",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
[[package]]
name = "output_vt100"
@@ -4272,12 +5079,14 @@ dependencies = [
[[package]]
name = "pallet-assets"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
+ "pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4286,13 +5095,13 @@ dependencies = [
[[package]]
name = "pallet-atomic-swap"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4301,55 +5110,49 @@ dependencies = [
[[package]]
name = "pallet-aura"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
- "lazy_static",
- "pallet-session",
"pallet-timestamp",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "serde",
+ "scale-info",
"sp-application-crypto",
"sp-consensus-aura",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-timestamp",
]
[[package]]
name = "pallet-authority-discovery"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"pallet-session",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-application-crypto",
"sp-authority-discovery",
"sp-core",
"sp-io",
"sp-runtime",
- "sp-staking",
"sp-std",
]
[[package]]
name = "pallet-authorship"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"impl-trait-for-tuples",
"parity-scale-codec",
+ "scale-info",
"sp-authorship",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-std",
@@ -4357,11 +5160,13 @@ dependencies = [
[[package]]
name = "pallet-babe"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-authorship",
"pallet-balances",
"pallet-offences",
@@ -4370,30 +5175,29 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-application-crypto",
"sp-consensus-babe",
"sp-consensus-vrf",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-session",
"sp-staking",
"sp-std",
- "sp-timestamp",
]
[[package]]
name = "pallet-balances"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-transaction-payment",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4401,16 +5205,32 @@ dependencies = [
]
[[package]]
-name = "pallet-collective"
-version = "2.0.0"
+name = "pallet-bounties"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
"pallet-balances",
+ "pallet-treasury",
"parity-scale-codec",
- "serde",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-collective"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4419,7 +5239,7 @@ dependencies = [
[[package]]
name = "pallet-contracts"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"assert_matches",
"bitflags",
@@ -4427,16 +5247,22 @@ dependencies = [
"frame-support",
"frame-system",
"hex-literal",
+ "libsecp256k1 0.3.5",
+ "log 0.4.14",
"pallet-balances",
"pallet-contracts-primitives",
+ "pallet-contracts-proc-macro",
"pallet-randomness-collective-flip",
"pallet-timestamp",
+ "pallet-utility",
"parity-scale-codec",
- "parity-wasm 0.41.0",
- "paste 1.0.0",
- "pretty_assertions",
+ "pretty_assertions 0.7.2",
"pwasm-utils",
+ "rand 0.7.3",
+ "rand_pcg 0.2.1",
+ "scale-info",
"serde",
+ "smallvec 1.6.1",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4448,16 +5274,29 @@ dependencies = [
[[package]]
name = "pallet-contracts-primitives"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "bitflags",
"parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
"sp-runtime",
"sp-std",
]
+[[package]]
+name = "pallet-contracts-proc-macro"
+version = "4.0.0-dev"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "pallet-contracts-rpc"
-version = "0.8.0"
+version = "4.0.0-dev"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
@@ -4476,10 +5315,11 @@ dependencies = [
[[package]]
name = "pallet-contracts-rpc-runtime-api"
-version = "0.8.0"
+version = "4.0.0-dev"
dependencies = [
"pallet-contracts-primitives",
"parity-scale-codec",
+ "scale-info",
"sp-api",
"sp-runtime",
"sp-std",
@@ -4487,91 +5327,93 @@ dependencies = [
[[package]]
name = "pallet-democracy"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
"pallet-balances",
"pallet-scheduler",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-storage",
- "substrate-test-utils",
]
[[package]]
-name = "pallet-elections"
-version = "2.0.0"
+name = "pallet-election-provider-multi-phase"
+version = "4.0.0-dev"
dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
- "hex-literal",
+ "log 0.4.14",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "parking_lot 0.11.2",
+ "rand 0.7.3",
+ "scale-info",
+ "sp-arithmetic",
"sp-core",
"sp-io",
+ "sp-npos-elections",
"sp-runtime",
"sp-std",
+ "sp-tracing",
+ "static_assertions",
+ "strum 0.21.0",
+ "strum_macros 0.21.1",
]
[[package]]
-name = "pallet-elections-phragmen"
-version = "2.0.0"
+name = "pallet-elections"
+version = "4.0.0-dev"
dependencies = [
- "frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
- "sp-npos-elections",
"sp-runtime",
"sp-std",
- "substrate-test-utils",
]
[[package]]
-name = "pallet-evm"
-version = "2.0.0"
+name = "pallet-elections-phragmen"
+version = "5.0.0-dev"
dependencies = [
- "evm",
+ "frame-benchmarking",
"frame-support",
"frame-system",
- "impl-trait-for-tuples",
+ "log 0.4.14",
"pallet-balances",
- "pallet-timestamp",
"parity-scale-codec",
- "primitive-types",
- "ripemd160",
- "rlp",
- "serde",
- "sha3",
+ "scale-info",
"sp-core",
"sp-io",
+ "sp-npos-elections",
"sp-runtime",
"sp-std",
+ "substrate-test-utils",
]
[[package]]
name = "pallet-example"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4580,13 +5422,14 @@ dependencies = [
[[package]]
name = "pallet-example-offchain-worker"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"lite-json",
+ "log 0.4.14",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-keystore",
@@ -4596,11 +5439,12 @@ dependencies = [
[[package]]
name = "pallet-example-parallel"
-version = "2.0.0"
+version = "3.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4608,14 +5452,33 @@ dependencies = [
"sp-tasks",
]
+[[package]]
+name = "pallet-gilt"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "pallet-grandpa"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"finality-grandpa",
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-authorship",
"pallet-balances",
"pallet-offences",
@@ -4624,7 +5487,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-application-crypto",
"sp-core",
"sp-finality-grandpa",
@@ -4638,7 +5501,7 @@ dependencies = [
[[package]]
name = "pallet-identity"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -4646,7 +5509,7 @@ dependencies = [
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4655,15 +5518,16 @@ dependencies = [
[[package]]
name = "pallet-im-online"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-authorship",
"pallet-session",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-application-crypto",
"sp-core",
"sp-io",
@@ -4674,14 +5538,14 @@ dependencies = [
[[package]]
name = "pallet-indices"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-keyring",
@@ -4689,30 +5553,101 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-lottery"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-support-test",
+ "frame-system",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "pallet-membership"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"parity-scale-codec",
- "serde",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-mmr"
+version = "4.0.0-dev"
+dependencies = [
+ "ckb-merkle-mountain-range",
+ "env_logger 0.9.0",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "pallet-mmr-primitives",
+ "parity-scale-codec",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std",
]
+[[package]]
+name = "pallet-mmr-primitives"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-mmr-rpc"
+version = "3.0.0"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "pallet-mmr-primitives",
+ "parity-scale-codec",
+ "serde",
+ "serde_json",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-runtime",
+]
+
[[package]]
name = "pallet-multisig"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4721,13 +5656,13 @@ dependencies = [
[[package]]
name = "pallet-nicks"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4736,12 +5671,13 @@ dependencies = [
[[package]]
name = "pallet-node-authorization"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
+ "log 0.4.14",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4750,12 +5686,14 @@ dependencies = [
[[package]]
name = "pallet-offences"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-balances",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
"sp-io",
@@ -4766,9 +5704,10 @@ dependencies = [
[[package]]
name = "pallet-offences-benchmarking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
"pallet-babe",
@@ -4781,7 +5720,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4791,7 +5730,7 @@ dependencies = [
[[package]]
name = "pallet-proxy"
-version = "2.0.1"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -4799,7 +5738,7 @@ dependencies = [
"pallet-balances",
"pallet-utility",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4808,12 +5747,13 @@ dependencies = [
[[package]]
name = "pallet-randomness-collective-flip"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
"safe-mix",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4822,14 +5762,13 @@ dependencies = [
[[package]]
name = "pallet-recovery"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "enumflags2",
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4838,13 +5777,14 @@ dependencies = [
[[package]]
name = "pallet-scheduler"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4854,13 +5794,13 @@ dependencies = [
[[package]]
name = "pallet-scored-pool"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4869,16 +5809,15 @@ dependencies = [
[[package]]
name = "pallet-session"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"impl-trait-for-tuples",
- "lazy_static",
+ "log 0.4.14",
"pallet-timestamp",
"parity-scale-codec",
- "serde",
- "sp-application-crypto",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4890,9 +5829,10 @@ dependencies = [
[[package]]
name = "pallet-session-benchmarking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
"pallet-balances",
@@ -4902,7 +5842,7 @@ dependencies = [
"pallet-timestamp",
"parity-scale-codec",
"rand 0.7.3",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4912,14 +5852,15 @@ dependencies = [
[[package]]
name = "pallet-society"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
+ "frame-support-test",
"frame-system",
"pallet-balances",
"parity-scale-codec",
"rand_chacha 0.2.2",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4928,74 +5869,59 @@ dependencies = [
[[package]]
name = "pallet-staking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
+ "frame-election-provider-support",
"frame-support",
"frame-system",
- "hex",
+ "log 0.4.14",
"pallet-authorship",
"pallet-balances",
"pallet-session",
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "parking_lot 0.10.2",
"rand_chacha 0.2.2",
+ "scale-info",
"serde",
"sp-application-crypto",
"sp-core",
"sp-io",
- "sp-npos-elections",
"sp-runtime",
"sp-staking",
"sp-std",
- "sp-storage",
"sp-tracing",
- "static_assertions",
"substrate-test-utils",
]
-[[package]]
-name = "pallet-staking-fuzz"
-version = "0.0.0"
-dependencies = [
- "frame-support",
- "frame-system",
- "honggfuzz",
- "pallet-balances",
- "pallet-indices",
- "pallet-session",
- "pallet-staking",
- "pallet-staking-reward-curve",
- "pallet-timestamp",
- "parity-scale-codec",
- "sp-core",
- "sp-io",
- "sp-npos-elections",
- "sp-runtime",
- "sp-std",
-]
-
[[package]]
name = "pallet-staking-reward-curve"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"sp-runtime",
"syn",
]
+[[package]]
+name = "pallet-staking-reward-fn"
+version = "4.0.0-dev"
+dependencies = [
+ "log 0.4.14",
+ "sp-arithmetic",
+]
+
[[package]]
name = "pallet-sudo"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -5004,11 +5930,13 @@ dependencies = [
[[package]]
name = "pallet-template"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
"parity-scale-codec",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -5016,50 +5944,69 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "impl-trait-for-tuples",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-timestamp",
+]
+
+[[package]]
+name = "pallet-tips"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log 0.4.14",
+ "pallet-balances",
+ "pallet-treasury",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-timestamp",
+ "sp-storage",
]
[[package]]
name = "pallet-transaction-payment"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-support",
"frame-system",
"pallet-balances",
- "pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
+ "scale-info",
"serde",
- "smallvec 1.4.1",
+ "serde_json",
+ "smallvec 1.6.1",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-storage",
]
[[package]]
name = "pallet-transaction-payment-rpc"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
- "serde",
"sp-api",
"sp-blockchain",
"sp-core",
@@ -5069,44 +6016,78 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
-version = "2.0.0"
+version = "4.0.0-dev"
+dependencies = [
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-transaction-storage"
+version = "4.0.0-dev"
dependencies = [
+ "frame-benchmarking",
"frame-support",
+ "frame-system",
+ "hex-literal",
+ "pallet-balances",
"parity-scale-codec",
+ "scale-info",
"serde",
- "serde_json",
- "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
"sp-runtime",
"sp-std",
+ "sp-transaction-storage-proof",
]
[[package]]
name = "pallet-treasury"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "impl-trait-for-tuples",
"pallet-balances",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-storage",
+]
+
+[[package]]
+name = "pallet-uniques"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
]
[[package]]
name = "pallet-utility"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
@@ -5115,75 +6096,61 @@ dependencies = [
[[package]]
name = "pallet-vesting"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "enumflags2",
"frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
+ "log 0.4.14",
"pallet-balances",
"parity-scale-codec",
- "serde",
+ "scale-info",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-storage",
]
[[package]]
name = "parity-db"
-version = "0.1.2"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00d595e372d119261593297debbe4193811a4dc811d2a1ccbb8caaa6666ad7ab"
+checksum = "241f9c5d25063080f2c02846221f13e1d0e5e18fa00c32c234aad585b744ee55"
dependencies = [
"blake2-rfc",
"crc32fast",
+ "fs2",
+ "hex",
"libc",
- "log",
- "memmap",
- "parking_lot 0.10.2",
-]
-
-[[package]]
-name = "parity-multiaddr"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2165a93382a93de55868dcbfa11e4a8f99676a9164eee6a2b4a9479ad319c257"
-dependencies = [
- "arrayref",
- "bs58",
- "byteorder 1.3.4",
- "data-encoding",
- "multihash",
- "percent-encoding 2.1.0",
- "serde",
- "static_assertions",
- "unsigned-varint 0.4.0",
- "url 2.1.1",
+ "log 0.4.14",
+ "lz4",
+ "memmap2",
+ "parking_lot 0.11.2",
+ "rand 0.8.4",
+ "snap",
]
[[package]]
name = "parity-scale-codec"
-version = "1.3.4"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34d38aeaffc032ec69faa476b3caaca8d4dd7f3f798137ff30359e5c7869ceb6"
+checksum = "e11263a97373b43da4b426edbb52ef99a7b51e2d9752ef56a7f8b356f48495a5"
dependencies = [
- "arrayvec 0.5.1",
- "bitvec",
+ "arrayvec 0.7.1",
+ "bitvec 0.20.4",
"byte-slice-cast",
+ "impl-trait-for-tuples",
"parity-scale-codec-derive",
"serde",
]
[[package]]
name = "parity-scale-codec-derive"
-version = "1.2.1"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd20ff7e0399b274a5f5bb37b712fccb5b3a64b9128200d1c3cc40fe709cb073"
+checksum = "b157dc92b3db2bae522afb31b3843e91ae097eb01d66c72dda66a2e86bc3ca14"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"syn",
@@ -5197,38 +6164,31 @@ checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f"
[[package]]
name = "parity-tokio-ipc"
-version = "0.4.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf"
+checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
+ "futures 0.3.17",
"libc",
- "log",
- "mio-named-pipes",
- "miow 0.3.5",
+ "log 0.4.14",
"rand 0.7.3",
- "tokio 0.1.22",
- "tokio-named-pipes",
- "tokio-uds",
+ "tokio",
"winapi 0.3.9",
]
[[package]]
name = "parity-util-mem"
-version = "0.7.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c"
+checksum = "7ad6f1acec69b95caf435bbd158d486e5a0a44fcf51531e84922c59ff09e8457"
dependencies = [
- "cfg-if",
- "ethereum-types",
- "hashbrown 0.8.1",
+ "cfg-if 1.0.0",
+ "hashbrown",
"impl-trait-for-tuples",
- "lru 0.5.3",
"parity-util-mem-derive",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"primitive-types",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -5249,31 +6209,31 @@ version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac"
dependencies = [
- "byteorder 1.3.4",
+ "byteorder",
]
[[package]]
name = "parity-wasm"
-version = "0.41.0"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865"
+checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92"
[[package]]
name = "parity-ws"
-version = "0.10.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61"
+checksum = "d0ab8a461779bd022964cae2b4989fa9c99deb270bec162da2125ec03c09fcaa"
dependencies = [
- "byteorder 1.3.4",
+ "byteorder",
"bytes 0.4.12",
"httparse",
- "log",
- "mio",
+ "log 0.4.14",
+ "mio 0.6.23",
"mio-extras",
"rand 0.7.3",
- "sha-1",
+ "sha-1 0.8.2",
"slab",
- "url 2.1.1",
+ "url 2.2.2",
]
[[package]]
@@ -5282,16 +6242,6 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-[[package]]
-name = "parking_lot"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
-dependencies = [
- "lock_api 0.1.5",
- "parking_lot_core 0.4.0",
-]
-
[[package]]
name = "parking_lot"
version = "0.9.0"
@@ -5300,7 +6250,7 @@ checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
dependencies = [
"lock_api 0.3.4",
"parking_lot_core 0.6.2",
- "rustc_version",
+ "rustc_version 0.2.3",
]
[[package]]
@@ -5315,26 +6265,13 @@ dependencies = [
[[package]]
name = "parking_lot"
-version = "0.11.0"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
dependencies = [
"instant",
- "lock_api 0.4.1",
- "parking_lot_core 0.8.0",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
-dependencies = [
- "libc",
- "rand 0.6.5",
- "rustc_version",
- "smallvec 0.6.13",
- "winapi 0.3.9",
+ "lock_api 0.4.5",
+ "parking_lot_core 0.8.5",
]
[[package]]
@@ -5343,12 +6280,12 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
dependencies = [
- "cfg-if",
- "cloudabi 0.0.3",
+ "cfg-if 0.1.10",
+ "cloudabi",
"libc",
- "redox_syscall",
- "rustc_version",
- "smallvec 0.6.13",
+ "redox_syscall 0.1.57",
+ "rustc_version 0.2.3",
+ "smallvec 0.6.14",
"winapi 0.3.9",
]
@@ -5358,26 +6295,25 @@ version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
dependencies = [
- "cfg-if",
- "cloudabi 0.0.3",
+ "cfg-if 0.1.10",
+ "cloudabi",
"libc",
- "redox_syscall",
- "smallvec 1.4.1",
+ "redox_syscall 0.1.57",
+ "smallvec 1.6.1",
"winapi 0.3.9",
]
[[package]]
name = "parking_lot_core"
-version = "0.8.0"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
+checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
dependencies = [
- "cfg-if",
- "cloudabi 0.1.0",
+ "cfg-if 1.0.0",
"instant",
"libc",
- "redox_syscall",
- "smallvec 1.4.1",
+ "redox_syscall 0.2.10",
+ "smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -5393,9 +6329,9 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.0"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6ddc8e145de01d9180ac7b78b9676f95a9c2447f6a88b2c2a04702211bc5d71"
+checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58"
[[package]]
name = "paste-impl"
@@ -5408,20 +6344,21 @@ dependencies = [
[[package]]
name = "pbkdf2"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
+checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd"
dependencies = [
- "byteorder 1.3.4",
- "crypto-mac 0.7.0",
- "rayon",
+ "crypto-mac 0.8.0",
]
[[package]]
-name = "pdqselect"
-version = "0.1.0"
+name = "pbkdf2"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27"
+checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa"
+dependencies = [
+ "crypto-mac 0.11.1",
+]
[[package]]
name = "peeking_take_while"
@@ -5441,6 +6378,49 @@ version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+[[package]]
+name = "pest"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
+dependencies = [
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
+dependencies = [
+ "maplit",
+ "pest",
+ "sha-1 0.8.2",
+]
+
[[package]]
name = "petgraph"
version = "0.5.1"
@@ -5453,18 +6433,38 @@ dependencies = [
[[package]]
name = "pin-project"
-version = "0.4.22"
+version = "0.4.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f"
+dependencies = [
+ "pin-project-internal 0.4.28",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
+checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
dependencies = [
- "pin-project-internal",
+ "pin-project-internal 1.0.8",
]
[[package]]
name = "pin-project-internal"
-version = "0.4.22"
+version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
+checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
dependencies = [
"proc-macro2",
"quote",
@@ -5473,9 +6473,15 @@ dependencies = [
[[package]]
name = "pin-project-lite"
-version = "0.1.7"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715"
+checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "pin-utils"
@@ -5485,87 +6491,108 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
-version = "0.3.18"
+version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
[[package]]
name = "platforms"
-version = "0.2.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e"
+checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
[[package]]
name = "plotters"
-version = "0.2.15"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d1685fbe7beba33de0330629da9d955ac75bd54f33d7b79f9a895590124f6bb"
+checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
dependencies = [
- "js-sys",
"num-traits",
+ "plotters-backend",
+ "plotters-svg",
"wasm-bindgen",
"web-sys",
]
+[[package]]
+name = "plotters-backend"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"
+
+[[package]]
+name = "plotters-svg"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
+dependencies = [
+ "plotters-backend",
+]
+
[[package]]
name = "polling"
-version = "1.1.0"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0720e0b9ea9d52451cf29d3413ba8a9303f8815d9d9653ef70e03ff73e65566"
+checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
- "log",
- "wepoll-sys-stjepang",
+ "log 0.4.14",
+ "wepoll-ffi",
"winapi 0.3.9",
]
[[package]]
name = "poly1305"
-version = "0.6.0"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1"
+checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
dependencies = [
+ "cpufeatures 0.2.1",
+ "opaque-debug 0.3.0",
"universal-hash",
]
[[package]]
name = "polyval"
-version = "0.4.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc"
+checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+ "cpufeatures 0.2.1",
+ "opaque-debug 0.3.0",
"universal-hash",
]
[[package]]
name = "ppv-lite86"
-version = "0.2.8"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]]
name = "predicates"
-version = "1.0.5"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+checksum = "c143348f141cc87aab5b950021bac6145d0e5ae754b0591de23244cee42c9308"
dependencies = [
- "difference",
+ "difflib",
+ "itertools",
"predicates-core",
]
[[package]]
name = "predicates-core"
-version = "1.0.0"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
[[package]]
name = "predicates-tree"
-version = "1.0.0"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+checksum = "d7dd0fd014130206c9352efbdc92be592751b2b9274dff685348341082c6ea3d"
dependencies = [
"predicates-core",
"treeline",
@@ -5584,15 +6611,27 @@ dependencies = [
]
[[package]]
-name = "primitive-types"
+name = "pretty_assertions"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8"
+checksum = "1cab0e7c02cf376875e9335e0ba1da535775beb5450d21e1dffca068818ed98b"
+dependencies = [
+ "ansi_term 0.12.1",
+ "ctor",
+ "diff",
+ "output_vt100",
+]
+
+[[package]]
+name = "primitive-types"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373"
dependencies = [
"fixed-hash",
"impl-codec",
- "impl-rlp",
"impl-serde",
+ "scale-info",
"uint",
]
@@ -5605,87 +6644,121 @@ dependencies = [
"toml",
]
+[[package]]
+name = "proc-macro-crate"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83"
+dependencies = [
+ "thiserror",
+ "toml",
+]
+
[[package]]
name = "proc-macro-error"
-version = "1.0.3"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7"
+dependencies = [
+ "proc-macro-error-attr 0.4.12",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check 0.9.3",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
- "proc-macro-error-attr",
+ "proc-macro-error-attr 1.0.4",
"proc-macro2",
"quote",
"syn",
- "version_check",
+ "version_check 0.9.3",
]
[[package]]
name = "proc-macro-error-attr"
-version = "1.0.3"
+version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn-mid",
- "version_check",
+ "version_check 0.9.3",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check 0.9.3",
]
[[package]]
name = "proc-macro-hack"
-version = "0.5.16"
+version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro-nested"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]]
name = "proc-macro2"
-version = "1.0.19"
+version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
dependencies = [
"unicode-xid",
]
[[package]]
name = "prometheus"
-version = "0.10.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d70cf4412832bcac9cffe27906f4a66e450d323525e977168c70d1b36120ae"
+checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"fnv",
"lazy_static",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.2",
"regex",
"thiserror",
]
[[package]]
name = "prost"
-version = "0.6.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212"
+checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"prost-derive",
]
[[package]]
name = "prost-build"
-version = "0.6.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26"
+checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"heck",
- "itertools 0.8.2",
- "log",
+ "itertools",
+ "log 0.4.14",
"multimap",
"petgraph",
"prost",
@@ -5696,12 +6769,12 @@ dependencies = [
[[package]]
name = "prost-derive"
-version = "0.6.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72"
+checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
dependencies = [
"anyhow",
- "itertools 0.8.2",
+ "itertools",
"proc-macro2",
"quote",
"syn",
@@ -5709,23 +6782,32 @@ dependencies = [
[[package]]
name = "prost-types"
-version = "0.6.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa"
+checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"prost",
]
+[[package]]
+name = "psm"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69"
+dependencies = [
+ "cc",
+]
+
[[package]]
name = "pwasm-utils"
-version = "0.14.0"
+version = "0.18.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7"
+checksum = "880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5c"
dependencies = [
- "byteorder 1.3.4",
- "log",
- "parity-wasm 0.41.0",
+ "byteorder",
+ "log 0.4.14",
+ "parity-wasm 0.42.2",
]
[[package]]
@@ -5734,16 +6816,30 @@ version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+[[package]]
+name = "quick-error"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+
+[[package]]
+name = "quick-protobuf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ca6639207ac869e31cca06b8adbc7676278f22b321e51115766009b4f192dbb"
+dependencies = [
+ "byteorder",
+]
+
[[package]]
name = "quickcheck"
-version = "0.9.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
+checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [
- "env_logger",
- "log",
- "rand 0.7.3",
- "rand_core 0.5.1",
+ "env_logger 0.8.4",
+ "log 0.4.14",
+ "rand 0.8.4",
]
[[package]]
@@ -5754,59 +6850,29 @@ checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858"
dependencies = [
"futures-core",
"futures-sink",
- "pin-project-lite",
+ "pin-project-lite 0.1.12",
]
[[package]]
name = "quote"
-version = "1.0.7"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "radium"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac"
-
-[[package]]
-name = "rand"
-version = "0.3.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
-dependencies = [
- "libc",
- "rand 0.4.6",
-]
-
-[[package]]
-name = "rand"
-version = "0.4.6"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-dependencies = [
- "fuchsia-cprng",
- "libc",
- "rand_core 0.3.1",
- "rdrand",
- "winapi 0.3.9",
-]
+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
[[package]]
-name = "rand"
-version = "0.5.6"
+name = "radium"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
-dependencies = [
- "cloudabi 0.0.3",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.3.1",
- "winapi 0.3.9",
-]
+checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb"
[[package]]
name = "rand"
@@ -5833,7 +6899,7 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
- "getrandom 0.1.14",
+ "getrandom 0.1.16",
"libc",
"rand_chacha 0.2.2",
"rand_core 0.5.1",
@@ -5841,6 +6907,18 @@ dependencies = [
"rand_pcg 0.2.1",
]
+[[package]]
+name = "rand"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.3",
+ "rand_hc 0.3.1",
+]
+
[[package]]
name = "rand_chacha"
version = "0.1.1"
@@ -5861,6 +6939,16 @@ dependencies = [
"rand_core 0.5.1",
]
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.3",
+]
+
[[package]]
name = "rand_core"
version = "0.3.1"
@@ -5882,7 +6970,26 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
- "getrandom 0.1.14",
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom 0.2.3",
+]
+
+[[package]]
+name = "rand_distr"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "051b398806e42b9cd04ad9ec8f81e355d0a382c543ac6672c62f5a5b452ef142"
+dependencies = [
+ "num-traits",
+ "rand 0.8.4",
]
[[package]]
@@ -5903,6 +7010,15 @@ dependencies = [
"rand_core 0.5.1",
]
+[[package]]
+name = "rand_hc"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
+dependencies = [
+ "rand_core 0.6.3",
+]
+
[[package]]
name = "rand_isaac"
version = "0.1.1"
@@ -5929,12 +7045,11 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
dependencies = [
- "cloudabi 0.0.3",
+ "cloudabi",
"fuchsia-cprng",
"libc",
"rand_core 0.4.2",
"rdrand",
- "wasm-bindgen",
"winapi 0.3.9",
]
@@ -5966,17 +7081,6 @@ dependencies = [
"rand_core 0.3.1",
]
-[[package]]
-name = "raw-cpuid"
-version = "7.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf"
-dependencies = [
- "bitflags",
- "cc",
- "rustc_version",
-]
-
[[package]]
name = "rawpointer"
version = "0.2.1"
@@ -5985,11 +7089,11 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
-version = "1.3.1"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
"crossbeam-deque",
"either",
"rayon-core",
@@ -5997,13 +7101,13 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.7.1"
+version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
+ "crossbeam-channel",
"crossbeam-deque",
- "crossbeam-queue",
- "crossbeam-utils",
+ "crossbeam-utils 0.8.5",
"lazy_static",
"num_cpus",
]
@@ -6023,31 +7127,39 @@ version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+[[package]]
+name = "redox_syscall"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+dependencies = [
+ "bitflags",
+]
+
[[package]]
name = "redox_users"
-version = "0.3.4"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
- "getrandom 0.1.14",
- "redox_syscall",
- "rust-argon2",
+ "getrandom 0.2.3",
+ "redox_syscall 0.2.10",
]
[[package]]
name = "ref-cast"
-version = "1.0.2"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623"
+checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.2"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144"
+checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2"
dependencies = [
"proc-macro2",
"quote",
@@ -6056,42 +7168,41 @@ dependencies = [
[[package]]
name = "regalloc"
-version = "0.0.27"
+version = "0.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8"
+checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5"
dependencies = [
- "log",
+ "log 0.4.14",
"rustc-hash",
- "smallvec 1.4.1",
+ "serde",
+ "smallvec 1.6.1",
]
[[package]]
name = "regex"
-version = "1.3.9"
+version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
- "thread_local",
]
[[package]]
name = "regex-automata"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
dependencies = [
- "byteorder 1.3.4",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
-version = "0.6.18"
+version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
[[package]]
name = "region"
@@ -6105,6 +7216,25 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "remote-externalities"
+version = "0.10.0-dev"
+dependencies = [
+ "env_logger 0.9.0",
+ "jsonrpsee-proc-macros",
+ "jsonrpsee-ws-client",
+ "log 0.4.14",
+ "pallet-elections-phragmen",
+ "parity-scale-codec",
+ "serde",
+ "serde_json",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-version",
+ "tokio",
+]
+
[[package]]
name = "remove_dir_all"
version = "0.5.3"
@@ -6114,52 +7244,42 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error 1.2.3",
+]
+
[[package]]
name = "retain_mut"
-version = "0.1.1"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531"
+checksum = "e9c17925a9027d298a4603d286befe3f9dc0e8ed02523141914eb628798d6e5b"
[[package]]
name = "ring"
-version = "0.16.15"
+version = "0.16.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
dependencies = [
"cc",
"libc",
- "once_cell 1.4.1",
+ "once_cell",
"spin",
"untrusted",
"web-sys",
"winapi 0.3.9",
]
-[[package]]
-name = "ripemd160"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251"
-dependencies = [
- "block-buffer 0.9.0",
- "digest 0.9.0",
- "opaque-debug 0.3.0",
-]
-
-[[package]]
-name = "rlp"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a7d3f9bed94764eac15b8f14af59fac420c236adaff743b7bcc88e265cb4345"
-dependencies = [
- "rustc-hex",
-]
-
[[package]]
name = "rocksdb"
-version = "0.15.0"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d83c02c429044d58474eaf5ae31e062d0de894e21125b47437ec0edc1397e6"
+checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7"
dependencies = [
"libc",
"librocksdb-sys",
@@ -6167,31 +7287,19 @@ dependencies = [
[[package]]
name = "rpassword"
-version = "4.0.5"
+version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f"
+checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb"
dependencies = [
"libc",
"winapi 0.3.9",
]
-[[package]]
-name = "rust-argon2"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-dependencies = [
- "base64 0.11.0",
- "blake2b_simd",
- "constant_time_eq",
- "crossbeam-utils",
-]
-
[[package]]
name = "rustc-demangle"
-version = "0.1.16"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
[[package]]
name = "rustc-hash"
@@ -6214,14 +7322,32 @@ dependencies = [
"semver 0.9.0",
]
+[[package]]
+name = "rustc_version"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+dependencies = [
+ "semver 0.11.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver 1.0.4",
+]
+
[[package]]
name = "rustls"
-version = "0.18.0"
+version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cac94b333ee2aac3284c5b8a1b7fb4dd11cba88c244e3fe33cdbd047af0eb693"
+checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
dependencies = [
- "base64 0.12.3",
- "log",
+ "base64 0.13.0",
+ "log 0.4.14",
"ring",
"sct",
"webpki",
@@ -6229,9 +7355,9 @@ dependencies = [
[[package]]
name = "rustls-native-certs"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8"
+checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092"
dependencies = [
"openssl-probe",
"rustls",
@@ -6241,14 +7367,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.3"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9bdc5e856e51e685846fb6c13a1f5e5432946c2c90501bdc76a1319f19e29da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"
[[package]]
name = "rw-stream-sink"
@@ -6256,8 +7377,8 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
dependencies = [
- "futures 0.3.5",
- "pin-project",
+ "futures 0.3.17",
+ "pin-project 0.4.28",
"static_assertions",
]
@@ -6273,27 +7394,22 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c"
dependencies = [
- "rustc_version",
+ "rustc_version 0.2.3",
]
[[package]]
-name = "salsa20"
-version = "0.3.0"
+name = "safemem"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2324b0e8c3bb9a586a571fdb3136f70e7e2c748de00a78043f86e0cff91f91fe"
-dependencies = [
- "byteorder 1.3.4",
- "salsa20-core",
- "stream-cipher 0.3.2",
-]
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
[[package]]
-name = "salsa20-core"
-version = "0.2.3"
+name = "salsa20"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fe6cc1b9f5a5867853ade63099de70f042f7679e408d1ffe52821c9248e6e69"
+checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0"
dependencies = [
- "stream-cipher 0.3.2",
+ "cipher",
]
[[package]]
@@ -6305,27 +7421,34 @@ dependencies = [
"winapi-util",
]
+[[package]]
+name = "sc-allocator"
+version = "4.0.0-dev"
+dependencies = [
+ "log 0.4.14",
+ "sp-core",
+ "sp-wasm-interface",
+ "thiserror",
+]
+
[[package]]
name = "sc-authority-discovery"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "bytes 0.5.6",
+ "async-trait",
"derive_more",
- "either",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
+ "ip_network",
"libp2p",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"prost",
"prost-build",
"quickcheck",
"rand 0.7.3",
"sc-client-api",
- "sc-keystore",
"sc-network",
- "sc-peerset",
- "serde_json",
"sp-api",
"sp-authority-discovery",
"sp-blockchain",
@@ -6339,73 +7462,65 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-block-builder",
"sc-client-api",
"sc-proposer-metrics",
"sc-telemetry",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
"sp-api",
"sp-blockchain",
"sp-consensus",
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-transaction-pool",
"substrate-prometheus-endpoint",
"substrate-test-runtime-client",
- "tokio-executor 0.2.0-alpha.6",
]
[[package]]
name = "sc-block-builder"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"parity-scale-codec",
"sc-client-api",
"sp-api",
"sp-block-builder",
"sp-blockchain",
- "sp-consensus",
"sp-core",
"sp-inherents",
"sp-runtime",
"sp-state-machine",
- "sp-trie",
"substrate-test-runtime-client",
]
[[package]]
name = "sc-chain-spec"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
"sc-chain-spec-derive",
- "sc-consensus-babe",
- "sc-consensus-epochs",
- "sc-finality-grandpa",
"sc-network",
"sc-telemetry",
"serde",
"serde_json",
- "sp-chain-spec",
- "sp-consensus-babe",
"sp-core",
"sp-runtime",
]
[[package]]
name = "sc-chain-spec-derive"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"syn",
@@ -6413,171 +7528,142 @@ dependencies = [
[[package]]
name = "sc-cli"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "ansi_term 0.12.1",
- "atty",
- "bip39",
"chrono",
- "derive_more",
"fdlimit",
- "futures 0.3.5",
+ "futures 0.3.17",
"hex",
- "lazy_static",
"libp2p",
- "log",
+ "log 0.4.14",
"names",
- "nix",
"parity-scale-codec",
- "parity-util-mem",
"rand 0.7.3",
"regex",
"rpassword",
- "sc-cli-proc-macro",
"sc-client-api",
- "sc-consensus-babe",
- "sc-consensus-epochs",
- "sc-finality-grandpa",
- "sc-informant",
"sc-keystore",
"sc-network",
"sc-service",
"sc-telemetry",
"sc-tracing",
+ "sc-utils",
"serde",
"serde_json",
- "sp-application-crypto",
"sp-blockchain",
- "sp-core",
- "sp-io",
- "sp-keyring",
- "sp-keystore",
- "sp-panic-handler",
- "sp-runtime",
- "sp-state-machine",
- "sp-utils",
- "sp-version",
- "structopt",
- "substrate-prometheus-endpoint",
- "tempfile",
- "time",
- "tokio 0.2.22",
- "tracing",
- "tracing-log",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "sc-cli-proc-macro"
-version = "2.0.0"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
+ "sp-core",
+ "sp-keyring",
+ "sp-keystore",
+ "sp-panic-handler",
+ "sp-runtime",
+ "sp-version",
+ "structopt",
+ "tempfile",
+ "thiserror",
+ "tiny-bip39",
+ "tokio",
]
[[package]]
name = "sc-client-api"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "derive_more",
"fnv",
- "futures 0.3.5",
+ "futures 0.3.17",
"hash-db",
- "hex-literal",
- "kvdb",
- "kvdb-memorydb",
- "lazy_static",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-executor",
- "sc-telemetry",
+ "sc-transaction-pool-api",
+ "sc-utils",
"sp-api",
"sp-blockchain",
"sp-consensus",
"sp-core",
"sp-database",
"sp-externalities",
- "sp-inherents",
- "sp-keyring",
"sp-keystore",
"sp-runtime",
"sp-state-machine",
- "sp-std",
"sp-storage",
"sp-test-primitives",
- "sp-transaction-pool",
"sp-trie",
- "sp-utils",
- "sp-version",
"substrate-prometheus-endpoint",
"substrate-test-runtime",
+ "thiserror",
]
[[package]]
name = "sc-client-db"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "blake2-rfc",
"hash-db",
"kvdb",
"kvdb-memorydb",
"kvdb-rocksdb",
"linked-hash-map",
- "log",
+ "log 0.4.14",
"parity-db",
"parity-scale-codec",
- "parity-util-mem",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"quickcheck",
"sc-client-api",
- "sc-executor",
"sc-state-db",
"sp-arithmetic",
"sp-blockchain",
- "sp-consensus",
"sp-core",
"sp-database",
- "sp-keyring",
"sp-runtime",
"sp-state-machine",
"sp-tracing",
"sp-trie",
- "substrate-prometheus-endpoint",
"substrate-test-runtime-client",
"tempfile",
]
[[package]]
name = "sc-consensus"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
+ "futures 0.3.17",
+ "futures-timer 3.0.2",
+ "libp2p",
+ "log 0.4.14",
+ "parking_lot 0.11.2",
"sc-client-api",
+ "sc-utils",
+ "serde",
+ "sp-api",
"sp-blockchain",
"sp-consensus",
+ "sp-core",
"sp-runtime",
+ "sp-state-machine",
+ "sp-test-primitives",
+ "substrate-prometheus-endpoint",
+ "thiserror",
]
[[package]]
name = "sc-consensus-aura"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
"derive_more",
- "futures 0.3.5",
- "futures-timer 3.0.2",
- "log",
+ "futures 0.3.17",
+ "getrandom 0.2.3",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-block-builder",
"sc-client-api",
+ "sc-consensus",
"sc-consensus-slots",
- "sc-executor",
"sc-keystore",
"sc-network",
"sc-network-test",
- "sc-service",
"sc-telemetry",
"sp-api",
"sp-application-crypto",
@@ -6585,15 +7671,14 @@ dependencies = [
"sp-blockchain",
"sp-consensus",
"sp-consensus-aura",
+ "sp-consensus-slots",
"sp-core",
"sp-inherents",
- "sp-io",
"sp-keyring",
"sp-keystore",
"sp-runtime",
"sp-timestamp",
"sp-tracing",
- "sp-version",
"substrate-prometheus-endpoint",
"substrate-test-runtime-client",
"tempfile",
@@ -6601,33 +7686,30 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
"derive_more",
"fork-tree",
- "futures 0.3.5",
- "futures-timer 3.0.2",
- "log",
+ "futures 0.3.17",
+ "log 0.4.14",
"merlin",
"num-bigint",
- "num-rational",
+ "num-rational 0.2.4",
"num-traits",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "pdqselect",
+ "parking_lot 0.11.2",
"rand 0.7.3",
"rand_chacha 0.2.2",
"retain_mut",
"sc-block-builder",
"sc-client-api",
+ "sc-consensus",
"sc-consensus-epochs",
"sc-consensus-slots",
- "sc-consensus-uncles",
- "sc-executor",
"sc-keystore",
"sc-network",
"sc-network-test",
- "sc-service",
"sc-telemetry",
"schnorrkel",
"serde",
@@ -6637,16 +7719,15 @@ dependencies = [
"sp-blockchain",
"sp-consensus",
"sp-consensus-babe",
+ "sp-consensus-slots",
"sp-consensus-vrf",
"sp-core",
"sp-inherents",
"sp-io",
- "sp-keyring",
"sp-keystore",
"sp-runtime",
"sp-timestamp",
"sp-tracing",
- "sp-utils",
"sp-version",
"substrate-prometheus-endpoint",
"substrate-test-runtime-client",
@@ -6655,10 +7736,10 @@ dependencies = [
[[package]]
name = "sc-consensus-babe-rpc"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
@@ -6684,62 +7765,66 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"fork-tree",
"parity-scale-codec",
- "parking_lot 0.10.2",
"sc-client-api",
+ "sc-consensus",
"sp-blockchain",
"sp-runtime",
]
[[package]]
name = "sc-consensus-manual-seal"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"assert_matches",
+ "async-trait",
"derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
- "log",
- "parking_lot 0.10.2",
+ "log 0.4.14",
+ "parity-scale-codec",
"sc-basic-authorship",
"sc-client-api",
+ "sc-consensus",
"sc-consensus-babe",
"sc-consensus-epochs",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
"serde",
"sp-api",
"sp-blockchain",
"sp-consensus",
"sp-consensus-babe",
+ "sp-consensus-slots",
"sp-core",
"sp-inherents",
"sp-keystore",
"sp-runtime",
"sp-timestamp",
- "sp-transaction-pool",
"substrate-prometheus-endpoint",
"substrate-test-runtime-client",
"substrate-test-runtime-transaction-pool",
- "tempfile",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "sc-consensus-pow"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
"derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-client-api",
+ "sc-consensus",
"sp-api",
"sp-block-builder",
"sp-blockchain",
@@ -6748,23 +7833,23 @@ dependencies = [
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-timestamp",
"substrate-prometheus-endpoint",
]
[[package]]
name = "sc-consensus-slots"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "futures 0.3.5",
+ "async-trait",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
"sc-client-api",
+ "sc-consensus",
"sc-telemetry",
"sp-api",
- "sp-application-crypto",
+ "sp-arithmetic",
"sp-blockchain",
"sp-consensus",
"sp-consensus-slots",
@@ -6772,35 +7857,33 @@ dependencies = [
"sp-inherents",
"sp-runtime",
"sp-state-machine",
+ "sp-timestamp",
"substrate-test-runtime-client",
+ "thiserror",
]
[[package]]
name = "sc-consensus-uncles"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "log",
"sc-client-api",
"sp-authorship",
- "sp-consensus",
- "sp-core",
- "sp-inherents",
"sp-runtime",
+ "thiserror",
]
[[package]]
name = "sc-executor"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "assert_matches",
- "derive_more",
"hex-literal",
"lazy_static",
- "libsecp256k1",
- "log",
+ "libsecp256k1 0.6.0",
+ "log 0.4.14",
"parity-scale-codec",
- "parity-wasm 0.41.0",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
+ "paste 1.0.5",
+ "regex",
"sc-executor-common",
"sc-executor-wasmi",
"sc-executor-wasmtime",
@@ -6810,18 +7893,16 @@ dependencies = [
"sp-core",
"sp-externalities",
"sp-io",
+ "sp-maybe-compressed-blob",
"sp-panic-handler",
"sp-runtime",
"sp-runtime-interface",
- "sp-serializer",
"sp-state-machine",
"sp-tasks",
- "sp-tracing",
"sp-trie",
"sp-version",
"sp-wasm-interface",
"substrate-test-runtime",
- "test-case",
"tracing",
"tracing-subscriber",
"wasmi",
@@ -6830,28 +7911,32 @@ dependencies = [
[[package]]
name = "sc-executor-common"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"derive_more",
- "log",
+ "environmental",
"parity-scale-codec",
- "parity-wasm 0.41.0",
- "sp-allocator",
+ "pwasm-utils",
+ "sc-allocator",
"sp-core",
- "sp-runtime-interface",
+ "sp-maybe-compressed-blob",
"sp-serializer",
"sp-wasm-interface",
+ "thiserror",
+ "wasmer",
+ "wasmer-compiler-singlepass",
"wasmi",
]
[[package]]
name = "sc-executor-wasmi"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "log",
+ "log 0.4.14",
"parity-scale-codec",
+ "sc-allocator",
"sc-executor-common",
- "sp-allocator",
+ "scoped-tls",
"sp-core",
"sp-runtime-interface",
"sp-wasm-interface",
@@ -6860,37 +7945,41 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "assert_matches",
- "log",
+ "cfg-if 1.0.0",
+ "libc",
+ "log 0.4.14",
"parity-scale-codec",
- "parity-wasm 0.41.0",
- "pwasm-utils",
+ "parity-wasm 0.42.2",
+ "sc-allocator",
"sc-executor-common",
+ "sc-runtime-test",
"scoped-tls",
- "sp-allocator",
"sp-core",
+ "sp-io",
"sp-runtime-interface",
"sp-wasm-interface",
"wasmtime",
+ "wat",
]
[[package]]
name = "sc-finality-grandpa"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"assert_matches",
+ "async-trait",
"derive_more",
+ "dyn-clone",
"finality-grandpa",
"fork-tree",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "pin-project",
- "rand 0.7.3",
+ "parking_lot 0.11.2",
+ "rand 0.8.4",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -6899,51 +7988,45 @@ dependencies = [
"sc-network-gossip",
"sc-network-test",
"sc-telemetry",
+ "sc-utils",
"serde_json",
"sp-api",
"sp-application-crypto",
"sp-arithmetic",
"sp-blockchain",
"sp-consensus",
- "sp-consensus-babe",
"sp-core",
"sp-finality-grandpa",
- "sp-inherents",
"sp-keyring",
"sp-keystore",
"sp-runtime",
- "sp-state-machine",
"sp-tracing",
- "sp-utils",
"substrate-prometheus-endpoint",
"substrate-test-runtime-client",
"tempfile",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "sc-finality-grandpa-rpc"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"derive_more",
"finality-grandpa",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
"jsonrpc-pubsub",
- "lazy_static",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"sc-block-builder",
"sc-client-api",
"sc-finality-grandpa",
- "sc-network-test",
"sc-rpc",
"serde",
"serde_json",
"sp-blockchain",
- "sp-consensus",
"sp-core",
"sp-finality-grandpa",
"sp-keyring",
@@ -6953,49 +8036,42 @@ dependencies = [
[[package]]
name = "sc-informant"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"ansi_term 0.12.1",
- "futures 0.3.5",
- "log",
+ "futures 0.3.17",
+ "futures-timer 3.0.2",
+ "log 0.4.14",
"parity-util-mem",
"sc-client-api",
"sc-network",
+ "sc-transaction-pool-api",
"sp-blockchain",
"sp-runtime",
- "sp-transaction-pool",
- "sp-utils",
- "wasm-timer",
]
[[package]]
name = "sc-keystore"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.5",
- "futures-util",
"hex",
- "merlin",
- "parking_lot 0.10.2",
- "rand 0.7.3",
+ "parking_lot 0.11.2",
"serde_json",
"sp-application-crypto",
"sp-core",
"sp-keystore",
- "subtle 2.2.3",
"tempfile",
]
[[package]]
name = "sc-light"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"hash-db",
- "lazy_static",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-client-api",
"sc-executor",
"sp-api",
@@ -7008,92 +8084,90 @@ dependencies = [
[[package]]
name = "sc-network"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"assert_matches",
"async-std",
"async-trait",
+ "asynchronous-codec 0.5.0",
"bitflags",
- "bs58",
- "bytes 0.5.6",
+ "bytes 1.1.0",
+ "cid 0.6.1",
"derive_more",
"either",
- "erased-serde",
"fnv",
"fork-tree",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "futures_codec",
"hex",
"ip_network",
"libp2p",
"linked-hash-map",
"linked_hash_set",
- "log",
- "lru 0.4.3",
- "nohash-hasher",
+ "log 0.4.14",
+ "lru",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "pin-project",
+ "parking_lot 0.11.2",
+ "pin-project 1.0.8",
"prost",
"prost-build",
"quickcheck",
"rand 0.7.3",
"sc-block-builder",
"sc-client-api",
+ "sc-consensus",
"sc-peerset",
+ "sc-utils",
"serde",
"serde_json",
- "slog",
- "slog_derive",
- "smallvec 0.6.13",
+ "smallvec 1.6.1",
"sp-arithmetic",
"sp-blockchain",
"sp-consensus",
"sp-core",
- "sp-keyring",
+ "sp-finality-grandpa",
"sp-runtime",
"sp-test-primitives",
"sp-tracing",
- "sp-utils",
"substrate-prometheus-endpoint",
"substrate-test-runtime",
"substrate-test-runtime-client",
"tempfile",
"thiserror",
- "unsigned-varint 0.4.0",
+ "unsigned-varint 0.6.0",
"void",
- "wasm-timer",
"zeroize",
]
[[package]]
name = "sc-network-gossip"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"async-std",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
"libp2p",
- "log",
- "lru 0.4.3",
+ "log 0.4.14",
+ "lru",
"quickcheck",
- "rand 0.7.3",
"sc-network",
"sp-runtime",
+ "substrate-prometheus-endpoint",
"substrate-test-runtime-client",
- "wasm-timer",
+ "tracing",
]
[[package]]
name = "sc-network-test"
version = "0.8.0"
dependencies = [
- "futures 0.3.5",
+ "async-std",
+ "async-trait",
+ "futures 0.3.17",
"futures-timer 3.0.2",
"libp2p",
- "log",
- "parking_lot 0.10.2",
+ "log 0.4.14",
+ "parking_lot 0.11.2",
"rand 0.7.3",
"sc-block-builder",
"sc-client-api",
@@ -7108,88 +8182,92 @@ dependencies = [
"sp-tracing",
"substrate-test-runtime",
"substrate-test-runtime-client",
- "tempfile",
]
[[package]]
name = "sc-offchain"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
+ "cid 0.5.1",
"fnv",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "hyper 0.13.7",
+ "hex",
+ "hyper 0.14.13",
"hyper-rustls",
+ "ipfs",
"lazy_static",
- "log",
+ "log 0.4.14",
"num_cpus",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"rand 0.7.3",
+ "sc-block-builder",
"sc-client-api",
"sc-client-db",
- "sc-keystore",
"sc-network",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "sc-utils",
"sp-api",
+ "sp-consensus",
"sp-core",
"sp-offchain",
"sp-runtime",
"sp-tracing",
- "sp-transaction-pool",
- "sp-utils",
"substrate-test-runtime-client",
"threadpool",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "sc-peerset"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"libp2p",
- "log",
+ "log 0.4.14",
"rand 0.7.3",
+ "sc-utils",
"serde_json",
- "sp-utils",
"wasm-timer",
]
[[package]]
name = "sc-proposer-metrics"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
- "log",
+ "log 0.4.14",
"substrate-prometheus-endpoint",
]
[[package]]
name = "sc-rpc"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"assert_matches",
- "futures 0.1.29",
- "futures 0.3.5",
+ "futures 0.3.17",
"hash-db",
"jsonrpc-core",
"jsonrpc-pubsub",
"lazy_static",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-block-builder",
+ "sc-chain-spec",
"sc-client-api",
- "sc-executor",
- "sc-keystore",
"sc-network",
"sc-rpc-api",
+ "sc-tracing",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "sc-utils",
"serde_json",
"sp-api",
"sp-blockchain",
- "sp-chain-spec",
+ "sp-consensus",
"sp-core",
"sp-io",
"sp-keystore",
@@ -7197,95 +8275,88 @@ dependencies = [
"sp-rpc",
"sp-runtime",
"sp-session",
- "sp-state-machine",
- "sp-transaction-pool",
- "sp-utils",
"sp-version",
"substrate-test-runtime-client",
- "tokio 0.1.22",
]
[[package]]
name = "sc-rpc-api"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
"jsonrpc-pubsub",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
+ "sc-chain-spec",
+ "sc-transaction-pool-api",
"serde",
"serde_json",
- "sp-chain-spec",
"sp-core",
"sp-rpc",
"sp-runtime",
- "sp-transaction-pool",
+ "sp-tracing",
"sp-version",
+ "thiserror",
]
[[package]]
name = "sc-rpc-server"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "futures 0.1.29",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-http-server",
"jsonrpc-ipc-server",
"jsonrpc-pubsub",
"jsonrpc-ws-server",
- "log",
- "serde",
+ "log 0.4.14",
"serde_json",
- "sp-runtime",
"substrate-prometheus-endpoint",
+ "tokio",
]
[[package]]
name = "sc-runtime-test"
version = "2.0.0"
dependencies = [
- "sp-allocator",
"sp-core",
"sp-io",
"sp-runtime",
"sp-sandbox",
"sp-std",
"sp-tasks",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
]
[[package]]
name = "sc-service"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"async-std",
- "derive_more",
+ "async-trait",
"directories",
"exit-future",
- "futures 0.1.29",
- "futures 0.3.5",
+ "futures 0.3.17",
"futures-timer 3.0.2",
"hash-db",
"jsonrpc-core",
"jsonrpc-pubsub",
- "lazy_static",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"parity-util-mem",
- "parking_lot 0.10.2",
- "pin-project",
+ "parking_lot 0.11.2",
+ "pin-project 1.0.8",
"rand 0.7.3",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
"sc-client-db",
+ "sc-consensus",
"sc-executor",
- "sc-finality-grandpa",
"sc-informant",
"sc-keystore",
"sc-light",
@@ -7296,36 +8367,36 @@ dependencies = [
"sc-telemetry",
"sc-tracing",
"sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "sc-utils",
"serde",
"serde_json",
- "slog",
"sp-api",
"sp-application-crypto",
"sp-block-builder",
"sp-blockchain",
"sp-consensus",
- "sp-consensus-babe",
"sp-core",
"sp-externalities",
- "sp-finality-grandpa",
"sp-inherents",
- "sp-io",
"sp-keystore",
"sp-runtime",
"sp-session",
"sp-state-machine",
+ "sp-storage",
"sp-tracing",
"sp-transaction-pool",
+ "sp-transaction-storage-proof",
"sp-trie",
- "sp-utils",
"sp-version",
"substrate-prometheus-endpoint",
+ "substrate-test-runtime",
"substrate-test-runtime-client",
"tempfile",
- "tokio 0.2.22",
+ "thiserror",
+ "tokio",
"tracing",
"tracing-futures",
- "wasm-timer",
]
[[package]]
@@ -7333,19 +8404,20 @@ name = "sc-service-test"
version = "2.0.0"
dependencies = [
"fdlimit",
- "futures 0.1.29",
- "futures 0.3.5",
+ "futures 0.3.17",
"hex-literal",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-block-builder",
"sc-client-api",
"sc-client-db",
+ "sc-consensus",
"sc-executor",
"sc-light",
"sc-network",
"sc-service",
+ "sc-transaction-pool-api",
"sp-api",
"sp-blockchain",
"sp-consensus",
@@ -7356,137 +8428,183 @@ dependencies = [
"sp-state-machine",
"sp-storage",
"sp-tracing",
- "sp-transaction-pool",
"sp-trie",
"substrate-test-runtime",
"substrate-test-runtime-client",
"tempfile",
- "tokio 0.1.22",
+ "tokio",
]
[[package]]
name = "sc-state-db"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"parity-util-mem",
"parity-util-mem-derive",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sc-client-api",
"sp-core",
]
[[package]]
name = "sc-sync-state-rpc"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
+ "parity-scale-codec",
"sc-chain-spec",
"sc-client-api",
"sc-consensus-babe",
"sc-consensus-epochs",
"sc-finality-grandpa",
"sc-rpc-api",
+ "serde",
"serde_json",
"sp-blockchain",
"sp-runtime",
+ "thiserror",
]
[[package]]
name = "sc-telemetry"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "futures 0.3.5",
- "futures-timer 3.0.2",
+ "chrono",
+ "futures 0.3.17",
"libp2p",
- "log",
- "parking_lot 0.10.2",
- "pin-project",
+ "log 0.4.14",
+ "parking_lot 0.11.2",
+ "pin-project 1.0.8",
"rand 0.7.3",
"serde",
- "slog",
- "slog-json",
- "slog-scope",
- "take_mut",
- "void",
+ "serde_json",
+ "thiserror",
"wasm-timer",
]
[[package]]
name = "sc-tracing"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "erased-serde",
- "log",
- "parking_lot 0.10.2",
+ "ansi_term 0.12.1",
+ "atty",
+ "lazy_static",
+ "log 0.4.14",
+ "once_cell",
+ "parking_lot 0.11.2",
+ "regex",
"rustc-hash",
- "sc-telemetry",
+ "sc-client-api",
+ "sc-rpc-server",
+ "sc-tracing-proc-macro",
"serde",
- "serde_json",
- "slog",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
"sp-tracing",
+ "thiserror",
"tracing",
- "tracing-core",
+ "tracing-log",
"tracing-subscriber",
]
[[package]]
-name = "sc-transaction-graph"
-version = "2.0.0"
+name = "sc-tracing-proc-macro"
+version = "4.0.0-dev"
dependencies = [
- "assert_matches",
- "criterion",
- "derive_more",
- "futures 0.3.5",
- "linked-hash-map",
- "log",
- "parity-scale-codec",
- "parity-util-mem",
- "parking_lot 0.10.2",
- "retain_mut",
- "serde",
- "sp-blockchain",
- "sp-core",
- "sp-runtime",
- "sp-transaction-pool",
- "sp-utils",
- "substrate-test-runtime",
- "wasm-timer",
+ "proc-macro-crate 1.1.0",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "sc-transaction-pool"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"assert_matches",
- "derive_more",
- "futures 0.3.5",
- "futures-diagnose",
+ "criterion",
+ "futures 0.3.17",
"hex",
"intervalier",
- "log",
+ "linked-hash-map",
+ "log 0.4.14",
"parity-scale-codec",
"parity-util-mem",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
+ "retain_mut",
"sc-block-builder",
"sc-client-api",
- "sc-transaction-graph",
+ "sc-transaction-pool-api",
+ "sc-utils",
+ "serde",
"sp-api",
"sp-blockchain",
"sp-consensus",
"sp-core",
- "sp-keyring",
"sp-runtime",
"sp-tracing",
"sp-transaction-pool",
- "sp-utils",
"substrate-prometheus-endpoint",
+ "substrate-test-runtime",
"substrate-test-runtime-client",
"substrate-test-runtime-transaction-pool",
- "wasm-timer",
+ "thiserror",
+]
+
+[[package]]
+name = "sc-transaction-pool-api"
+version = "4.0.0-dev"
+dependencies = [
+ "derive_more",
+ "futures 0.3.17",
+ "log 0.4.14",
+ "serde",
+ "sp-blockchain",
+ "sp-runtime",
+ "thiserror",
+]
+
+[[package]]
+name = "sc-utils"
+version = "4.0.0-dev"
+dependencies = [
+ "futures 0.3.17",
+ "futures-timer 3.0.2",
+ "lazy_static",
+ "prometheus",
+]
+
+[[package]]
+name = "scale-info"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f"
+dependencies = [
+ "bitvec 0.20.4",
+ "cfg-if 1.0.0",
+ "derive_more",
+ "parity-scale-codec",
+ "scale-info-derive",
+ "serde",
+]
+
+[[package]]
+name = "scale-info-derive"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd"
+dependencies = [
+ "proc-macro-crate 1.1.0",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -7506,14 +8624,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
- "curve25519-dalek",
- "getrandom 0.1.14",
+ "arrayvec 0.5.2",
+ "curve25519-dalek 2.1.3",
+ "getrandom 0.1.16",
"merlin",
"rand 0.7.3",
"rand_core 0.5.1",
"sha2 0.8.2",
- "subtle 2.2.3",
+ "subtle 2.4.1",
"zeroize",
]
@@ -7523,43 +8641,17 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-[[package]]
-name = "scopeguard"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
-
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-[[package]]
-name = "scroll"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb2332cb595d33f7edd5700f4cbf94892e680c7f0ae56adab58a35190b66cb1"
-dependencies = [
- "scroll_derive",
-]
-
-[[package]]
-name = "scroll_derive"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
[[package]]
name = "sct"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c"
+checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
dependencies = [
"ring",
"untrusted",
@@ -7567,18 +8659,18 @@ dependencies = [
[[package]]
name = "secrecy"
-version = "0.6.0"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9182278ed645df3477a9c27bfee0621c621aa16f6972635f7f795dae3d81070f"
+checksum = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
dependencies = [
"zeroize",
]
[[package]]
name = "security-framework"
-version = "1.0.0"
+version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b"
+checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87"
dependencies = [
"bitflags",
"core-foundation",
@@ -7589,9 +8681,9 @@ dependencies = [
[[package]]
name = "security-framework-sys"
-version = "1.0.0"
+version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7"
+checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e"
dependencies = [
"core-foundation-sys",
"libc",
@@ -7603,7 +8695,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
dependencies = [
- "semver-parser",
+ "semver-parser 0.7.0",
]
[[package]]
@@ -7612,57 +8704,63 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
- "semver-parser",
+ "semver-parser 0.7.0",
]
[[package]]
name = "semver"
-version = "0.10.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "394cec28fa623e00903caf7ba4fa6fb9a0e260280bb8cdbbba029611108a0190"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
dependencies = [
- "semver-parser",
+ "semver-parser 0.10.2",
"serde",
]
[[package]]
-name = "semver-parser"
-version = "0.7.0"
+name = "semver"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
[[package]]
-name = "send_wrapper"
-version = "0.2.0"
+name = "semver-parser"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0eddf2e8f50ced781f288c19f18621fa72a3779e3cb58dbf23b07469b0abeb4"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
-name = "send_wrapper"
-version = "0.3.0"
+name = "semver-parser"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "686ef91cf020ad8d4aca9a7047641fd6add626b7b89e14546c2b6a76781cf822"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
[[package]]
-name = "send_wrapper"
-version = "0.4.0"
+name = "serde"
+version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"
+checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+dependencies = [
+ "serde_derive",
+]
[[package]]
-name = "serde"
-version = "1.0.114"
+name = "serde_bytes"
+version = "0.11.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9"
dependencies = [
- "serde_derive",
+ "serde",
]
[[package]]
name = "serde_cbor"
-version = "0.11.1"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
+checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
dependencies = [
"half",
"serde",
@@ -7670,9 +8768,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.114"
+version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
dependencies = [
"proc-macro2",
"quote",
@@ -7681,9 +8779,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.58"
+version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a230ea9107ca2220eea9d46de97eddcb04cd00e92d13dda78e478dd33fa82bd4"
+checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8"
dependencies = [
"itoa",
"ryu",
@@ -7702,6 +8800,25 @@ dependencies = [
"opaque-debug 0.2.3",
]
+[[package]]
+name = "sha-1"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6"
+dependencies = [
+ "block-buffer 0.9.0",
+ "cfg-if 1.0.0",
+ "cpufeatures 0.2.1",
+ "digest 0.9.0",
+ "opaque-debug 0.3.0",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
[[package]]
name = "sha2"
version = "0.8.2"
@@ -7716,188 +8833,209 @@ dependencies = [
[[package]]
name = "sha2"
-version = "0.9.1"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1"
+checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa"
dependencies = [
"block-buffer 0.9.0",
- "cfg-if",
- "cpuid-bool",
+ "cfg-if 1.0.0",
+ "cpufeatures 0.2.1",
"digest 0.9.0",
"opaque-debug 0.3.0",
]
[[package]]
name = "sha3"
-version = "0.8.2"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf"
+checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
dependencies = [
- "block-buffer 0.7.3",
- "byte-tools",
- "digest 0.8.1",
+ "block-buffer 0.9.0",
+ "digest 0.9.0",
"keccak",
- "opaque-debug 0.2.3",
+ "opaque-debug 0.3.0",
]
[[package]]
name = "sharded-slab"
-version = "0.0.9"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06d5a3f5166fb5b42a5439f2eee8b9de149e235961e3eb21c5808fc3ea17ff3e"
+checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982"
dependencies = [
"lazy_static",
]
[[package]]
name = "shlex"
-version = "0.1.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
[[package]]
-name = "signal-hook-registry"
-version = "1.2.0"
+name = "signal-hook"
+version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
+checksum = "9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1"
dependencies = [
- "arc-swap",
"libc",
+ "signal-hook-registry",
]
[[package]]
-name = "signature"
-version = "1.1.0"
+name = "signal-hook-registry"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65211b7b6fc3f14ff9fc7a2011a434e3e6880585bd2e9e9396315ae24cbf7852"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+dependencies = [
+ "libc",
+]
[[package]]
-name = "slab"
-version = "0.4.2"
+name = "signature"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335"
[[package]]
-name = "slog"
-version = "2.5.2"
+name = "simba"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99"
+checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c"
dependencies = [
- "erased-serde",
+ "approx",
+ "num-complex",
+ "num-traits",
+ "paste 1.0.5",
]
[[package]]
-name = "slog-json"
-version = "2.3.0"
+name = "slab"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a"
-dependencies = [
- "chrono",
- "erased-serde",
- "serde",
- "serde_json",
- "slog",
-]
+checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590"
[[package]]
-name = "slog-scope"
-version = "4.3.0"
+name = "sled"
+version = "0.34.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6"
+checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935"
dependencies = [
- "arc-swap",
- "lazy_static",
- "slog",
+ "crc32fast",
+ "crossbeam-epoch",
+ "crossbeam-utils 0.8.5",
+ "fs2",
+ "fxhash",
+ "libc",
+ "log 0.4.14",
+ "parking_lot 0.11.2",
]
[[package]]
-name = "slog_derive"
-version = "0.2.0"
+name = "slog"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b"
+checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "erased-serde",
]
[[package]]
name = "smallvec"
-version = "0.6.13"
+version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
dependencies = [
"maybe-uninit",
]
[[package]]
name = "smallvec"
-version = "1.4.1"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+
+[[package]]
+name = "snap"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f"
+checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451"
[[package]]
name = "snow"
-version = "0.7.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32bf8474159a95551661246cda4976e89356999e3cbfef36f493dacc3fae1e8e"
+checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7"
dependencies = [
"aes-gcm",
"blake2",
"chacha20poly1305",
- "rand 0.7.3",
- "rand_core 0.5.1",
+ "rand 0.8.4",
+ "rand_core 0.6.3",
"ring",
- "rustc_version",
- "sha2 0.9.1",
- "subtle 2.2.3",
+ "rustc_version 0.3.3",
+ "sha2 0.9.8",
+ "subtle 2.4.1",
"x25519-dalek",
]
[[package]]
name = "socket2"
-version = "0.3.12"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
dependencies = [
- "cfg-if",
"libc",
- "redox_syscall",
"winapi 0.3.9",
]
[[package]]
name = "soketto"
-version = "0.4.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85457366ae0c6ce56bf05a958aef14cd38513c236568618edbcd9a8c52cb80b0"
+checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88"
dependencies = [
"base64 0.12.3",
"bytes 0.5.6",
"flate2",
- "futures 0.3.5",
+ "futures 0.3.17",
"httparse",
- "log",
+ "log 0.4.14",
"rand 0.7.3",
- "sha-1",
+ "sha-1 0.9.8",
]
[[package]]
-name = "sp-allocator"
-version = "2.0.0"
+name = "soketto"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f"
dependencies = [
- "derive_more",
- "log",
- "sp-core",
- "sp-std",
- "sp-wasm-interface",
+ "base64 0.13.0",
+ "bytes 1.1.0",
+ "futures 0.3.17",
+ "httparse",
+ "log 0.4.14",
+ "rand 0.8.4",
+ "sha-1 0.9.8",
]
[[package]]
name = "sp-api"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"hash-db",
+ "log 0.4.14",
"parity-scale-codec",
"sp-api-proc-macro",
"sp-core",
@@ -7906,14 +9044,15 @@ dependencies = [
"sp-std",
"sp-test-primitives",
"sp-version",
+ "thiserror",
]
[[package]]
name = "sp-api-proc-macro"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"blake2-rfc",
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"syn",
@@ -7921,18 +9060,20 @@ dependencies = [
[[package]]
name = "sp-api-test"
-version = "2.0.0"
+version = "2.0.1"
dependencies = [
"criterion",
+ "futures 0.3.17",
+ "log 0.4.14",
"parity-scale-codec",
"rustversion",
"sc-block-builder",
"sp-api",
- "sp-blockchain",
"sp-consensus",
"sp-core",
"sp-runtime",
"sp-state-machine",
+ "sp-tracing",
"sp-version",
"substrate-test-runtime-client",
"trybuild",
@@ -7940,9 +9081,10 @@ dependencies = [
[[package]]
name = "sp-application-crypto"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-core",
"sp-io",
@@ -7963,7 +9105,7 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"criterion",
"integer-sqrt",
@@ -7971,10 +9113,11 @@ dependencies = [
"parity-scale-codec",
"primitive-types",
"rand 0.7.3",
+ "scale-info",
"serde",
- "serde_json",
"sp-debug-derive",
"sp-std",
+ "static_assertions",
]
[[package]]
@@ -7983,16 +9126,16 @@ version = "2.0.0"
dependencies = [
"honggfuzz",
"num-bigint",
- "num-traits",
"primitive-types",
"sp-arithmetic",
]
[[package]]
name = "sp-authority-discovery"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
+ "scale-info",
"sp-api",
"sp-application-crypto",
"sp-runtime",
@@ -8001,8 +9144,9 @@ dependencies = [
[[package]]
name = "sp-authorship"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "async-trait",
"parity-scale-codec",
"sp-inherents",
"sp-runtime",
@@ -8011,7 +9155,7 @@ dependencies = [
[[package]]
name = "sp-block-builder"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -8022,61 +9166,51 @@ dependencies = [
[[package]]
name = "sp-blockchain"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "derive_more",
- "log",
- "lru 0.4.3",
+ "futures 0.3.17",
+ "log 0.4.14",
+ "lru",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "sp-block-builder",
+ "parking_lot 0.11.2",
+ "sp-api",
"sp-consensus",
"sp-database",
"sp-runtime",
"sp-state-machine",
-]
-
-[[package]]
-name = "sp-chain-spec"
-version = "2.0.0"
-dependencies = [
- "serde",
- "serde_json",
+ "thiserror",
]
[[package]]
name = "sp-consensus"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "derive_more",
- "futures 0.3.5",
+ "async-trait",
+ "futures 0.3.17",
"futures-timer 3.0.2",
- "libp2p",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "serde",
- "sp-api",
"sp-core",
"sp-inherents",
"sp-runtime",
"sp-state-machine",
"sp-std",
"sp-test-primitives",
- "sp-trie",
- "sp-utils",
"sp-version",
- "substrate-prometheus-endpoint",
- "wasm-timer",
+ "thiserror",
]
[[package]]
name = "sp-consensus-aura"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
"parity-scale-codec",
+ "scale-info",
"sp-api",
"sp-application-crypto",
+ "sp-consensus",
+ "sp-consensus-slots",
"sp-inherents",
"sp-runtime",
"sp-std",
@@ -8085,10 +9219,13 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
+ "async-trait",
"merlin",
"parity-scale-codec",
+ "scale-info",
+ "serde",
"sp-api",
"sp-application-crypto",
"sp-consensus",
@@ -8104,7 +9241,7 @@ dependencies = [
[[package]]
name = "sp-consensus-pow"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -8115,15 +9252,17 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
"sp-runtime",
]
[[package]]
name = "sp-consensus-vrf"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"parity-scale-codec",
"schnorrkel",
@@ -8134,38 +9273,37 @@ dependencies = [
[[package]]
name = "sp-core"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"base58",
"blake2-rfc",
- "byteorder 1.3.4",
+ "byteorder",
"criterion",
"dyn-clonable",
"ed25519-dalek",
- "futures 0.3.5",
+ "futures 0.3.17",
"hash-db",
"hash256-std-hasher",
"hex",
"hex-literal",
"impl-serde",
"lazy_static",
- "libsecp256k1",
- "log",
+ "libsecp256k1 0.6.0",
+ "log 0.4.14",
"merlin",
"num-traits",
"parity-scale-codec",
"parity-util-mem",
- "parking_lot 0.10.2",
- "pretty_assertions",
+ "parking_lot 0.11.2",
"primitive-types",
"rand 0.7.3",
- "rand_chacha 0.2.2",
"regex",
+ "scale-info",
"schnorrkel",
"secrecy",
"serde",
"serde_json",
- "sha2 0.8.2",
+ "sha2 0.9.8",
"sp-debug-derive",
"sp-externalities",
"sp-runtime-interface",
@@ -8173,6 +9311,7 @@ dependencies = [
"sp-std",
"sp-storage",
"substrate-bip39",
+ "thiserror",
"tiny-bip39",
"tiny-keccak",
"twox-hash",
@@ -8182,15 +9321,15 @@ dependencies = [
[[package]]
name = "sp-database"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"kvdb",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
]
[[package]]
name = "sp-debug-derive"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"proc-macro2",
"quote",
@@ -8199,7 +9338,7 @@ dependencies = [
[[package]]
name = "sp-externalities"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -8209,11 +9348,12 @@ dependencies = [
[[package]]
name = "sp-finality-grandpa"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"finality-grandpa",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
+ "scale-info",
"serde",
"sp-api",
"sp-application-crypto",
@@ -8225,28 +9365,32 @@ dependencies = [
[[package]]
name = "sp-inherents"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "derive_more",
+ "async-trait",
+ "futures 0.3.17",
+ "impl-trait-for-tuples",
"parity-scale-codec",
- "parking_lot 0.10.2",
"sp-core",
+ "sp-runtime",
"sp-std",
+ "thiserror",
]
[[package]]
name = "sp-io"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"hash-db",
- "libsecp256k1",
- "log",
+ "libsecp256k1 0.6.0",
+ "log 0.4.14",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"sp-core",
"sp-externalities",
"sp-keystore",
+ "sp-maybe-compressed-blob",
"sp-runtime-interface",
"sp-state-machine",
"sp-std",
@@ -8259,55 +9403,55 @@ dependencies = [
[[package]]
name = "sp-keyring"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"lazy_static",
"sp-core",
"sp-runtime",
- "strum",
+ "strum 0.20.0",
]
[[package]]
name = "sp-keystore"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"merlin",
"parity-scale-codec",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.2",
"rand 0.7.3",
"rand_chacha 0.2.2",
"schnorrkel",
+ "serde",
"sp-core",
"sp-externalities",
]
+[[package]]
+name = "sp-maybe-compressed-blob"
+version = "4.0.0-dev"
+dependencies = [
+ "zstd",
+]
+
[[package]]
name = "sp-npos-elections"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
"rand 0.7.3",
+ "scale-info",
"serde",
"sp-arithmetic",
- "sp-npos-elections-compact",
+ "sp-core",
+ "sp-npos-elections-solution-type",
"sp-runtime",
"sp-std",
"substrate-test-utils",
]
-[[package]]
-name = "sp-npos-elections-compact"
-version = "2.0.0"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
[[package]]
name = "sp-npos-elections-fuzzer"
version = "2.0.0-alpha.5"
@@ -8315,33 +9459,48 @@ dependencies = [
"honggfuzz",
"parity-scale-codec",
"rand 0.7.3",
+ "scale-info",
"sp-npos-elections",
"sp-runtime",
- "sp-std",
+ "structopt",
+]
+
+[[package]]
+name = "sp-npos-elections-solution-type"
+version = "4.0.0-dev"
+dependencies = [
+ "parity-scale-codec",
+ "proc-macro-crate 1.1.0",
+ "proc-macro2",
+ "quote",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-npos-elections",
+ "syn",
+ "trybuild",
]
[[package]]
name = "sp-offchain"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"sp-api",
"sp-core",
"sp-runtime",
- "sp-state-machine",
]
[[package]]
name = "sp-panic-handler"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"backtrace",
- "log",
]
[[package]]
name = "sp-rpc"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "rustc-hash",
"serde",
"serde_json",
"sp-core",
@@ -8349,31 +9508,35 @@ dependencies = [
[[package]]
name = "sp-runtime"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"either",
"hash256-std-hasher",
"impl-trait-for-tuples",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"parity-util-mem",
- "paste 0.1.18",
+ "paste 1.0.5",
"rand 0.7.3",
+ "scale-info",
"serde",
"serde_json",
+ "sp-api",
"sp-application-crypto",
"sp-arithmetic",
"sp-core",
- "sp-inherents",
"sp-io",
"sp-state-machine",
"sp-std",
+ "sp-tracing",
+ "substrate-test-runtime-client",
]
[[package]]
name = "sp-runtime-interface"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "impl-trait-for-tuples",
"parity-scale-codec",
"primitive-types",
"rustversion",
@@ -8393,10 +9556,10 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"Inflector",
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
"proc-macro2",
"quote",
"syn",
@@ -8407,7 +9570,7 @@ name = "sp-runtime-interface-test"
version = "2.0.0"
dependencies = [
"sc-executor",
- "sp-core",
+ "sc-executor-common",
"sp-io",
"sp-runtime",
"sp-runtime-interface",
@@ -8426,7 +9589,7 @@ dependencies = [
"sp-io",
"sp-runtime-interface",
"sp-std",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
]
[[package]]
@@ -8437,14 +9600,15 @@ dependencies = [
"sp-io",
"sp-runtime-interface",
"sp-std",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
]
[[package]]
name = "sp-sandbox"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"assert_matches",
+ "log 0.4.14",
"parity-scale-codec",
"sp-core",
"sp-io",
@@ -8456,7 +9620,7 @@ dependencies = [
[[package]]
name = "sp-serializer"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"serde",
"serde_json",
@@ -8464,9 +9628,10 @@ dependencies = [
[[package]]
name = "sp-session"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
+ "scale-info",
"sp-api",
"sp-core",
"sp-runtime",
@@ -8476,43 +9641,46 @@ dependencies = [
[[package]]
name = "sp-staking"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"parity-scale-codec",
+ "scale-info",
"sp-runtime",
"sp-std",
]
[[package]]
name = "sp-state-machine"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
"hash-db",
"hex-literal",
- "log",
+ "log 0.4.14",
"num-traits",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "pretty_assertions",
+ "parking_lot 0.11.2",
+ "pretty_assertions 0.6.1",
"rand 0.7.3",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
"sp-core",
"sp-externalities",
"sp-panic-handler",
"sp-runtime",
"sp-std",
"sp-trie",
+ "thiserror",
+ "tracing",
"trie-db",
"trie-root",
]
[[package]]
name = "sp-std"
-version = "2.0.0"
+version = "4.0.0-dev"
[[package]]
name = "sp-storage"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -8524,9 +9692,9 @@ dependencies = [
[[package]]
name = "sp-tasks"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"sp-core",
"sp-externalities",
@@ -8549,23 +9717,30 @@ dependencies = [
[[package]]
name = "sp-timestamp"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "impl-trait-for-tuples",
+ "async-trait",
+ "futures-timer 3.0.2",
+ "log 0.4.14",
"parity-scale-codec",
"sp-api",
"sp-inherents",
"sp-runtime",
"sp-std",
- "wasm-timer",
+ "thiserror",
]
[[package]]
name = "sp-tracing"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "log",
+ "erased-serde",
+ "log 0.4.14",
"parity-scale-codec",
+ "parking_lot 0.10.2",
+ "serde",
+ "serde_json",
+ "slog",
"sp-std",
"tracing",
"tracing-core",
@@ -8574,27 +9749,37 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "derive_more",
- "futures 0.3.5",
- "log",
- "parity-scale-codec",
- "serde",
"sp-api",
- "sp-blockchain",
"sp-runtime",
]
+[[package]]
+name = "sp-transaction-storage-proof"
+version = "4.0.0-dev"
+dependencies = [
+ "async-trait",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+]
+
[[package]]
name = "sp-trie"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"criterion",
"hash-db",
"hex-literal",
"memory-db",
"parity-scale-codec",
+ "scale-info",
"sp-core",
"sp-runtime",
"sp-std",
@@ -8604,31 +9789,35 @@ dependencies = [
"trie-standardmap",
]
-[[package]]
-name = "sp-utils"
-version = "2.0.0"
-dependencies = [
- "futures 0.3.5",
- "futures-core",
- "futures-timer 3.0.2",
- "lazy_static",
- "prometheus",
-]
-
[[package]]
name = "sp-version"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"impl-serde",
"parity-scale-codec",
+ "parity-wasm 0.42.2",
+ "scale-info",
"serde",
"sp-runtime",
"sp-std",
+ "sp-version-proc-macro",
+ "thiserror",
+]
+
+[[package]]
+name = "sp-version-proc-macro"
+version = "4.0.0-dev"
+dependencies = [
+ "parity-scale-codec",
+ "proc-macro2",
+ "quote",
+ "sp-version",
+ "syn",
]
[[package]]
name = "sp-wasm-interface"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -8656,51 +9845,34 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "statrs"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10102ac8d55e35db2b3fafc26f81ba8647da2e15879ab686a67e6d19af2685e8"
-dependencies = [
- "rand 0.5.6",
-]
-
-[[package]]
-name = "stream-cipher"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
-dependencies = [
- "generic-array 0.12.3",
-]
-
-[[package]]
-name = "stream-cipher"
-version = "0.4.1"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88"
+checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05"
dependencies = [
- "generic-array 0.14.3",
+ "approx",
+ "lazy_static",
+ "nalgebra",
+ "num-traits",
+ "rand 0.8.4",
]
[[package]]
-name = "string"
-version = "0.2.1"
+name = "strsim"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
-dependencies = [
- "bytes 0.4.12",
-]
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "strsim"
-version = "0.8.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "structopt"
-version = "0.3.15"
+version = "0.3.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa"
dependencies = [
"clap",
"lazy_static",
@@ -8709,12 +9881,12 @@ dependencies = [
[[package]]
name = "structopt-derive"
-version = "0.4.8"
+version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba"
dependencies = [
"heck",
- "proc-macro-error",
+ "proc-macro-error 1.0.4",
"proc-macro2",
"quote",
"syn",
@@ -8722,18 +9894,36 @@ dependencies = [
[[package]]
name = "strum"
-version = "0.16.0"
+version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6138f8f88a16d90134763314e3fc76fa3ed6a7db4725d6acf9a3ef95a3188d22"
+checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
dependencies = [
- "strum_macros",
+ "strum_macros 0.20.1",
]
+[[package]]
+name = "strum"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2"
+
[[package]]
name = "strum_macros"
-version = "0.16.0"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81"
+checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
dependencies = [
"heck",
"proc-macro2",
@@ -8743,66 +9933,37 @@ dependencies = [
[[package]]
name = "subkey"
-version = "2.0.0"
+version = "2.0.1"
dependencies = [
- "frame-system",
- "node-primitives",
- "node-runtime",
"sc-cli",
- "sp-core",
"structopt",
- "substrate-frame-cli",
]
[[package]]
name = "substrate-bip39"
-version = "0.4.2"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236"
+checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c"
dependencies = [
- "hmac",
- "pbkdf2",
+ "hmac 0.11.0",
+ "pbkdf2 0.8.0",
"schnorrkel",
- "sha2 0.8.2",
+ "sha2 0.9.8",
"zeroize",
]
-[[package]]
-name = "substrate-browser-utils"
-version = "0.8.0"
-dependencies = [
- "chrono",
- "console_error_panic_hook",
- "console_log",
- "futures 0.1.29",
- "futures 0.3.5",
- "futures-timer 3.0.2",
- "js-sys",
- "kvdb-web",
- "libp2p-wasm-ext",
- "log",
- "rand 0.6.5",
- "rand 0.7.3",
- "sc-chain-spec",
- "sc-informant",
- "sc-network",
- "sc-service",
- "sp-database",
- "wasm-bindgen",
- "wasm-bindgen-futures",
-]
-
[[package]]
name = "substrate-build-script-utils"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"platforms",
]
[[package]]
name = "substrate-frame-cli"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
+ "frame-support",
"frame-system",
"sc-cli",
"sp-core",
@@ -8812,65 +9973,63 @@ dependencies = [
[[package]]
name = "substrate-frame-rpc-support"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"frame-support",
"frame-system",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-client-transports",
- "jsonrpc-core",
"parity-scale-codec",
"sc-rpc-api",
+ "scale-info",
"serde",
"sp-storage",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "substrate-frame-rpc-system"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
"frame-system-rpc-runtime-api",
- "futures 0.3.5",
+ "futures 0.3.17",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
- "log",
+ "log 0.4.14",
"parity-scale-codec",
"sc-client-api",
"sc-rpc-api",
"sc-transaction-pool",
- "serde",
+ "sc-transaction-pool-api",
"sp-api",
"sp-block-builder",
"sp-blockchain",
"sp-core",
"sp-runtime",
"sp-tracing",
- "sp-transaction-pool",
"substrate-test-runtime-client",
]
[[package]]
name = "substrate-prometheus-endpoint"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
"async-std",
"derive_more",
"futures-util",
- "hyper 0.13.7",
- "log",
+ "hyper 0.14.13",
+ "log 0.4.14",
"prometheus",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "substrate-test-client"
-version = "2.0.0"
+version = "2.0.1"
dependencies = [
- "futures 0.1.29",
- "futures 0.3.5",
- "hash-db",
+ "async-trait",
+ "futures 0.3.17",
"hex",
"parity-scale-codec",
"sc-client-api",
@@ -8878,6 +10037,7 @@ dependencies = [
"sc-consensus",
"sc-executor",
"sc-light",
+ "sc-offchain",
"sc-service",
"serde",
"serde_json",
@@ -8894,12 +10054,12 @@ dependencies = [
name = "substrate-test-runtime"
version = "2.0.0"
dependencies = [
- "cfg-if",
- "frame-executive",
+ "cfg-if 1.0.0",
"frame-support",
"frame-system",
"frame-system-rpc-runtime-api",
- "log",
+ "futures 0.3.17",
+ "log 0.4.14",
"memory-db",
"pallet-babe",
"pallet-timestamp",
@@ -8908,10 +10068,12 @@ dependencies = [
"sc-block-builder",
"sc-executor",
"sc-service",
+ "scale-info",
"serde",
"sp-api",
"sp-application-crypto",
"sp-block-builder",
+ "sp-consensus",
"sp-consensus-aura",
"sp-consensus-babe",
"sp-core",
@@ -8930,7 +10092,7 @@ dependencies = [
"sp-trie",
"sp-version",
"substrate-test-runtime-client",
- "substrate-wasm-builder-runner",
+ "substrate-wasm-builder",
"trie-db",
]
@@ -8938,13 +10100,12 @@ dependencies = [
name = "substrate-test-runtime-client"
version = "2.0.0"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"parity-scale-codec",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
"sc-light",
- "sc-service",
"sp-api",
"sp-blockchain",
"sp-consensus",
@@ -8959,32 +10120,33 @@ name = "substrate-test-runtime-transaction-pool"
version = "2.0.0"
dependencies = [
"derive_more",
- "futures 0.3.5",
+ "futures 0.3.17",
"parity-scale-codec",
- "parking_lot 0.10.2",
- "sc-transaction-graph",
+ "parking_lot 0.11.2",
+ "sc-transaction-pool",
+ "sc-transaction-pool-api",
"sp-blockchain",
"sp-runtime",
- "sp-transaction-pool",
"substrate-test-runtime-client",
]
[[package]]
name = "substrate-test-utils"
-version = "2.0.0"
+version = "4.0.0-dev"
dependencies = [
- "futures 0.3.5",
+ "futures 0.3.17",
"sc-service",
"substrate-test-utils-derive",
- "tokio 0.2.22",
+ "tokio",
"trybuild",
]
[[package]]
name = "substrate-test-utils-derive"
-version = "0.8.0"
+version = "0.10.0-dev"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.1.0",
+ "proc-macro2",
"quote",
"syn",
]
@@ -8995,29 +10157,23 @@ version = "0.1.0"
dependencies = [
"sc-service",
"substrate-test-utils",
- "tokio 0.2.22",
+ "tokio",
]
[[package]]
name = "substrate-wasm-builder"
-version = "2.0.1"
+version = "5.0.0-dev"
dependencies = [
"ansi_term 0.12.1",
- "atty",
"build-helper",
"cargo_metadata",
- "fs2",
- "itertools 0.8.2",
+ "sp-maybe-compressed-blob",
"tempfile",
"toml",
"walkdir",
"wasm-gc-api",
]
-[[package]]
-name = "substrate-wasm-builder-runner"
-version = "2.0.0"
-
[[package]]
name = "subtle"
version = "1.0.0"
@@ -9026,15 +10182,15 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
[[package]]
name = "subtle"
-version = "2.2.3"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1"
+checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.35"
+version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
+checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84"
dependencies = [
"proc-macro2",
"quote",
@@ -9043,9 +10199,9 @@ dependencies = [
[[package]]
name = "syn-mid"
-version = "0.5.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+checksum = "baa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9"
dependencies = [
"proc-macro2",
"quote",
@@ -9054,9 +10210,9 @@ dependencies = [
[[package]]
name = "synstructure"
-version = "0.12.4"
+version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
+checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa"
dependencies = [
"proc-macro2",
"quote",
@@ -9065,51 +10221,110 @@ dependencies = [
]
[[package]]
-name = "take_mut"
-version = "0.2.2"
+name = "tap"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "target-lexicon"
-version = "0.10.0"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95"
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d"
+checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff"
[[package]]
name = "tempfile"
-version = "3.1.0"
+version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
- "rand 0.7.3",
- "redox_syscall",
+ "rand 0.8.4",
+ "redox_syscall 0.2.10",
"remove_dir_all",
"winapi 0.3.9",
]
[[package]]
name = "termcolor"
-version = "1.1.0"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
dependencies = [
"winapi-util",
]
[[package]]
-name = "test-case"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a605baa797821796a751f4a959e1206079b24a4b7e1ed302b7d785d81a9276c9"
+name = "test-runner"
+version = "0.9.0"
+dependencies = [
+ "frame-system",
+ "futures 0.3.17",
+ "jsonrpc-core",
+ "log 0.4.14",
+ "num-traits",
+ "sc-basic-authorship",
+ "sc-cli",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-consensus-babe",
+ "sc-consensus-manual-seal",
+ "sc-executor",
+ "sc-finality-grandpa",
+ "sc-informant",
+ "sc-network",
+ "sc-rpc",
+ "sc-rpc-server",
+ "sc-service",
+ "sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-externalities",
+ "sp-finality-grandpa",
+ "sp-inherents",
+ "sp-keyring",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-runtime-interface",
+ "sp-session",
+ "sp-state-machine",
+ "sp-transaction-pool",
+ "sp-wasm-interface",
+ "tokio",
+]
+
+[[package]]
+name = "test-runner-example"
+version = "0.1.0"
dependencies = [
- "lazy_static",
- "proc-macro2",
- "quote",
- "syn",
- "version_check",
+ "frame-benchmarking",
+ "frame-system",
+ "node-cli",
+ "node-primitives",
+ "node-runtime",
+ "pallet-transaction-payment",
+ "sc-consensus",
+ "sc-consensus-babe",
+ "sc-consensus-manual-seal",
+ "sc-executor",
+ "sc-finality-grandpa",
+ "sc-service",
+ "sp-consensus-babe",
+ "sp-keyring",
+ "sp-runtime",
+ "test-runner",
]
[[package]]
@@ -9123,18 +10338,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.20"
+version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
+checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.20"
+version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
+checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c"
dependencies = [
"proc-macro2",
"quote",
@@ -9143,11 +10358,11 @@ dependencies = [
[[package]]
name = "thread_local"
-version = "1.0.1"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
dependencies = [
- "lazy_static",
+ "once_cell",
]
[[package]]
@@ -9161,28 +10376,31 @@ dependencies = [
[[package]]
name = "time"
-version = "0.1.43"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
"winapi 0.3.9",
]
[[package]]
name = "tiny-bip39"
-version = "0.7.3"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2"
+checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8"
dependencies = [
- "failure",
- "hmac",
- "once_cell 1.4.1",
- "pbkdf2",
+ "anyhow",
+ "hmac 0.8.1",
+ "once_cell",
+ "pbkdf2 0.4.0",
"rand 0.7.3",
"rustc-hash",
- "sha2 0.8.2",
+ "sha2 0.9.8",
+ "thiserror",
"unicode-normalization",
+ "zeroize",
]
[[package]]
@@ -9196,9 +10414,9 @@ dependencies = [
[[package]]
name = "tinytemplate"
-version = "1.1.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d3dc76004a03cec1c5932bca4cdc2e39aaa798e3f82363dd94f9adf6098c12f"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
dependencies = [
"serde",
"serde_json",
@@ -9206,68 +10424,39 @@ dependencies = [
[[package]]
name = "tinyvec"
-version = "0.3.3"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986"
+dependencies = [
+ "tinyvec_macros",
+]
[[package]]
-name = "tokio"
-version = "0.1.22"
+name = "tinyvec_macros"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "mio",
- "num_cpus",
- "tokio-codec",
- "tokio-current-thread",
- "tokio-executor 0.1.10",
- "tokio-fs",
- "tokio-io",
- "tokio-reactor",
- "tokio-sync 0.1.8",
- "tokio-tcp",
- "tokio-threadpool",
- "tokio-timer",
- "tokio-udp",
- "tokio-uds",
-]
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "0.2.22"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
+checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce"
dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "iovec",
- "lazy_static",
+ "autocfg 1.0.1",
+ "bytes 1.1.0",
"libc",
"memchr",
- "mio",
- "mio-uds",
+ "mio 0.7.13",
"num_cpus",
- "pin-project-lite",
+ "once_cell",
+ "parking_lot 0.11.2",
+ "pin-project-lite 0.2.7",
"signal-hook-registry",
- "slab",
"tokio-macros",
"winapi 0.3.9",
]
-[[package]]
-name = "tokio-buf"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
-dependencies = [
- "bytes 0.4.12",
- "either",
- "futures 0.1.29",
-]
-
[[package]]
name = "tokio-codec"
version = "0.1.2"
@@ -9275,50 +10464,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.29",
+ "futures 0.1.31",
"tokio-io",
]
-[[package]]
-name = "tokio-current-thread"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
-dependencies = [
- "futures 0.1.29",
- "tokio-executor 0.1.10",
-]
-
[[package]]
name = "tokio-executor"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
dependencies = [
- "crossbeam-utils",
- "futures 0.1.29",
-]
-
-[[package]]
-name = "tokio-executor"
-version = "0.2.0-alpha.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ee9ceecf69145923834ea73f32ba40c790fd877b74a7817dd0b089f1eb9c7c8"
-dependencies = [
- "futures-util-preview",
- "lazy_static",
- "tokio-sync 0.2.0-alpha.6",
-]
-
-[[package]]
-name = "tokio-fs"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
-dependencies = [
- "futures 0.1.29",
- "tokio-io",
- "tokio-threadpool",
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
]
[[package]]
@@ -9328,15 +10485,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.29",
- "log",
+ "futures 0.1.31",
+ "log 0.4.14",
]
[[package]]
name = "tokio-macros"
-version = "0.2.5"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389"
+checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110"
dependencies = [
"proc-macro2",
"quote",
@@ -9344,16 +10501,13 @@ dependencies = [
]
[[package]]
-name = "tokio-named-pipes"
-version = "0.1.0"
+name = "tokio-native-tls"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae"
+checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "mio",
- "mio-named-pipes",
- "tokio 0.1.22",
+ "native-tls",
+ "tokio",
]
[[package]]
@@ -9362,38 +10516,39 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
dependencies = [
- "crossbeam-utils",
- "futures 0.1.29",
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
"lazy_static",
- "log",
- "mio",
+ "log 0.4.14",
+ "mio 0.6.23",
"num_cpus",
"parking_lot 0.9.0",
"slab",
- "tokio-executor 0.1.10",
+ "tokio-executor",
"tokio-io",
- "tokio-sync 0.1.8",
+ "tokio-sync",
]
[[package]]
name = "tokio-rustls"
-version = "0.14.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9"
+checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
dependencies = [
- "futures-core",
"rustls",
- "tokio 0.2.22",
+ "tokio",
"webpki",
]
[[package]]
-name = "tokio-service"
-version = "0.1.0"
+name = "tokio-stream"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
+checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f"
dependencies = [
- "futures 0.1.29",
+ "futures-core",
+ "pin-project-lite 0.2.7",
+ "tokio",
]
[[package]]
@@ -9403,18 +10558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
dependencies = [
"fnv",
- "futures 0.1.29",
-]
-
-[[package]]
-name = "tokio-sync"
-version = "0.2.0-alpha.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f1aaeb685540f7407ea0e27f1c9757d258c7c6bf4e3eb19da6fc59b747239d2"
-dependencies = [
- "fnv",
- "futures-core-preview",
- "futures-util-preview",
+ "futures 0.1.31",
]
[[package]]
@@ -9424,122 +10568,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.29",
+ "futures 0.1.31",
"iovec",
- "mio",
- "tokio-io",
- "tokio-reactor",
-]
-
-[[package]]
-name = "tokio-threadpool"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
-dependencies = [
- "crossbeam-deque",
- "crossbeam-queue",
- "crossbeam-utils",
- "futures 0.1.29",
- "lazy_static",
- "log",
- "num_cpus",
- "slab",
- "tokio-executor 0.1.10",
-]
-
-[[package]]
-name = "tokio-timer"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
-dependencies = [
- "crossbeam-utils",
- "futures 0.1.29",
- "slab",
- "tokio-executor 0.1.10",
-]
-
-[[package]]
-name = "tokio-udp"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "log",
- "mio",
- "tokio-codec",
+ "mio 0.6.23",
"tokio-io",
"tokio-reactor",
]
[[package]]
-name = "tokio-uds"
-version = "0.2.7"
+name = "tokio-tls"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
+checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.29",
- "iovec",
- "libc",
- "log",
- "mio",
- "mio-uds",
- "tokio-codec",
+ "futures 0.1.31",
+ "native-tls",
"tokio-io",
- "tokio-reactor",
]
[[package]]
name = "tokio-util"
-version = "0.3.1"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
+checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.1.0",
"futures-core",
+ "futures-io",
"futures-sink",
- "log",
- "pin-project-lite",
- "tokio 0.2.22",
+ "log 0.4.14",
+ "pin-project-lite 0.2.7",
+ "tokio",
]
[[package]]
name = "toml"
-version = "0.5.6"
+version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
dependencies = [
"serde",
]
[[package]]
name = "tower-service"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
+checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
[[package]]
name = "tracing"
-version = "0.1.21"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
+checksum = "c2ba9ab62b7d6497a8638dfda5e5c4fb3b2d5a7fca4118f2b96151c8ef1a437e"
dependencies = [
- "cfg-if",
- "log",
- "pin-project-lite",
+ "cfg-if 1.0.0",
+ "log 0.4.14",
+ "pin-project-lite 0.2.7",
"tracing-attributes",
"tracing-core",
]
[[package]]
name = "tracing-attributes"
-version = "0.1.11"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
+checksum = "98863d0dd09fa59a1b79c6750ad80dbda6b75f4e71c437a6a1a8cb91a8bcbd77"
dependencies = [
"proc-macro2",
"quote",
@@ -9548,31 +10642,33 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.17"
+version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
+checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf"
dependencies = [
"lazy_static",
]
[[package]]
name = "tracing-futures"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
- "pin-project",
+ "futures 0.3.17",
+ "futures-task",
+ "pin-project 1.0.8",
"tracing",
]
[[package]]
name = "tracing-log"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9"
+checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
dependencies = [
"lazy_static",
- "log",
+ "log 0.4.14",
"tracing-core",
]
@@ -9588,9 +10684,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.2.13"
+version = "0.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ef0a5e15477aa303afbfac3a44cba9b6430fdaad52423b1e6c0dbbe28c3eedd"
+checksum = "56c42e73a9d277d4d2b6a88389a137ccf3c58599660b17e8f5fc39305e490669"
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -9600,7 +10696,7 @@ dependencies = [
"serde",
"serde_json",
"sharded-slab",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
"thread_local",
"tracing",
"tracing-core",
@@ -9608,6 +10704,12 @@ dependencies = [
"tracing-serde",
]
+[[package]]
+name = "traitobject"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
+
[[package]]
name = "treeline"
version = "0.1.0"
@@ -9616,9 +10718,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
[[package]]
name = "trie-bench"
-version = "0.25.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af2cc37cac8cc158119982c920cbb9b8243d8540c1d13b8aca84484bfc83a426"
+checksum = "4edd9bdf0c2e08fd77c0fb2608179cac7ebed997ae18f58d47a2d96425ff51f0"
dependencies = [
"criterion",
"hash-db",
@@ -9632,15 +10734,15 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.22.0"
+version = "0.22.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39f1a9a9252d38c5337cf0c5392988821a5cf1b2103245016968f2ab41de9e38"
+checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa"
dependencies = [
"hash-db",
- "hashbrown 0.8.1",
- "log",
+ "hashbrown",
+ "log 0.4.14",
"rustc-hex",
- "smallvec 1.4.1",
+ "smallvec 1.6.1",
]
[[package]]
@@ -9662,17 +10764,81 @@ dependencies = [
"keccak-hasher",
]
+[[package]]
+name = "trust-dns-proto"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0d7f5db438199a6e2609debe3f69f808d074e0a2888ee0bccb45fe234d03f4"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.3",
+ "ipnet",
+ "lazy_static",
+ "log 0.4.14",
+ "rand 0.8.4",
+ "smallvec 1.6.1",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "url 2.2.2",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6ad17b608a64bd0735e67bde16b0636f8aa8591f831a25d18443ed00a699770"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "log 0.4.14",
+ "lru-cache",
+ "parking_lot 0.11.2",
+ "resolv-conf",
+ "smallvec 1.6.1",
+ "thiserror",
+ "tokio",
+ "trust-dns-proto",
+]
+
[[package]]
name = "try-lock"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+[[package]]
+name = "try-runtime-cli"
+version = "0.10.0-dev"
+dependencies = [
+ "log 0.4.14",
+ "parity-scale-codec",
+ "remote-externalities",
+ "sc-chain-spec",
+ "sc-cli",
+ "sc-executor",
+ "sc-service",
+ "serde",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-state-machine",
+ "structopt",
+]
+
[[package]]
name = "trybuild"
-version = "1.0.35"
+version = "1.0.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7d30fe369fd650072b352b1a9cb9587669de6b89be3b8225544012c1c45292d"
+checksum = "5bdaf2a1d317f3d58b44b31c7f6436b9b9acafe7bddfeace50897c2b804d7792"
dependencies = [
"dissimilar",
"glob",
@@ -9685,84 +10851,104 @@ dependencies = [
[[package]]
name = "twox-hash"
-version = "1.5.0"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56"
+checksum = "1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78e"
dependencies = [
- "rand 0.7.3",
+ "cfg-if 1.0.0",
+ "rand 0.8.4",
+ "static_assertions",
]
+[[package]]
+name = "typeable"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
+
[[package]]
name = "typenum"
-version = "1.12.0"
+version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
name = "uint"
-version = "0.8.3"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "173cd16430c206dc1a430af8a89a0e9c076cf15cb42b4aedb10e8cc8fee73681"
+checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f"
dependencies = [
- "byteorder 1.3.4",
+ "byteorder",
"crunchy",
- "rustc-hex",
+ "hex",
"static_assertions",
]
+[[package]]
+name = "unicase"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+dependencies = [
+ "version_check 0.1.5",
+]
+
[[package]]
name = "unicase"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
dependencies = [
- "version_check",
+ "version_check 0.9.3",
]
[[package]]
name = "unicode-bidi"
-version = "0.3.4"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-dependencies = [
- "matches",
-]
+checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
[[package]]
name = "unicode-normalization"
-version = "0.1.13"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
dependencies = [
"tinyvec",
]
[[package]]
name = "unicode-segmentation"
-version = "1.6.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
[[package]]
name = "unicode-width"
-version = "0.1.8"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]]
name = "unicode-xid"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]]
name = "universal-hash"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
+checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
dependencies = [
- "generic-array 0.14.3",
- "subtle 2.2.3",
+ "generic-array 0.14.4",
+ "subtle 2.4.1",
]
[[package]]
@@ -9773,22 +10959,30 @@ checksum = "f67332660eb59a6f1eb24ff1220c9e8d01738a8503c6002e30bcfe4bd9f2b4a9"
[[package]]
name = "unsigned-varint"
-version = "0.4.0"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35"
+
+[[package]]
+name = "unsigned-varint"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "669d776983b692a906c881fcd0cfb34271a48e197e4d6cb8df32b05bfc3d3fa5"
+checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2"
dependencies = [
- "bytes 0.5.6",
+ "asynchronous-codec 0.5.0",
+ "bytes 1.1.0",
"futures-io",
"futures-util",
- "futures_codec",
]
[[package]]
name = "unsigned-varint"
-version = "0.5.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35"
+checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f"
dependencies = [
+ "asynchronous-codec 0.6.0",
+ "bytes 1.1.0",
"futures-io",
"futures-util",
]
@@ -9812,26 +11006,31 @@ dependencies = [
[[package]]
name = "url"
-version = "2.1.1"
+version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
dependencies = [
- "idna 0.2.0",
+ "form_urlencoded",
+ "idna 0.2.3",
"matches",
"percent-encoding 2.1.0",
]
[[package]]
-name = "vcpkg"
-version = "0.2.10"
+name = "value-bag"
+version = "1.0.0-alpha.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae"
+dependencies = [
+ "ctor",
+ "version_check 0.9.3",
+]
[[package]]
-name = "vec-arena"
-version = "1.0.0"
+name = "vcpkg"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
@@ -9841,9 +11040,15 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "version_check"
-version = "0.9.2"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
[[package]]
name = "void"
@@ -9862,39 +11067,28 @@ dependencies = [
[[package]]
name = "waker-fn"
-version = "1.0.0"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9571542c2ce85ce642e6b58b3364da2fb53526360dfb7c211add4f5c23105ff7"
+checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
[[package]]
name = "walkdir"
-version = "2.3.1"
+version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
dependencies = [
"same-file",
"winapi 0.3.9",
"winapi-util",
]
-[[package]]
-name = "want"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
-dependencies = [
- "futures 0.1.29",
- "log",
- "try-lock",
-]
-
[[package]]
name = "want"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
dependencies = [
- "log",
+ "log 0.4.14",
"try-lock",
]
@@ -9904,27 +11098,31 @@ version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
[[package]]
name = "wasm-bindgen"
-version = "0.2.67"
+version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c"
+checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
dependencies = [
- "cfg-if",
- "serde",
- "serde_json",
+ "cfg-if 1.0.0",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.67"
+version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0"
+checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
dependencies = [
"bumpalo",
"lazy_static",
- "log",
+ "log 0.4.14",
"proc-macro2",
"quote",
"syn",
@@ -9933,11 +11131,11 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.12"
+version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a369c5e1dfb7569e14d62af4da642a3cbc2f9a3652fe586e26ac22222aa4b04"
+checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"js-sys",
"wasm-bindgen",
"web-sys",
@@ -9945,9 +11143,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.67"
+version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2"
+checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -9955,9 +11153,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.67"
+version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556"
+checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
dependencies = [
"proc-macro2",
"quote",
@@ -9968,190 +11166,394 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.67"
+version = "0.2.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
+
+[[package]]
+name = "wasm-gc-api"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092"
+checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9"
+dependencies = [
+ "log 0.4.14",
+ "parity-wasm 0.32.0",
+ "rustc-demangle",
+]
[[package]]
-name = "wasm-bindgen-test"
-version = "0.3.12"
+name = "wasm-timer"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd8e9dad8040e378f0696b017570c6bc929aac373180e06b3d67ac5059c52da3"
+checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
dependencies = [
- "console_error_panic_hook",
+ "futures 0.3.17",
"js-sys",
- "scoped-tls",
+ "parking_lot 0.11.2",
+ "pin-utils",
"wasm-bindgen",
"wasm-bindgen-futures",
- "wasm-bindgen-test-macro",
+ "web-sys",
+]
+
+[[package]]
+name = "wasmer"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a70cfae554988d904d64ca17ab0e7cd652ee5c8a0807094819c1ea93eb9d6866"
+dependencies = [
+ "cfg-if 0.1.10",
+ "indexmap",
+ "more-asserts",
+ "target-lexicon 0.11.2",
+ "thiserror",
+ "wasmer-compiler",
+ "wasmer-compiler-cranelift",
+ "wasmer-derive",
+ "wasmer-engine",
+ "wasmer-engine-jit",
+ "wasmer-engine-native",
+ "wasmer-types",
+ "wasmer-vm",
+ "wat",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "wasmer-compiler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b7732a9cab472bd921d5a0c422f45b3d03f62fa2c40a89e0770cef6d47e383e"
+dependencies = [
+ "enumset",
+ "serde",
+ "serde_bytes",
+ "smallvec 1.6.1",
+ "target-lexicon 0.11.2",
+ "thiserror",
+ "wasmer-types",
+ "wasmer-vm",
+ "wasmparser 0.65.0",
+]
+
+[[package]]
+name = "wasmer-compiler-cranelift"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48cb9395f094e1d81534f4c5e330ed4cdb424e8df870d29ad585620284f5fddb"
+dependencies = [
+ "cranelift-codegen 0.68.0",
+ "cranelift-frontend 0.68.0",
+ "gimli 0.22.0",
+ "more-asserts",
+ "rayon",
+ "serde",
+ "smallvec 1.6.1",
+ "tracing",
+ "wasmer-compiler",
+ "wasmer-types",
+ "wasmer-vm",
+]
+
+[[package]]
+name = "wasmer-compiler-singlepass"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "426ae6ef0f606ca815510f3e2ef6f520e217514bfb7a664defe180b9a9e75d07"
+dependencies = [
+ "byteorder",
+ "dynasm",
+ "dynasmrt",
+ "lazy_static",
+ "more-asserts",
+ "rayon",
+ "serde",
+ "smallvec 1.6.1",
+ "wasmer-compiler",
+ "wasmer-types",
+ "wasmer-vm",
]
[[package]]
-name = "wasm-bindgen-test-macro"
-version = "0.3.12"
+name = "wasmer-derive"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c358c8d2507c1bae25efa069e62ea907aa28700b25c8c33dafb0b15ba4603627"
+checksum = "d8b86dcd2c3efdb8390728a2b56f762db07789aaa5aa872a9dc776ba3a7912ed"
dependencies = [
+ "proc-macro-error 1.0.4",
"proc-macro2",
"quote",
+ "syn",
]
[[package]]
-name = "wasm-gc-api"
-version = "0.1.11"
+name = "wasmer-engine"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9"
+checksum = "efe4667d6bd888f26ae8062a63a9379fa697415b4b4e380f33832e8418fd71b5"
dependencies = [
- "log",
- "parity-wasm 0.32.0",
+ "backtrace",
+ "bincode",
+ "lazy_static",
+ "memmap2",
+ "more-asserts",
"rustc-demangle",
+ "serde",
+ "serde_bytes",
+ "target-lexicon 0.11.2",
+ "thiserror",
+ "wasmer-compiler",
+ "wasmer-types",
+ "wasmer-vm",
]
[[package]]
-name = "wasm-timer"
-version = "0.2.4"
+name = "wasmer-engine-jit"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "324c5e65a08699c9c4334ba136597ab22b85dccd4b65dd1e36ccf8f723a95b54"
+checksum = "26770be802888011b4a3072f2a282fc2faa68aa48c71b3db6252a3937a85f3da"
dependencies = [
- "futures 0.3.5",
- "js-sys",
- "parking_lot 0.9.0",
- "pin-utils",
- "send_wrapper 0.2.0",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
+ "bincode",
+ "cfg-if 0.1.10",
+ "region",
+ "serde",
+ "serde_bytes",
+ "wasmer-compiler",
+ "wasmer-engine",
+ "wasmer-types",
+ "wasmer-vm",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "wasmer-engine-native"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bb4083a6c69f2cd4b000b82a80717f37c6cc2e536aee3a8ffe9af3edc276a8b"
+dependencies = [
+ "bincode",
+ "cfg-if 0.1.10",
+ "leb128",
+ "libloading 0.6.7",
+ "serde",
+ "tempfile",
+ "tracing",
+ "wasmer-compiler",
+ "wasmer-engine",
+ "wasmer-object",
+ "wasmer-types",
+ "wasmer-vm",
+ "which",
+]
+
+[[package]]
+name = "wasmer-object"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf8e0c12b82ff81ebecd30d7e118be5fec871d6de885a90eeb105df0a769a7b"
+dependencies = [
+ "object 0.22.0",
+ "thiserror",
+ "wasmer-compiler",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmer-types"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f4ac28c2951cd792c18332f03da523ed06b170f5cf6bb5b1bdd7e36c2a8218"
+dependencies = [
+ "cranelift-entity 0.68.0",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "wasmer-vm"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7635ba0b6d2fd325f588d69a950ad9fa04dddbf6ad08b6b2a183146319bf6ae"
+dependencies = [
+ "backtrace",
+ "cc",
+ "cfg-if 0.1.10",
+ "indexmap",
+ "libc",
+ "memoffset",
+ "more-asserts",
+ "region",
+ "serde",
+ "thiserror",
+ "wasmer-types",
+ "winapi 0.3.9",
]
[[package]]
name = "wasmi"
-version = "0.6.2"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf617d864d25af3587aa745529f7aaa541066c876d57e050c0d0c85c61c92aff"
+checksum = "d2ee05bba3d1d994652079893941a2ef9324d2b58a63c31b40678fb7eddd7a5a"
dependencies = [
+ "downcast-rs",
"errno",
"libc",
+ "libm",
"memory_units",
- "num-rational",
+ "num-rational 0.2.4",
"num-traits",
- "parity-wasm 0.41.0",
+ "parity-wasm 0.42.2",
"wasmi-validation",
]
[[package]]
name = "wasmi-validation"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93"
+checksum = "a2eb8e860796d8be48efef530b60eebf84e74a88bce107374fffb0da97d504b8"
dependencies = [
- "parity-wasm 0.41.0",
+ "parity-wasm 0.42.2",
]
[[package]]
name = "wasmparser"
-version = "0.57.0"
+version = "0.65.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6"
+checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf"
[[package]]
name = "wasmparser"
-version = "0.59.0"
+version = "0.78.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65"
[[package]]
name = "wasmtime"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd3c4f449382779ef6e0a7c3ec6752ae614e20a42e4100000c3efdc973100e2"
+checksum = "b310b9d20fcf59385761d1ade7a3ef06aecc380e3d3172035b919eaf7465d9f7"
dependencies = [
"anyhow",
"backtrace",
- "cfg-if",
+ "bincode",
+ "cfg-if 1.0.0",
+ "cpp_demangle",
+ "indexmap",
"lazy_static",
"libc",
- "log",
+ "log 0.4.14",
+ "paste 1.0.5",
+ "psm",
"region",
"rustc-demangle",
- "smallvec 1.4.1",
- "target-lexicon",
- "wasmparser 0.59.0",
+ "serde",
+ "smallvec 1.6.1",
+ "target-lexicon 0.12.2",
+ "wasmparser 0.78.2",
+ "wasmtime-cache",
"wasmtime-environ",
"wasmtime-jit",
"wasmtime-profiling",
"wasmtime-runtime",
- "wat",
"winapi 0.3.9",
]
+[[package]]
+name = "wasmtime-cache"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d14d500d5c3dc5f5c097158feee123d64b3097f0d836a2a27dff9c761c73c843"
+dependencies = [
+ "anyhow",
+ "base64 0.13.0",
+ "bincode",
+ "directories-next",
+ "errno",
+ "file-per-thread-logger",
+ "libc",
+ "log 0.4.14",
+ "serde",
+ "sha2 0.9.8",
+ "toml",
+ "winapi 0.3.9",
+ "zstd",
+]
+
+[[package]]
+name = "wasmtime-cranelift"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c525b39f062eada7db3c1298287b96dcb6e472b9f6b22501300b28d9fa7582f6"
+dependencies = [
+ "cranelift-codegen 0.74.0",
+ "cranelift-entity 0.74.0",
+ "cranelift-frontend 0.74.0",
+ "cranelift-wasm",
+ "target-lexicon 0.12.2",
+ "wasmparser 0.78.2",
+ "wasmtime-environ",
+]
+
[[package]]
name = "wasmtime-debug"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e634af9067a3af6cf2c7d33dc3b84767ddaf5d010ba68e80eecbcea73d4a349"
+checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a"
dependencies = [
"anyhow",
- "gimli 0.21.0",
+ "gimli 0.24.0",
"more-asserts",
- "object 0.20.0",
- "target-lexicon",
+ "object 0.24.0",
+ "target-lexicon 0.12.2",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.78.2",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-environ"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f85619a94ee4034bd5bb87fc3dcf71fd2237b81c840809da1201061eec9ab3"
+checksum = "f64d0c2d881c31b0d65c1f2695e022d71eb60b9fbdd336aacca28208b58eac90"
dependencies = [
- "anyhow",
- "base64 0.12.3",
- "bincode",
- "cfg-if",
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
+ "cfg-if 1.0.0",
+ "cranelift-codegen 0.74.0",
+ "cranelift-entity 0.74.0",
"cranelift-wasm",
- "directories",
- "errno",
- "file-per-thread-logger",
+ "gimli 0.24.0",
"indexmap",
- "libc",
- "log",
+ "log 0.4.14",
"more-asserts",
- "rayon",
"serde",
- "sha2 0.8.2",
"thiserror",
- "toml",
- "wasmparser 0.59.0",
- "winapi 0.3.9",
- "zstd",
+ "wasmparser 0.78.2",
]
[[package]]
name = "wasmtime-jit"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23"
+checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707"
dependencies = [
+ "addr2line 0.15.2",
"anyhow",
- "cfg-if",
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
+ "cfg-if 1.0.0",
+ "cranelift-codegen 0.74.0",
+ "cranelift-entity 0.74.0",
+ "cranelift-frontend 0.74.0",
"cranelift-native",
"cranelift-wasm",
- "gimli 0.21.0",
- "log",
+ "gimli 0.24.0",
+ "log 0.4.14",
"more-asserts",
- "object 0.20.0",
+ "object 0.24.0",
+ "rayon",
"region",
- "target-lexicon",
+ "serde",
+ "target-lexicon 0.12.2",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.78.2",
+ "wasmtime-cranelift",
"wasmtime-debug",
"wasmtime-environ",
"wasmtime-obj",
@@ -10162,52 +11564,52 @@ dependencies = [
[[package]]
name = "wasmtime-obj"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e81d8e02e9bc9fe2da9b6d48bbc217f96e089f7df613f11a28a3958abc44641e"
+checksum = "8e1a8ff85246d091828e2225af521a6208ed28c997bb5c39eb697366dc2e2f2b"
dependencies = [
"anyhow",
"more-asserts",
- "object 0.20.0",
- "target-lexicon",
+ "object 0.24.0",
+ "target-lexicon 0.12.2",
"wasmtime-debug",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-profiling"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27"
+checksum = "e24364d522dcd67c897c8fffc42e5bdfc57207bbb6d7eeade0da9d4a7d70105b"
dependencies = [
"anyhow",
- "cfg-if",
- "gimli 0.21.0",
+ "cfg-if 1.0.0",
"lazy_static",
"libc",
- "object 0.19.0",
- "scroll",
"serde",
- "target-lexicon",
+ "target-lexicon 0.12.2",
"wasmtime-environ",
"wasmtime-runtime",
]
[[package]]
name = "wasmtime-runtime"
-version = "0.19.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93"
+checksum = "c51e57976e8a19a18a18e002c6eb12e5769554204238e47ff155fda1809ef0f7"
dependencies = [
+ "anyhow",
"backtrace",
"cc",
- "cfg-if",
+ "cfg-if 1.0.0",
"indexmap",
"lazy_static",
"libc",
- "log",
+ "log 0.4.14",
+ "mach",
"memoffset",
"more-asserts",
+ "rand 0.8.4",
"region",
"thiserror",
"wasmtime-environ",
@@ -10216,27 +11618,27 @@ dependencies = [
[[package]]
name = "wast"
-version = "21.0.0"
+version = "38.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
+checksum = "0ebc29df4629f497e0893aacd40f13a4a56b85ef6eb4ab6d603f07244f1a7bf2"
dependencies = [
"leb128",
]
[[package]]
name = "wat"
-version = "1.0.22"
+version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+checksum = "adcfaeb27e2578d2c6271a45609f4a055e6d7ba3a12eff35b1fd5ba147bdf046"
dependencies = [
"wast",
]
[[package]]
name = "web-sys"
-version = "0.3.39"
+version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642"
+checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -10244,9 +11646,9 @@ dependencies = [
[[package]]
name = "webpki"
-version = "0.21.3"
+version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae"
+checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
dependencies = [
"ring",
"untrusted",
@@ -10254,40 +11656,80 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "0.18.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4"
+checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
dependencies = [
"webpki",
]
[[package]]
-name = "webpki-roots"
-version = "0.19.0"
+name = "websocket"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739"
+checksum = "413b37840b9e27b340ce91b319ede10731de8c72f5bc4cb0206ec1ca4ce581d0"
dependencies = [
- "webpki",
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "hyper 0.10.16",
+ "native-tls",
+ "rand 0.6.5",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-reactor",
+ "tokio-tcp",
+ "tokio-tls",
+ "unicase 1.4.2",
+ "url 1.7.2",
+ "websocket-base",
]
[[package]]
-name = "wepoll-sys-stjepang"
-version = "1.0.6"
+name = "websocket-base"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e3810f0d00c4dccb54c30a4eee815e703232819dec7b007db115791c42aa374"
+dependencies = [
+ "base64 0.10.1",
+ "bitflags",
+ "byteorder",
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "native-tls",
+ "rand 0.6.5",
+ "sha1",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-tcp",
+ "tokio-tls",
+]
+
+[[package]]
+name = "wepoll-ffi"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd319e971980166b53e17b1026812ad66c6b54063be879eb182342b55284694"
+checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
dependencies = [
"cc",
]
[[package]]
name = "which"
-version = "3.1.1"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9"
dependencies = [
+ "either",
+ "lazy_static",
"libc",
]
+[[package]]
+name = "widestring"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+
[[package]]
name = "winapi"
version = "0.2.8"
@@ -10331,6 +11773,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "winreg"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+dependencies = [
+ "winapi 0.3.9",
+]
+
[[package]]
name = "ws2_32-sys"
version = "0.2.1"
@@ -10341,45 +11792,51 @@ dependencies = [
"winapi-build",
]
+[[package]]
+name = "wyz"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
+
[[package]]
name = "x25519-dalek"
-version = "0.6.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217"
+checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f"
dependencies = [
- "curve25519-dalek",
+ "curve25519-dalek 3.2.0",
"rand_core 0.5.1",
"zeroize",
]
[[package]]
name = "yamux"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c"
+checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107"
dependencies = [
- "futures 0.3.5",
- "log",
+ "futures 0.3.17",
+ "log 0.4.14",
"nohash-hasher",
- "parking_lot 0.11.0",
- "rand 0.7.3",
+ "parking_lot 0.11.2",
+ "rand 0.8.4",
"static_assertions",
]
[[package]]
name = "zeroize"
-version = "1.1.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8"
+checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
-version = "1.0.0"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2"
+checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1"
dependencies = [
"proc-macro2",
"quote",
@@ -10389,18 +11846,18 @@ dependencies = [
[[package]]
name = "zstd"
-version = "0.5.3+zstd.1.4.5"
+version = "0.6.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8"
+checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "2.0.5+zstd.1.4.5"
+version = "3.0.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055"
+checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c"
dependencies = [
"libc",
"zstd-sys",
@@ -10408,12 +11865,10 @@ dependencies = [
[[package]]
name = "zstd-sys"
-version = "1.4.17+zstd.1.4.5"
+version = "1.4.20+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b"
+checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e"
dependencies = [
"cc",
- "glob",
- "itertools 0.9.0",
"libc",
]
diff --git a/Cargo.toml b/Cargo.toml
index b78c4da055801..bca0c816217ee 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,19 +1,21 @@
[workspace]
+resolver = "2"
+
members = [
"bin/node-template/node",
- "bin/node-template/runtime",
"bin/node-template/pallets/template",
+ "bin/node-template/runtime",
"bin/node/bench",
- "bin/node/browser-testing",
"bin/node/cli",
+ "bin/node/test-runner-example",
"bin/node/executor",
"bin/node/primitives",
- "bin/node/rpc-client",
"bin/node/rpc",
+ "bin/node/rpc-client",
"bin/node/runtime",
"bin/node/testing",
- "bin/utils/subkey",
"bin/utils/chain-spec-builder",
+ "bin/utils/subkey",
"client/api",
"client/authority-discovery",
"client/basic-authorship",
@@ -21,71 +23,77 @@ members = [
"client/chain-spec",
"client/chain-spec/derive",
"client/cli",
- "client/cli/proc-macro",
"client/consensus/aura",
"client/consensus/babe",
"client/consensus/babe/rpc",
"client/consensus/common",
+ "client/consensus/epochs",
"client/consensus/manual-seal",
"client/consensus/pow",
- "client/consensus/uncles",
"client/consensus/slots",
- "client/consensus/epochs",
+ "client/consensus/uncles",
"client/db",
"client/executor",
"client/executor/common",
+ "client/executor/runtime-test",
"client/executor/wasmi",
"client/executor/wasmtime",
- "client/executor/runtime-test",
"client/finality-grandpa",
"client/informant",
- "client/light",
- "client/tracing",
"client/keystore",
+ "client/light",
"client/network",
- "client/network/test",
"client/network-gossip",
+ "client/network/test",
"client/offchain",
"client/peerset",
+ "client/allocator",
"client/proposer-metrics",
- "client/rpc-servers",
"client/rpc",
"client/rpc-api",
+ "client/rpc-servers",
"client/service",
"client/service/test",
"client/state-db",
"client/sync-state-rpc",
"client/telemetry",
+ "client/tracing",
+ "client/tracing/proc-macro",
"client/transaction-pool",
- "client/transaction-pool/graph",
- "utils/prometheus",
- "utils/wasm-builder-runner",
+ "client/transaction-pool/api",
+ "client/utils",
"frame/assets",
- "frame/aura",
"frame/atomic-swap",
+ "frame/aura",
"frame/authority-discovery",
"frame/authorship",
"frame/babe",
"frame/balances",
"frame/benchmarking",
+ "frame/bounties",
"frame/collective",
"frame/contracts",
"frame/contracts/rpc",
"frame/contracts/rpc/runtime-api",
"frame/democracy",
- "frame/elections-phragmen",
+ "frame/try-runtime",
"frame/elections",
- "frame/evm",
+ "frame/election-provider-multi-phase",
+ "frame/election-provider-support",
"frame/example",
"frame/example-offchain-worker",
"frame/example-parallel",
"frame/executive",
+ "frame/gilt",
"frame/grandpa",
"frame/identity",
"frame/im-online",
"frame/indices",
+ "frame/lottery",
"frame/membership",
- "frame/metadata",
+ "frame/merkle-mountain-range",
+ "frame/merkle-mountain-range/primitives",
+ "frame/merkle-mountain-range/rpc",
"frame/multisig",
"frame/nicks",
"frame/node-authorization",
@@ -100,7 +108,7 @@ members = [
"frame/society",
"frame/staking",
"frame/staking/reward-curve",
- "frame/staking/fuzzer",
+ "frame/staking/reward-fn",
"frame/sudo",
"frame/support",
"frame/support/procedural",
@@ -114,12 +122,19 @@ members = [
"frame/transaction-payment",
"frame/transaction-payment/rpc",
"frame/transaction-payment/rpc/runtime-api",
+ "frame/transaction-storage",
"frame/treasury",
+ "frame/tips",
+ "frame/uniques",
"frame/utility",
"frame/vesting",
- "primitives/allocator",
+ "primitives/api",
+ "primitives/api/proc-macro",
+ "primitives/api/test",
"primitives/application-crypto",
"primitives/application-crypto/test",
+ "primitives/arithmetic",
+ "primitives/arithmetic/fuzzer",
"primitives/authority-discovery",
"primitives/authorship",
"primitives/block-builder",
@@ -130,61 +145,60 @@ members = [
"primitives/consensus/pow",
"primitives/consensus/vrf",
"primitives/core",
- "primitives/chain-spec",
"primitives/database",
"primitives/debug-derive",
- "primitives/storage",
"primitives/externalities",
"primitives/finality-grandpa",
"primitives/inherents",
+ "primitives/io",
"primitives/keyring",
"primitives/keystore",
- "primitives/offchain",
- "primitives/panic-handler",
+ "primitives/maybe-compressed-blob",
"primitives/npos-elections",
+ "primitives/npos-elections/solution-type",
"primitives/npos-elections/fuzzer",
- "primitives/npos-elections/compact",
+ "primitives/offchain",
+ "primitives/panic-handler",
"primitives/rpc",
+ "primitives/runtime",
"primitives/runtime-interface",
"primitives/runtime-interface/proc-macro",
+ "primitives/runtime-interface/test",
"primitives/runtime-interface/test-wasm",
"primitives/runtime-interface/test-wasm-deprecated",
- "primitives/runtime-interface/test",
+ "primitives/sandbox",
"primitives/serializer",
"primitives/session",
- "primitives/api",
- "primitives/api/proc-macro",
- "primitives/api/test",
- "primitives/arithmetic",
- "primitives/arithmetic/fuzzer",
- "primitives/io",
- "primitives/runtime",
- "primitives/sandbox",
"primitives/staking",
- "primitives/std",
- "primitives/version",
"primitives/state-machine",
+ "primitives/std",
+ "primitives/storage",
"primitives/tasks",
- "primitives/timestamp",
"primitives/test-primitives",
- "primitives/transaction-pool",
+ "primitives/timestamp",
"primitives/tracing",
+ "primitives/transaction-pool",
+ "primitives/transaction-storage-proof",
"primitives/trie",
- "primitives/utils",
+ "primitives/version",
+ "primitives/version/proc-macro",
"primitives/wasm-interface",
"test-utils/client",
"test-utils/derive",
"test-utils/runtime",
"test-utils/runtime/client",
"test-utils/runtime/transaction-pool",
+ "test-utils/test-runner",
"test-utils/test-crate",
- "utils/browser",
"utils/build-script-utils",
"utils/fork-tree",
"utils/frame/benchmarking-cli",
+ "utils/frame/remote-externalities",
"utils/frame/frame-utilities-cli",
+ "utils/frame/try-runtime/cli",
"utils/frame/rpc/support",
"utils/frame/rpc/system",
+ "utils/prometheus",
"utils/wasm-builder",
]
@@ -204,27 +218,20 @@ members = [
#
# This list is ordered alphabetically.
[profile.dev.package]
-aes-soft = { opt-level = 3 }
-aesni = { opt-level = 3 }
blake2 = { opt-level = 3 }
blake2-rfc = { opt-level = 3 }
blake2b_simd = { opt-level = 3 }
-blake2s_simd = { opt-level = 3 }
chacha20poly1305 = { opt-level = 3 }
cranelift-codegen = { opt-level = 3 }
cranelift-wasm = { opt-level = 3 }
crc32fast = { opt-level = 3 }
crossbeam-deque = { opt-level = 3 }
-crossbeam-queue = { opt-level = 3 }
crypto-mac = { opt-level = 3 }
curve25519-dalek = { opt-level = 3 }
ed25519-dalek = { opt-level = 3 }
-evm-core = { opt-level = 3 }
-evm-runtime = { opt-level = 3 }
flate2 = { opt-level = 3 }
futures-channel = { opt-level = 3 }
hashbrown = { opt-level = 3 }
-h2 = { opt-level = 3 }
hash-db = { opt-level = 3 }
hmac = { opt-level = 3 }
httparse = { opt-level = 3 }
@@ -253,7 +260,6 @@ wasmi = { opt-level = 3 }
x25519-dalek = { opt-level = 3 }
yamux = { opt-level = 3 }
zeroize = { opt-level = 3 }
-
[profile.release]
# Substrate runtime requires unwinding.
-panic = "unwind"
+panic = "unwind"
\ No newline at end of file
diff --git a/HEADER b/HEADER-APACHE2
similarity index 92%
rename from HEADER
rename to HEADER-APACHE2
index c9b28a07b0f22..f364f4bdf845a 100644
--- a/HEADER
+++ b/HEADER-APACHE2
@@ -1,6 +1,6 @@
// This file is part of Substrate.
-// Copyright (C) 2020 Parity Technologies (UK) Ltd.
+// Copyright (C) 2021 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/test-utils/tests/ui/missing-func-parameter.rs b/HEADER-GPL3
similarity index 83%
rename from test-utils/tests/ui/missing-func-parameter.rs
rename to HEADER-GPL3
index bd34a76902ef9..0dd7e4f76028f 100644
--- a/test-utils/tests/ui/missing-func-parameter.rs
+++ b/HEADER-GPL3
@@ -1,6 +1,6 @@
// This file is part of Substrate.
-// Copyright (C) 2020 Parity Technologies (UK) Ltd.
+// Copyright (C) 2021 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
@@ -15,10 +15,3 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-
-#[substrate_test_utils::test]
-async fn missing_func_parameter() {
- assert!(true);
-}
-
-fn main() {}
diff --git a/README.md b/README.md
index c586919a1ddc3..6288540548a0d 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,15 @@
-# Substrate · [![GitHub license](https://img.shields.io/badge/license-GPL3%2FApache2-blue)](LICENSE) [![GitLab Status](https://gitlab.parity.io/parity/substrate/badges/master/pipeline.svg)](https://gitlab.parity.io/parity/substrate/pipelines) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](docs/CONTRIBUTING.adoc)
+# Substrate · [![GitHub license](https://img.shields.io/badge/license-GPL3%2FApache2-blue)](#LICENSE) [![GitLab Status](https://gitlab.parity.io/parity/substrate/badges/master/pipeline.svg)](https://gitlab.parity.io/parity/substrate/pipelines) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](docs/CONTRIBUTING.adoc) [![Matrix](https://img.shields.io/matrix/substrate-technical:matrix.org)](https://matrix.to/#/#substrate-technical:matrix.org)
-
Substrate is a next-generation framework for blockchain innovation 🚀.
## Trying it out
-Simply go to [substrate.dev](https://substrate.dev) and follow the
-[installation](https://substrate.dev/docs/en/knowledgebase/getting-started/) instructions. You can
+Simply go to [substrate.dev](https://substrate.dev) and follow the
+[installation](https://substrate.dev/docs/en/knowledgebase/getting-started/) instructions. You can
also try out one of the [tutorials](https://substrate.dev/en/tutorials).
## Contributions & Code of Conduct
diff --git a/bin/node-template/.editorconfig b/bin/node-template/.editorconfig
new file mode 100644
index 0000000000000..5adac74ca24b3
--- /dev/null
+++ b/bin/node-template/.editorconfig
@@ -0,0 +1,16 @@
+root = true
+
+[*]
+indent_style=space
+indent_size=2
+tab_width=2
+end_of_line=lf
+charset=utf-8
+trim_trailing_whitespace=true
+insert_final_newline = true
+
+[*.{rs,toml}]
+indent_style=tab
+indent_size=tab
+tab_width=4
+max_line_length=100
diff --git a/bin/node-template/README.md b/bin/node-template/README.md
index 5623fedb5342b..cd977fac84493 100644
--- a/bin/node-template/README.md
+++ b/bin/node-template/README.md
@@ -1,97 +1,71 @@
# Substrate Node Template
-A new FRAME-based Substrate node, ready for hacking :rocket:
+A fresh FRAME-based [Substrate](https://www.substrate.io/) node, ready for hacking :rocket:
-## Local Development
+## Getting Started
-Follow these steps to prepare a local Substrate development environment :hammer_and_wrench:
+Follow these steps to get started with the Node Template :hammer_and_wrench:
-### Simple Setup
+### Rust Setup
-Install all the required dependencies with a single command (be patient, this can take up to 30
-minutes).
+First, complete the [basic Rust setup instructions](./doc/rust-setup.md).
-```bash
-curl https://getsubstrate.io -sSf | bash -s -- --fast
-```
+### Run
-### Manual Setup
+Use Rust's native `cargo` command to build and launch the template node:
-Find manual setup instructions at the
-[Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation).
+```sh
+cargo run --release -- --dev --tmp
+```
### Build
-Once the development environment is set up, build the node template. This command will build the
-[Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and
-[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code:
+The `cargo run` command will perform an initial build. Use the following command to build the node
+without launching it:
-```bash
+```sh
cargo build --release
```
-## Run
-
-### Single Node Development Chain
+### Embedded Docs
-Purge any existing dev chain state:
+Once the project has been built, the following command can be used to explore all parameters and
+subcommands:
-```bash
-./target/release/node-template purge-chain --dev
+```sh
+./target/release/node-template -h
```
-Start a dev chain:
+## Run
-```bash
-./target/release/node-template --dev
-```
+The provided `cargo run` command will launch a temporary node and its state will be discarded after
+you terminate the process. After the project has been built, there are other ways to launch the
+node.
+
+### Single-Node Development Chain
-Or, start a dev chain with detailed logging:
+This command will start the single-node development chain with persistent state:
```bash
-RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/node-template -lruntime=debug --dev
+./target/release/node-template --dev
```
-### Multi-Node Local Testnet
-
-To see the multi-node consensus algorithm in action, run a local testnet with two validator nodes,
-Alice and Bob, that have been [configured](/bin/node-template/node/src/chain_spec.rs) as the initial
-authorities of the `local` testnet chain and endowed with testnet units.
-
-Note: this will require two terminal sessions (one for each node).
-
-Start Alice's node first. The command below uses the default TCP port (30333) and specifies
-`/tmp/alice` as the chain database location. Alice's node ID will be
-`12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp` (legacy representation:
-`QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR`); this is determined by the `node-key`.
+Purge the development chain's state:
```bash
-cargo run -- \
- --base-path /tmp/alice \
- --chain=local \
- --alice \
- --node-key 0000000000000000000000000000000000000000000000000000000000000001 \
- --telemetry-url 'ws://telemetry.polkadot.io:1024 0' \
- --validator
+./target/release/node-template purge-chain --dev
```
-In another terminal, use the following command to start Bob's node on a different TCP port (30334)
-and with a chain database location of `/tmp/bob`. The `--bootnodes` option will connect his node to
-Alice's on TCP port 30333:
+Start the development chain with detailed logging:
```bash
-cargo run -- \
- --base-path /tmp/bob \
- --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp \
- --chain=local \
- --bob \
- --port 30334 \
- --ws-port 9945 \
- --telemetry-url 'ws://telemetry.polkadot.io:1024 0' \
- --validator
+RUST_BACKTRACE=1 ./target/release/node-template -ldebug --dev
```
-Execute `cargo run -- --help` to learn more about the template node's CLI options.
+### Multi-Node Local Testnet
+
+If you want to see the multi-node consensus algorithm in action, refer to
+[our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/).
## Template Structure
@@ -157,7 +131,7 @@ Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this
the following:
- This file configures several pallets to include in the runtime. Each pallet configuration is
- defined by a code block that begins with `impl $PALLET_NAME::Trait for Runtime`.
+ defined by a code block that begins with `impl $PALLET_NAME::Config for Runtime`.
- The pallets are composed into a single runtime by way of the
[`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html)
macro, which is part of the core
@@ -181,27 +155,31 @@ A FRAME pallet is compromised of a number of blockchain primitives:
- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to
notify users of important changes in the runtime.
- Errors: When a dispatchable fails, it returns an error.
-- Trait: The `Trait` configuration interface is used to define the types and parameters upon which
- a FRAME pallet depends.
+- Config: The `Config` configuration interface is used to define the types and parameters upon
+ which a FRAME pallet depends.
-## Generate a Custom Node Template
+### Run in Docker
-Generate a Substrate node template based on a particular commit by running the following commands:
+First, install [Docker](https://docs.docker.com/get-docker/) and
+[Docker Compose](https://docs.docker.com/compose/install/).
+
+Then run the following command to start a single node development chain.
```bash
-# Clone from the main Substrate repo
-git clone https://github.com/paritytech/substrate.git
-cd substrate
+./scripts/docker_run.sh
+```
-# Switch to the branch or commit to base the template on
-git checkout
+This command will firstly compile your code, and then start a local development network. You can
+also replace the default command (`cargo build --release && ./target/release/node-template --dev --ws-external`)
+by appending your own. A few useful ones are as follow.
-# Run the helper script to generate a node template. This script compiles Substrate, so it will take
-# a while to complete. It expects a single parameter: the location for the script's output expressed
-# as a relative path.
-.maintain/node-template-release.sh ../node-template.tar.gz
-```
+```bash
+# Run Substrate node without re-compiling
+./scripts/docker_run.sh ./target/release/node-template --dev --ws-external
+
+# Purge the local dev chain
+./scripts/docker_run.sh ./target/release/node-template purge-chain --dev
-Custom node templates are not supported. Please use a recently tagged version of the
-[Substrate Developer Node Template](https://github.com/substrate-developer-hub/substrate-node-template)
-in order to receive support.
+# Check whether the code is compilable
+./scripts/docker_run.sh cargo check
+```
diff --git a/bin/node-template/docker-compose.yml b/bin/node-template/docker-compose.yml
new file mode 100644
index 0000000000000..cfc4437bbae41
--- /dev/null
+++ b/bin/node-template/docker-compose.yml
@@ -0,0 +1,17 @@
+version: "3.2"
+
+services:
+ dev:
+ container_name: node-template
+ image: paritytech/ci-linux:974ba3ac-20201006
+ working_dir: /var/www/node-template
+ ports:
+ - "9944:9944"
+ environment:
+ - CARGO_HOME=/var/www/node-template/.cargo
+ volumes:
+ - .:/var/www/node-template
+ - type: bind
+ source: ./.local
+ target: /root/.local
+ command: bash -c "cargo build --release && ./target/release/node-template --dev --ws-external"
diff --git a/bin/node-template/docs/rust-setup.md b/bin/node-template/docs/rust-setup.md
new file mode 100644
index 0000000000000..34f6e43e7f0dd
--- /dev/null
+++ b/bin/node-template/docs/rust-setup.md
@@ -0,0 +1,81 @@
+---
+title: Installation
+---
+
+This page will guide you through the steps needed to prepare a computer for development with the
+Substrate Node Template. Since Substrate is built with
+[the Rust programming language](https://www.rust-lang.org/), the first thing you will need to do is
+prepare the computer for Rust development - these steps will vary based on the computer's operating
+system. Once Rust is configured, you will use its toolchains to interact with Rust projects; the
+commands for Rust's toolchains will be the same for all supported, Unix-based operating systems.
+
+## Unix-Based Operating Systems
+
+Substrate development is easiest on Unix-based operating systems like macOS or Linux. The examples
+in the Substrate [Tutorials](https://substrate.dev/tutorials) and [Recipes](https://substrate.dev/recipes/)
+use Unix-style terminals to demonstrate how to interact with Substrate from the command line.
+
+### macOS
+
+Open the Terminal application and execute the following commands:
+
+```bash
+# Install Homebrew if necessary https://brew.sh/
+/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
+
+# Make sure Homebrew is up-to-date, install openssl and cmake
+brew update
+brew install openssl cmake
+```
+
+### Ubuntu/Debian
+
+Use a terminal shell to execute the following commands:
+
+```bash
+sudo apt update
+# May prompt for location information
+sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl
+```
+
+### Arch Linux
+
+Run these commands from a terminal:
+
+```bash
+pacman -Syu --needed --noconfirm cmake gcc openssl-1.0 pkgconf git clang
+export OPENSSL_LIB_DIR="/usr/lib/openssl-1.0"
+export OPENSSL_INCLUDE_DIR="/usr/include/openssl-1.0"
+```
+
+### Fedora/RHEL/CentOS
+
+Use a terminal to run the following commands:
+
+```bash
+# Update
+sudo dnf update
+# Install packages
+sudo dnf install cmake pkgconfig rocksdb rocksdb-devel llvm git libcurl libcurl-devel curl-devel clang
+```
+
+## Rust Developer Environment
+
+This project uses [`rustup`](https://rustup.rs/) to help manage the Rust toolchain. First install
+and configure `rustup`:
+
+```bash
+# Install
+curl https://sh.rustup.rs -sSf | sh
+# Configure
+source ~/.cargo/env
+```
+
+Finally, configure the Rust toolchain:
+
+```bash
+rustup default stable
+rustup update nightly
+rustup update stable
+rustup target add wasm32-unknown-unknown --toolchain nightly
+```
diff --git a/bin/node-template/node/Cargo.toml b/bin/node-template/node/Cargo.toml
index 1a2991e471bb6..17bc7b32c15c1 100644
--- a/bin/node-template/node/Cargo.toml
+++ b/bin/node-template/node/Cargo.toml
@@ -1,13 +1,14 @@
[package]
name = "node-template"
-version = "2.0.0"
-authors = ["Anonymous"]
-description = "A new FRAME-based Substrate node, ready for hacking."
+version = "3.0.0"
+authors = ["Substrate DevHub "]
+description = "A fresh FRAME-based Substrate node, ready for hacking."
edition = "2018"
license = "Unlicense"
build = "build.rs"
homepage = "https://substrate.dev"
-repository = "https://github.com/paritytech/substrate/"
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
+publish = false
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
@@ -16,44 +17,46 @@ targets = ["x86_64-unknown-linux-gnu"]
name = "node-template"
[dependencies]
-ipfs = { git = "https://github.com/rs-ipfs/rust-ipfs" }
+ipfs = { git = "https://github.com/rs-ipfs/rust-ipfs"}
structopt = "0.3.8"
-sc-cli = { version = "0.8.0", path = "../../../client/cli", features = ["wasmtime"] }
-sp-core = { version = "2.0.0", path = "../../../primitives/core" }
-sc-executor = { version = "0.8.0", path = "../../../client/executor", features = ["wasmtime"] }
-sc-service = { version = "0.8.0", path = "../../../client/service", features = ["wasmtime"] }
-sp-inherents = { version = "2.0.0", path = "../../../primitives/inherents" }
-sc-transaction-pool = { version = "2.0.0", path = "../../../client/transaction-pool" }
-sp-transaction-pool = { version = "2.0.0", path = "../../../primitives/transaction-pool" }
-sc-consensus-aura = { version = "0.8.0", path = "../../../client/consensus/aura" }
-sp-consensus-aura = { version = "0.8.0", path = "../../../primitives/consensus/aura" }
-sp-consensus = { version = "0.8.0", path = "../../../primitives/consensus/common" }
-sc-consensus = { version = "0.8.0", path = "../../../client/consensus/common" }
-sc-finality-grandpa = { version = "0.8.0", path = "../../../client/finality-grandpa" }
-sp-finality-grandpa = { version = "2.0.0", path = "../../../primitives/finality-grandpa" }
-sc-client-api = { version = "2.0.0", path = "../../../client/api" }
-sp-runtime = { version = "2.0.0", path = "../../../primitives/runtime" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli", features = ["wasmtime"] }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor", features = ["wasmtime"] }
+sc-service = { version = "0.10.0-dev", path = "../../../client/service", features = ["wasmtime"] }
+sc-telemetry = { version = "4.0.0-dev", path = "../../../client/telemetry" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../client/keystore" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
+sc-consensus-aura = { version = "0.10.0-dev", path = "../../../client/consensus/aura" }
+sp-consensus-aura = { version = "0.10.0-dev", path = "../../../primitives/consensus/aura" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../../../client/finality-grandpa" }
+sp-finality-grandpa = { version = "4.0.0-dev", path = "../../../primitives/finality-grandpa" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
# These dependencies are used for the node template's RPCs
-jsonrpc-core = "15.0.0"
-sc-rpc = { version = "2.0.0", path = "../../../client/rpc" }
-sp-api = { version = "2.0.0", path = "../../../primitives/api" }
-sc-rpc-api = { version = "0.8.0", path = "../../../client/rpc-api" }
-sp-blockchain = { version = "2.0.0", path = "../../../primitives/blockchain" }
-sp-block-builder = { version = "2.0.0", path = "../../../primitives/block-builder" }
-sc-basic-authorship = { version = "0.8.0", path = "../../../client/basic-authorship" }
-substrate-frame-rpc-system = { version = "2.0.0", path = "../../../utils/frame/rpc/system" }
-pallet-transaction-payment-rpc = { version = "2.0.0", path = "../../../frame/transaction-payment/rpc/" }
+jsonrpc-core = "18.0.0"
+sc-rpc = { version = "4.0.0-dev", path = "../../../client/rpc" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../client/rpc-api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../../client/basic-authorship" }
+substrate-frame-rpc-system = { version = "4.0.0-dev", path = "../../../utils/frame/rpc/system" }
+pallet-transaction-payment-rpc = { version = "4.0.0-dev", path = "../../../frame/transaction-payment/rpc/" }
# These dependencies are used for runtime benchmarking
-frame-benchmarking = { version = "2.0.0", path = "../../../frame/benchmarking" }
-frame-benchmarking-cli = { version = "2.0.0", path = "../../../utils/frame/benchmarking-cli" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../../../frame/benchmarking" }
+frame-benchmarking-cli = { version = "4.0.0-dev", path = "../../../utils/frame/benchmarking-cli" }
-node-template-runtime = { version = "2.0.0", path = "../runtime" }
+node-template-runtime = { version = "3.0.0", path = "../runtime" }
[build-dependencies]
-substrate-build-script-utils = { version = "2.0.0", path = "../../../utils/build-script-utils" }
+substrate-build-script-utils = { version = "3.0.0", path = "../../../utils/build-script-utils" }
[features]
default = []
diff --git a/bin/node-template/node/src/chain_spec.rs b/bin/node-template/node/src/chain_spec.rs
index 41f582fb64a46..7009b3be5c279 100644
--- a/bin/node-template/node/src/chain_spec.rs
+++ b/bin/node-template/node/src/chain_spec.rs
@@ -1,12 +1,12 @@
-use sp_core::{Pair, Public, sr25519};
use node_template_runtime::{
- AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig,
- SudoConfig, SystemConfig, WASM_BINARY, Signature
+ AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, Signature, SudoConfig,
+ SystemConfig, WASM_BINARY,
};
+use sc_service::ChainType;
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
+use sp_core::{sr25519, Pair, Public};
use sp_finality_grandpa::AuthorityId as GrandpaId;
-use sp_runtime::traits::{Verify, IdentifyAccount};
-use sc_service::ChainType;
+use sp_runtime::traits::{IdentifyAccount, Verify};
// The URL for the telemetry server.
// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";
@@ -24,22 +24,20 @@ pub fn get_from_seed(seed: &str) -> ::Pu
type AccountPublic = ::Signer;
/// Generate an account ID from seed.
-pub fn get_account_id_from_seed(seed: &str) -> AccountId where
- AccountPublic: From<::Public>
+pub fn get_account_id_from_seed(seed: &str) -> AccountId
+where
+ AccountPublic: From<::Public>,
{
AccountPublic::from(get_from_seed::(seed)).into_account()
}
/// Generate an Aura authority key.
pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) {
- (
- get_from_seed::(s),
- get_from_seed::(s),
- )
+ (get_from_seed::(s), get_from_seed::(s))
}
pub fn development_config() -> Result {
- let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?;
+ let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?;
Ok(ChainSpec::from_genesis(
// Name
@@ -47,23 +45,23 @@ pub fn development_config() -> Result {
// ID
"dev",
ChainType::Development,
- move || testnet_genesis(
- wasm_binary,
- // Initial PoA authorities
- vec![
- authority_keys_from_seed("Alice"),
- ],
- // Sudo account
- get_account_id_from_seed::("Alice"),
- // Pre-funded accounts
- vec![
+ move || {
+ testnet_genesis(
+ wasm_binary,
+ // Initial PoA authorities
+ vec![authority_keys_from_seed("Alice")],
+ // Sudo account
get_account_id_from_seed::("Alice"),
- get_account_id_from_seed::("Bob"),
- get_account_id_from_seed::("Alice//stash"),
- get_account_id_from_seed::("Bob//stash"),
- ],
- true,
- ),
+ // Pre-funded accounts
+ vec![
+ get_account_id_from_seed::("Alice"),
+ get_account_id_from_seed::("Bob"),
+ get_account_id_from_seed::("Alice//stash"),
+ get_account_id_from_seed::("Bob//stash"),
+ ],
+ true,
+ )
+ },
// Bootnodes
vec![],
// Telemetry
@@ -78,7 +76,7 @@ pub fn development_config() -> Result {
}
pub fn local_testnet_config() -> Result {
- let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?;
+ let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?;
Ok(ChainSpec::from_genesis(
// Name
@@ -86,32 +84,31 @@ pub fn local_testnet_config() -> Result {
// ID
"local_testnet",
ChainType::Local,
- move || testnet_genesis(
- wasm_binary,
- // Initial PoA authorities
- vec![
- authority_keys_from_seed("Alice"),
- authority_keys_from_seed("Bob"),
- ],
- // Sudo account
- get_account_id_from_seed::("Alice"),
- // Pre-funded accounts
- vec![
+ move || {
+ testnet_genesis(
+ wasm_binary,
+ // Initial PoA authorities
+ vec![authority_keys_from_seed("Alice"), authority_keys_from_seed("Bob")],
+ // Sudo account
get_account_id_from_seed::("Alice"),
- get_account_id_from_seed::("Bob"),
- get_account_id_from_seed::("Charlie"),
- get_account_id_from_seed::("Dave"),
- get_account_id_from_seed::("Eve"),
- get_account_id_from_seed::("Ferdie"),
- get_account_id_from_seed::("Alice//stash"),
- get_account_id_from_seed::("Bob//stash"),
- get_account_id_from_seed::("Charlie//stash"),
- get_account_id_from_seed::("Dave//stash"),
- get_account_id_from_seed::("Eve//stash"),
- get_account_id_from_seed::("Ferdie//stash"),
- ],
- true,
- ),
+ // Pre-funded accounts
+ vec![
+ get_account_id_from_seed::("Alice"),
+ get_account_id_from_seed::("Bob"),
+ get_account_id_from_seed::("Charlie"),
+ get_account_id_from_seed::("Dave"),
+ get_account_id_from_seed::("Eve"),
+ get_account_id_from_seed::("Ferdie"),
+ get_account_id_from_seed::("Alice//stash"),
+ get_account_id_from_seed::("Bob//stash"),
+ get_account_id_from_seed::("Charlie//stash"),
+ get_account_id_from_seed::("Dave//stash"),
+ get_account_id_from_seed::("Eve//stash"),
+ get_account_id_from_seed::("Ferdie//stash"),
+ ],
+ true,
+ )
+ },
// Bootnodes
vec![],
// Telemetry
@@ -134,24 +131,24 @@ fn testnet_genesis(
_enable_println: bool,
) -> GenesisConfig {
GenesisConfig {
- frame_system: Some(SystemConfig {
+ system: SystemConfig {
// Add Wasm runtime to storage.
code: wasm_binary.to_vec(),
changes_trie_config: Default::default(),
- }),
- pallet_balances: Some(BalancesConfig {
+ },
+ balances: BalancesConfig {
// Configure endowed accounts with initial balance of 1 << 60.
- balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(),
- }),
- pallet_aura: Some(AuraConfig {
+ balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(),
+ },
+ aura: AuraConfig {
authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),
- }),
- pallet_grandpa: Some(GrandpaConfig {
+ },
+ grandpa: GrandpaConfig {
authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(),
- }),
- pallet_sudo: Some(SudoConfig {
+ },
+ sudo: SudoConfig {
// Assign network admin rights.
key: root_key,
- }),
+ },
}
}
diff --git a/bin/node-template/node/src/cli.rs b/bin/node-template/node/src/cli.rs
index f2faf17e4ddf4..8b551051c1b19 100644
--- a/bin/node-template/node/src/cli.rs
+++ b/bin/node-template/node/src/cli.rs
@@ -1,5 +1,5 @@
-use structopt::StructOpt;
use sc_cli::RunCmd;
+use structopt::StructOpt;
#[derive(Debug, StructOpt)]
pub struct Cli {
@@ -12,6 +12,8 @@ pub struct Cli {
#[derive(Debug, StructOpt)]
pub enum Subcommand {
+ /// Key management cli utilities
+ Key(sc_cli::KeySubcommand),
/// Build a chain specification.
BuildSpec(sc_cli::BuildSpecCmd),
diff --git a/bin/node-template/node/src/command.rs b/bin/node-template/node/src/command.rs
index ac950b50483ac..e948c3f53b716 100644
--- a/bin/node-template/node/src/command.rs
+++ b/bin/node-template/node/src/command.rs
@@ -1,25 +1,11 @@
-// This file is part of Substrate.
-
-// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd.
-// SPDX-License-Identifier: Apache-2.0
-
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-use crate::{chain_spec, service};
-use crate::cli::{Cli, Subcommand};
-use sc_cli::{SubstrateCli, RuntimeVersion, Role, ChainSpec};
-use sc_service::PartialComponents;
+use crate::{
+ chain_spec,
+ cli::{Cli, Subcommand},
+ service,
+};
use node_template_runtime::Block;
+use sc_cli::{ChainSpec, Role, RuntimeVersion, SubstrateCli};
+use sc_service::PartialComponents;
impl SubstrateCli for Cli {
fn impl_name() -> String {
@@ -50,9 +36,8 @@ impl SubstrateCli for Cli {
Ok(match id {
"dev" => Box::new(chain_spec::development_config()?),
"" | "local" => Box::new(chain_spec::local_testnet_config()?),
- path => Box::new(chain_spec::ChainSpec::from_json_file(
- std::path::PathBuf::from(path),
- )?),
+ path =>
+ Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?),
})
}
@@ -66,6 +51,7 @@ pub fn run() -> sc_cli::Result<()> {
let cli = Cli::from_args();
match &cli.subcommand {
+ Some(Subcommand::Key(cmd)) => cmd.run(&cli),
Some(Subcommand::BuildSpec(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.sync_run(|config| cmd.run(config.chain_spec, config.network))
@@ -73,32 +59,30 @@ pub fn run() -> sc_cli::Result<()> {
Some(Subcommand::CheckBlock(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
- let PartialComponents { client, task_manager, import_queue, ..}
- = service::new_partial(&config)?;
+ let PartialComponents { client, task_manager, import_queue, .. } =
+ service::new_partial(&config)?;
Ok((cmd.run(client, import_queue), task_manager))
})
},
Some(Subcommand::ExportBlocks(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
- let PartialComponents { client, task_manager, ..}
- = service::new_partial(&config)?;
+ let PartialComponents { client, task_manager, .. } = service::new_partial(&config)?;
Ok((cmd.run(client, config.database), task_manager))
})
},
Some(Subcommand::ExportState(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
- let PartialComponents { client, task_manager, ..}
- = service::new_partial(&config)?;
+ let PartialComponents { client, task_manager, .. } = service::new_partial(&config)?;
Ok((cmd.run(client, config.chain_spec), task_manager))
})
},
Some(Subcommand::ImportBlocks(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
- let PartialComponents { client, task_manager, import_queue, ..}
- = service::new_partial(&config)?;
+ let PartialComponents { client, task_manager, import_queue, .. } =
+ service::new_partial(&config)?;
Ok((cmd.run(client, import_queue), task_manager))
})
},
@@ -109,21 +93,21 @@ pub fn run() -> sc_cli::Result<()> {
Some(Subcommand::Revert(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
- let PartialComponents { client, task_manager, backend, ..}
- = service::new_partial(&config)?;
+ let PartialComponents { client, task_manager, backend, .. } =
+ service::new_partial(&config)?;
Ok((cmd.run(client, backend), task_manager))
})
},
- Some(Subcommand::Benchmark(cmd)) => {
+ Some(Subcommand::Benchmark(cmd)) =>
if cfg!(feature = "runtime-benchmarks") {
let runner = cli.create_runner(cmd)?;
- runner.sync_run(|config| cmd.run::(config))
+ runner.sync_run(|config| cmd.run::(config))
} else {
- Err("Benchmarking wasn't enabled when building the node. \
- You can enable it with `--features runtime-benchmarks`.".into())
- }
- },
+ Err("Benchmarking wasn't enabled when building the node. You can enable it with \
+ `--features runtime-benchmarks`."
+ .into())
+ },
None => {
let runner = cli.create_runner(&cli.run)?;
runner.run_node_until_exit(|config| async move {
@@ -131,7 +115,8 @@ pub fn run() -> sc_cli::Result<()> {
Role::Light => service::new_light(config),
_ => service::new_full(config),
}
+ .map_err(sc_cli::Error::Service)
})
- }
+ },
}
}
diff --git a/bin/node-template/node/src/lib.rs b/bin/node-template/node/src/lib.rs
deleted file mode 100644
index 777c4f0a77147..0000000000000
--- a/bin/node-template/node/src/lib.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub mod chain_spec;
-pub mod service;
-pub mod rpc;
diff --git a/bin/node-template/node/src/rpc.rs b/bin/node-template/node/src/rpc.rs
index c1f0e0a8457bc..d23b23178ec2a 100644
--- a/bin/node-template/node/src/rpc.rs
+++ b/bin/node-template/node/src/rpc.rs
@@ -8,12 +8,11 @@
use std::sync::Arc;
use node_template_runtime::{opaque::Block, AccountId, Balance, Index};
+pub use sc_rpc_api::DenyUnsafe;
+use sc_transaction_pool_api::TransactionPool;
use sp_api::ProvideRuntimeApi;
-use sp_blockchain::{Error as BlockChainError, HeaderMetadata, HeaderBackend};
use sp_block_builder::BlockBuilder;
-pub use sc_rpc_api::DenyUnsafe;
-use sp_transaction_pool::TransactionPool;
-
+use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};
/// Full client dependencies.
pub struct FullDeps {
@@ -26,34 +25,25 @@ pub struct FullDeps {
}
/// Instantiate all full RPC extensions.
-pub fn create_full(
- deps: FullDeps,
-) -> jsonrpc_core::IoHandler where
+pub fn create_full(deps: FullDeps) -> jsonrpc_core::IoHandler
+where
C: ProvideRuntimeApi,
- C: HeaderBackend + HeaderMetadata + 'static,
+ C: HeaderBackend + HeaderMetadata + 'static,
C: Send + Sync + 'static,
C::Api: substrate_frame_rpc_system::AccountNonceApi,
C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi,
C::Api: BlockBuilder,
P: TransactionPool + 'static,
{
- use substrate_frame_rpc_system::{FullSystem, SystemApi};
use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi};
+ use substrate_frame_rpc_system::{FullSystem, SystemApi};
let mut io = jsonrpc_core::IoHandler::default();
- let FullDeps {
- client,
- pool,
- deny_unsafe,
- } = deps;
+ let FullDeps { client, pool, deny_unsafe } = deps;
- io.extend_with(
- SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe))
- );
+ io.extend_with(SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe)));
- io.extend_with(
- TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone()))
- );
+ io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone())));
// Extend this RPC with a custom API by using the following syntax.
// `YourRpcStruct` should have a reference to a client, which is needed
diff --git a/bin/node-template/node/src/service.rs b/bin/node-template/node/src/service.rs
index 1ddf8e7dbf1a6..c7b9503de1d08 100644
--- a/bin/node-template/node/src/service.rs
+++ b/bin/node-template/node/src/service.rs
@@ -1,96 +1,187 @@
//! Service and ServiceFactory implementation. Specialized wrapper over substrate service.
-use std::sync::Arc;
-use std::time::Duration;
-use sc_client_api::{ExecutorProvider, RemoteBackend};
use node_template_runtime::{self, opaque::Block, RuntimeApi};
+use sc_client_api::{ExecutorProvider, RemoteBackend};
+use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams};
+pub use sc_executor::NativeElseWasmExecutor;
+use sc_finality_grandpa::SharedVoterState;
+use sc_keystore::LocalKeystore;
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
-use sp_inherents::InherentDataProviders;
-use sc_executor::native_executor_instance;
-pub use sc_executor::NativeExecutor;
-use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};
-use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};
+use sc_telemetry::{Telemetry, TelemetryWorker};
+use sp_consensus::SlotData;
+use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
+use std::{sync::Arc, time::Duration};
// Our native executor instance.
-native_executor_instance!(
- pub Executor,
- node_template_runtime::api::dispatch,
- node_template_runtime::native_version,
- frame_benchmarking::benchmarking::HostFunctions,
-);
-
-type FullClient = sc_service::TFullClient;
+pub struct ExecutorDispatch;
+
+impl sc_executor::NativeExecutionDispatch for ExecutorDispatch {
+ type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;
+
+ fn dispatch(method: &str, data: &[u8]) -> Option> {
+ node_template_runtime::api::dispatch(method, data)
+ }
+
+ fn native_version() -> sc_executor::NativeVersion {
+ node_template_runtime::native_version()
+ }
+}
+
+type FullClient =
+ sc_service::TFullClient>;
type FullBackend = sc_service::TFullBackend;
type FullSelectChain = sc_consensus::LongestChain;
-pub fn new_partial(config: &Configuration) -> Result,
- sc_transaction_pool::FullPool,
- (
- sc_consensus_aura::AuraBlockImport<
- Block,
- FullClient,
- sc_finality_grandpa::GrandpaBlockImport,
- AuraPair
- >,
- sc_finality_grandpa::LinkHalf
- )
->, ServiceError> {
- let inherent_data_providers = sp_inherents::InherentDataProviders::new();
+pub fn new_partial(
+ config: &Configuration,
+) -> Result<
+ sc_service::PartialComponents<
+ FullClient,
+ FullBackend,
+ FullSelectChain,
+ sc_consensus::DefaultImportQueue,
+ sc_transaction_pool::FullPool,
+ (
+ sc_finality_grandpa::GrandpaBlockImport<
+ FullBackend,
+ Block,
+ FullClient,
+ FullSelectChain,
+ >,
+ sc_finality_grandpa::LinkHalf,
+ Option,
+ ),
+ >,
+ ServiceError,
+> {
+ if config.keystore_remote.is_some() {
+ return Err(ServiceError::Other(format!("Remote Keystores are not supported.")))
+ }
+
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
+ let executor = NativeElseWasmExecutor::::new(
+ config.wasm_method,
+ config.default_heap_pages,
+ config.max_runtime_instances,
+ );
let (client, backend, keystore_container, task_manager) =
- sc_service::new_full_parts::(&config)?;
+ sc_service::new_full_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ executor,
+ )?;
let client = Arc::new(client);
+ let telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
+
let select_chain = sc_consensus::LongestChain::new(backend.clone());
let transaction_pool = sc_transaction_pool::BasicPool::new_full(
config.transaction_pool.clone(),
+ config.role.is_authority().into(),
config.prometheus_registry(),
- task_manager.spawn_handle(),
+ task_manager.spawn_essential_handle(),
client.clone(),
);
let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(
- client.clone(), &(client.clone() as Arc<_>), select_chain.clone(),
+ client.clone(),
+ &(client.clone() as Arc<_>),
+ select_chain.clone(),
+ telemetry.as_ref().map(|x| x.handle()),
)?;
- let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(
- grandpa_block_import.clone(), client.clone(),
- );
+ let slot_duration = sc_consensus_aura::slot_duration(&*client)?.slot_duration();
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- aura_block_import.clone(),
- Some(Box::new(grandpa_block_import.clone())),
- None,
- client.clone(),
- inherent_data_providers.clone(),
- &task_manager.spawn_handle(),
- config.prometheus_registry(),
- sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
- )?;
+ let import_queue =
+ sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: grandpa_block_import.clone(),
+ justification_import: Some(Box::new(grandpa_block_import.clone())),
+ client: client.clone(),
+ create_inherent_data_providers: move |_, ()| async move {
+ let timestamp = sp_timestamp::InherentDataProvider::from_system_time();
+
+ let slot =
+ sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
+ *timestamp,
+ slot_duration,
+ );
+
+ Ok((timestamp, slot))
+ },
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(
+ client.executor().clone(),
+ ),
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
Ok(sc_service::PartialComponents {
- client, backend, task_manager, import_queue, keystore_container,
- select_chain, transaction_pool,inherent_data_providers,
- other: (aura_block_import, grandpa_link),
+ client,
+ backend,
+ task_manager,
+ import_queue,
+ keystore_container,
+ select_chain,
+ transaction_pool,
+ other: (grandpa_block_import, grandpa_link, telemetry),
})
}
+fn remote_keystore(_url: &String) -> Result, &'static str> {
+ // FIXME: here would the concrete keystore be built,
+ // must return a concrete type (NOT `LocalKeystore`) that
+ // implements `CryptoStore` and `SyncCryptoStore`
+ Err("Remote Keystore not supported.")
+}
+
/// Builds a new service for a full client.
-pub fn new_full(config: Configuration) -> Result {
+pub fn new_full(mut config: Configuration) -> Result {
let sc_service::PartialComponents {
- client, backend, mut task_manager, import_queue, keystore_container,
- select_chain, transaction_pool, inherent_data_providers,
- other: (block_import, grandpa_link),
+ client,
+ backend,
+ mut task_manager,
+ import_queue,
+ mut keystore_container,
+ select_chain,
+ transaction_pool,
+ other: (block_import, grandpa_link, mut telemetry),
} = new_partial(&config)?;
- let finality_proof_provider =
- GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());
+ if let Some(url) = &config.keystore_remote {
+ match remote_keystore(url) {
+ Ok(k) => keystore_container.set_remote_keystore(k),
+ Err(e) =>
+ return Err(ServiceError::Other(format!(
+ "Error hooking up remote keystore for {}: {}",
+ url, e
+ ))),
+ };
+ }
+
+ config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config());
+ let warp_sync = Arc::new(sc_finality_grandpa::warp_proof::NetworkProvider::new(
+ backend.clone(),
+ grandpa_link.shared_authority_set().clone(),
+ ));
- let (network, network_status_sinks, system_rpc_tx, network_starter) =
+ let (network, system_rpc_tx, network_starter) =
sc_service::build_network(sc_service::BuildNetworkParams {
config: &config,
client: client.clone(),
@@ -99,74 +190,96 @@ pub fn new_full(config: Configuration) -> Result {
import_queue,
on_demand: None,
block_announce_validator_builder: None,
- finality_proof_request_builder: None,
- finality_proof_provider: Some(finality_proof_provider.clone()),
+ warp_sync: Some(warp_sync),
})?;
if config.offchain_worker.enabled {
sc_service::build_offchain_workers(
- &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),
+ &config,
+ task_manager.spawn_handle(),
+ client.clone(),
+ network.clone(),
task_manager.ipfs_rt.clone(),
);
}
let role = config.role.clone();
let force_authoring = config.force_authoring;
+ let backoff_authoring_blocks: Option<()> = None;
let name = config.network.node_name.clone();
let enable_grandpa = !config.disable_grandpa;
let prometheus_registry = config.prometheus_registry().cloned();
- let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();
let rpc_extensions_builder = {
let client = client.clone();
let pool = transaction_pool.clone();
Box::new(move |deny_unsafe, _| {
- let deps = crate::rpc::FullDeps {
- client: client.clone(),
- pool: pool.clone(),
- deny_unsafe,
- };
+ let deps =
+ crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), deny_unsafe };
- crate::rpc::create_full(deps)
+ Ok(crate::rpc::create_full(deps))
})
};
- sc_service::spawn_tasks(sc_service::SpawnTasksParams {
+ let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
network: network.clone(),
client: client.clone(),
keystore: keystore_container.sync_keystore(),
task_manager: &mut task_manager,
transaction_pool: transaction_pool.clone(),
- telemetry_connection_sinks: telemetry_connection_sinks.clone(),
rpc_extensions_builder,
on_demand: None,
remote_blockchain: None,
- backend, network_status_sinks, system_rpc_tx, config,
+ backend,
+ system_rpc_tx,
+ config,
+ telemetry: telemetry.as_mut(),
})?;
if role.is_authority() {
- let proposer = sc_basic_authorship::ProposerFactory::new(
+ let proposer_factory = sc_basic_authorship::ProposerFactory::new(
task_manager.spawn_handle(),
client.clone(),
transaction_pool,
prometheus_registry.as_ref(),
+ telemetry.as_ref().map(|x| x.handle()),
);
let can_author_with =
sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());
- let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- client.clone(),
- select_chain,
- block_import,
- proposer,
- network.clone(),
- inherent_data_providers.clone(),
- force_authoring,
- keystore_container.sync_keystore(),
- can_author_with,
+ let slot_duration = sc_consensus_aura::slot_duration(&*client)?;
+ let raw_slot_duration = slot_duration.slot_duration();
+
+ let aura = sc_consensus_aura::start_aura::(
+ StartAuraParams {
+ slot_duration,
+ client: client.clone(),
+ select_chain,
+ block_import,
+ proposer_factory,
+ create_inherent_data_providers: move |_, ()| async move {
+ let timestamp = sp_timestamp::InherentDataProvider::from_system_time();
+
+ let slot =
+ sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
+ *timestamp,
+ raw_slot_duration,
+ );
+
+ Ok((timestamp, slot))
+ },
+ force_authoring,
+ backoff_authoring_blocks,
+ keystore: keystore_container.sync_keystore(),
+ can_author_with,
+ sync_oracle: network.clone(),
+ justification_sync_link: network.clone(),
+ block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32),
+ max_block_proposal_slot_portion: None,
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ },
)?;
// the AURA authoring task is considered essential, i.e. if it
@@ -176,11 +289,8 @@ pub fn new_full(config: Configuration) -> Result {
// if the node isn't actively participating in consensus then it doesn't
// need a keystore, regardless of which protocol we use below.
- let keystore = if role.is_authority() {
- Some(keystore_container.sync_keystore())
- } else {
- None
- };
+ let keystore =
+ if role.is_authority() { Some(keystore_container.sync_keystore()) } else { None };
let grandpa_config = sc_finality_grandpa::Config {
// FIXME #1578 make this available through chainspec
@@ -189,7 +299,8 @@ pub fn new_full(config: Configuration) -> Result {
name: Some(name),
observer_enabled: false,
keystore,
- is_authority: role.is_network_authority(),
+ local_role: role,
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
if enable_grandpa {
@@ -203,20 +314,18 @@ pub fn new_full(config: Configuration) -> Result {
config: grandpa_config,
link: grandpa_link,
network,
- telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()),
voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),
prometheus_registry,
shared_voter_state: SharedVoterState::empty(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
// the GRANDPA voter task is considered infallible, i.e.
// if it fails we take down the service with it.
task_manager.spawn_essential_handle().spawn_blocking(
"grandpa-voter",
- sc_finality_grandpa::run_grandpa_voter(grandpa_config)?
+ sc_finality_grandpa::run_grandpa_voter(grandpa_config)?,
);
- } else {
- sc_finality_grandpa::setup_disabled_grandpa(network)?;
}
network_starter.start_network();
@@ -224,42 +333,86 @@ pub fn new_full(config: Configuration) -> Result {
}
/// Builds a new service for a light client.
-pub fn new_light(config: Configuration) -> Result {
+pub fn new_light(mut config: Configuration) -> Result {
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
+ let executor = NativeElseWasmExecutor::::new(
+ config.wasm_method,
+ config.default_heap_pages,
+ config.max_runtime_instances,
+ );
+
let (client, backend, keystore_container, mut task_manager, on_demand) =
- sc_service::new_light_parts::(&config)?;
+ sc_service::new_light_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ executor,
+ )?;
+
+ let mut telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
+
+ config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config());
+
+ let select_chain = sc_consensus::LongestChain::new(backend.clone());
let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(
config.transaction_pool.clone(),
config.prometheus_registry(),
- task_manager.spawn_handle(),
+ task_manager.spawn_essential_handle(),
client.clone(),
on_demand.clone(),
));
- let grandpa_block_import = sc_finality_grandpa::light_block_import(
- client.clone(), backend.clone(), &(client.clone() as Arc<_>),
- Arc::new(on_demand.checker().clone()) as Arc<_>,
- )?;
- let finality_proof_import = grandpa_block_import.clone();
- let finality_proof_request_builder =
- finality_proof_import.create_finality_proof_request_builder();
-
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- grandpa_block_import,
- None,
- Some(Box::new(finality_proof_import)),
+ let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(
client.clone(),
- InherentDataProviders::new(),
- &task_manager.spawn_handle(),
- config.prometheus_registry(),
- sp_consensus::NeverCanAuthor,
+ &(client.clone() as Arc<_>),
+ select_chain.clone(),
+ telemetry.as_ref().map(|x| x.handle()),
)?;
- let finality_proof_provider =
- GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());
+ let slot_duration = sc_consensus_aura::slot_duration(&*client)?.slot_duration();
- let (network, network_status_sinks, system_rpc_tx, network_starter) =
+ let import_queue =
+ sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: grandpa_block_import.clone(),
+ justification_import: Some(Box::new(grandpa_block_import.clone())),
+ client: client.clone(),
+ create_inherent_data_providers: move |_, ()| async move {
+ let timestamp = sp_timestamp::InherentDataProvider::from_system_time();
+
+ let slot =
+ sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
+ *timestamp,
+ slot_duration,
+ );
+
+ Ok((timestamp, slot))
+ },
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::NeverCanAuthor,
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
+
+ let warp_sync = Arc::new(sc_finality_grandpa::warp_proof::NetworkProvider::new(
+ backend.clone(),
+ grandpa_link.shared_authority_set().clone(),
+ ));
+
+ let (network, system_rpc_tx, network_starter) =
sc_service::build_network(sc_service::BuildNetworkParams {
config: &config,
client: client.clone(),
@@ -268,34 +421,54 @@ pub fn new_light(config: Configuration) -> Result {
import_queue,
on_demand: Some(on_demand.clone()),
block_announce_validator_builder: None,
- finality_proof_request_builder: Some(finality_proof_request_builder),
- finality_proof_provider: Some(finality_proof_provider),
+ warp_sync: Some(warp_sync),
})?;
if config.offchain_worker.enabled {
sc_service::build_offchain_workers(
- &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),
+ &config,
+ task_manager.spawn_handle(),
+ client.clone(),
+ network.clone(),
task_manager.ipfs_rt.clone(),
);
}
+ let enable_grandpa = !config.disable_grandpa;
+ if enable_grandpa {
+ let name = config.network.node_name.clone();
+
+ let config = sc_finality_grandpa::Config {
+ gossip_duration: std::time::Duration::from_millis(333),
+ justification_period: 512,
+ name: Some(name),
+ observer_enabled: false,
+ keystore: None,
+ local_role: config.role.clone(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ };
+
+ task_manager.spawn_handle().spawn_blocking(
+ "grandpa-observer",
+ sc_finality_grandpa::run_grandpa_observer(config, grandpa_link, network.clone())?,
+ );
+ }
+
sc_service::spawn_tasks(sc_service::SpawnTasksParams {
remote_blockchain: Some(backend.remote_blockchain()),
transaction_pool,
task_manager: &mut task_manager,
on_demand: Some(on_demand),
- rpc_extensions_builder: Box::new(|_, _| ()),
- telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),
+ rpc_extensions_builder: Box::new(|_, _| Ok(())),
config,
client,
keystore: keystore_container.sync_keystore(),
backend,
network,
- network_status_sinks,
system_rpc_tx,
- })?;
-
- network_starter.start_network();
+ telemetry: telemetry.as_mut(),
+ })?;
- Ok(task_manager)
+ network_starter.start_network();
+ Ok(task_manager)
}
diff --git a/bin/node-template/pallets/template/Cargo.toml b/bin/node-template/pallets/template/Cargo.toml
index b00dcf930043d..e977ae363b481 100644
--- a/bin/node-template/pallets/template/Cargo.toml
+++ b/bin/node-template/pallets/template/Cargo.toml
@@ -1,56 +1,44 @@
[package]
-authors = ['Anonymous']
+authors = ['Substrate DevHub ']
edition = '2018'
name = 'pallet-template'
-version = "2.0.0"
+version = "3.0.0"
license = "Unlicense"
homepage = "https://substrate.dev"
-repository = "https://github.com/paritytech/substrate/"
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
description = "FRAME pallet template for defining custom runtime logic."
readme = "README.md"
+publish = false
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
[dependencies]
-codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-
-[dependencies.frame-support]
-default-features = false
-version = "2.0.0"
-path = "../../../../frame/support"
-
-[dependencies.frame-system]
-default-features = false
-version = "2.0.0"
-path = "../../../../frame/system"
-
-[dependencies.sp-core]
-default-features = false
-version = "2.0.0"
-path = "../../../../primitives/core"
-
-[dependencies.sp-io]
-default-features = false
-version = "2.0.0"
-path = "../../../../primitives/io"
-
-[dependencies.sp-runtime]
-default-features = false
-version = "2.0.0"
-path = "../../../../primitives/runtime"
-
-[dependencies.sp-std]
-default-features = false
-version = "2.0.0-rc6"
-path = "../../../../primitives/std"
+codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = [
+ "derive",
+] }
+scale-info = { version = "1.0", default-features = false, features = ["derive"] }
+frame-support = { default-features = false, version = "4.0.0-dev", path = "../../../../frame/support" }
+frame-system = { default-features = false, version = "4.0.0-dev", path = "../../../../frame/system" }
+frame-benchmarking = { default-features = false, version = "4.0.0-dev", path = "../../../../frame/benchmarking", optional = true }
+
+[dev-dependencies]
+frame-system = { default-features = false, version = "4.0.0-dev", path = "../../../../frame/system" }
+sp-core = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/core" }
+sp-io = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/io" }
+sp-runtime = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/runtime" }
[features]
default = ['std']
std = [
'codec/std',
+ 'scale-info/std',
'frame-support/std',
'frame-system/std',
+ 'frame-benchmarking/std',
+ 'frame-system/std',
'sp-io/std',
- 'sp-std/std',
]
+
+runtime-benchmarks = ["frame-benchmarking"]
+try-runtime = ["frame-support/try-runtime"]
diff --git a/bin/node-template/pallets/template/src/benchmarking.rs b/bin/node-template/pallets/template/src/benchmarking.rs
new file mode 100644
index 0000000000000..2117c048cfbdb
--- /dev/null
+++ b/bin/node-template/pallets/template/src/benchmarking.rs
@@ -0,0 +1,20 @@
+//! Benchmarking setup for pallet-template
+
+use super::*;
+
+#[allow(unused)]
+use crate::Pallet as Template;
+use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller};
+use frame_system::RawOrigin;
+
+benchmarks! {
+ do_something {
+ let s in 0 .. 100;
+ let caller: T::AccountId = whitelisted_caller();
+ }: _(RawOrigin::Signed(caller), s)
+ verify {
+ assert_eq!(Something::::get(), Some(s));
+ }
+}
+
+impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test);
diff --git a/bin/node-template/pallets/template/src/mock.rs b/bin/node-template/pallets/template/src/mock.rs
index a3dff240e4847..4532d3d09b497 100644
--- a/bin/node-template/pallets/template/src/mock.rs
+++ b/bin/node-template/pallets/template/src/mock.rs
@@ -1,30 +1,39 @@
-use crate::{Module, Trait};
+use crate as pallet_template;
+use frame_support::parameter_types;
+use frame_system as system;
use sp_core::H256;
-use frame_support::{impl_outer_origin, parameter_types, weights::Weight};
use sp_runtime::{
- traits::{BlakeTwo256, IdentityLookup}, testing::Header, Perbill,
+ testing::Header,
+ traits::{BlakeTwo256, IdentityLookup},
};
-use frame_system as system;
-impl_outer_origin! {
- pub enum Origin for Test {}
-}
+type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic;
+type Block = frame_system::mocking::MockBlock;
// Configure a mock runtime to test the pallet.
+frame_support::construct_runtime!(
+ pub enum Test where
+ Block = Block,
+ NodeBlock = Block,
+ UncheckedExtrinsic = UncheckedExtrinsic,
+ {
+ System: frame_system::{Pallet, Call, Config, Storage, Event},
+ TemplateModule: pallet_template::{Pallet, Call, Storage, Event},
+ }
+);
-#[derive(Clone, Eq, PartialEq)]
-pub struct Test;
parameter_types! {
pub const BlockHashCount: u64 = 250;
- pub const MaximumBlockWeight: Weight = 1024;
- pub const MaximumBlockLength: u32 = 2 * 1024;
- pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
+ pub const SS58Prefix: u8 = 42;
}
-impl system::Trait for Test {
- type BaseCallFilter = ();
+impl system::Config for Test {
+ type BaseCallFilter = frame_support::traits::Everything;
+ type BlockWeights = ();
+ type BlockLength = ();
+ type DbWeight = ();
type Origin = Origin;
- type Call = ();
+ type Call = Call;
type Index = u64;
type BlockNumber = u64;
type Hash = H256;
@@ -32,29 +41,22 @@ impl system::Trait for Test {
type AccountId = u64;
type Lookup = IdentityLookup;
type Header = Header;
- type Event = ();
+ type Event = Event;
type BlockHashCount = BlockHashCount;
- type MaximumBlockWeight = MaximumBlockWeight;
- type DbWeight = ();
- type BlockExecutionWeight = ();
- type ExtrinsicBaseWeight = ();
- type MaximumExtrinsicWeight = MaximumBlockWeight;
- type MaximumBlockLength = MaximumBlockLength;
- type AvailableBlockRatio = AvailableBlockRatio;
type Version = ();
- type PalletInfo = ();
+ type PalletInfo = PalletInfo;
type AccountData = ();
type OnNewAccount = ();
type OnKilledAccount = ();
type SystemWeightInfo = ();
+ type SS58Prefix = SS58Prefix;
+ type OnSetCode = ();
}
-impl Trait for Test {
- type Event = ();
+impl pallet_template::Config for Test {
+ type Event = Event;
}
-pub type TemplateModule = Module;
-
// Build genesis storage according to the mock runtime.
pub fn new_test_ext() -> sp_io::TestExternalities {
system::GenesisConfig::default().build_storage::().unwrap().into()
diff --git a/bin/node-template/pallets/template/src/tests.rs b/bin/node-template/pallets/template/src/tests.rs
index 3356b29ff3598..2205658601721 100644
--- a/bin/node-template/pallets/template/src/tests.rs
+++ b/bin/node-template/pallets/template/src/tests.rs
@@ -1,5 +1,5 @@
-use crate::{Error, mock::*};
-use frame_support::{assert_ok, assert_noop};
+use crate::{mock::*, Error};
+use frame_support::{assert_noop, assert_ok};
#[test]
fn it_works_for_default_value() {
@@ -15,9 +15,6 @@ fn it_works_for_default_value() {
fn correct_error_for_none_value() {
new_test_ext().execute_with(|| {
// Ensure the expected error is thrown when no value is present.
- assert_noop!(
- TemplateModule::cause_error(Origin::signed(1)),
- Error::::NoneValue
- );
+ assert_noop!(TemplateModule::cause_error(Origin::signed(1)), Error::::NoneValue);
});
}
diff --git a/bin/node-template/runtime/Cargo.toml b/bin/node-template/runtime/Cargo.toml
index ed5a114b813f8..47e67af2b9ae1 100644
--- a/bin/node-template/runtime/Cargo.toml
+++ b/bin/node-template/runtime/Cargo.toml
@@ -1,70 +1,74 @@
[package]
name = "node-template-runtime"
-version = "2.0.0"
-authors = ["Anonymous"]
+version = "3.0.0"
+authors = ["Substrate DevHub "]
edition = "2018"
license = "Unlicense"
homepage = "https://substrate.dev"
-repository = "https://github.com/paritytech/substrate/"
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
+publish = false
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
[dependencies]
-codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
+scale-info = { version = "1.0", default-features = false, features = ["derive"] }
-pallet-aura = { version = "2.0.0", default-features = false, path = "../../../frame/aura" }
-pallet-balances = { version = "2.0.0", default-features = false, path = "../../../frame/balances" }
-frame-support = { version = "2.0.0", default-features = false, path = "../../../frame/support" }
-pallet-grandpa = { version = "2.0.0", default-features = false, path = "../../../frame/grandpa" }
-pallet-randomness-collective-flip = { version = "2.0.0", default-features = false, path = "../../../frame/randomness-collective-flip" }
-pallet-sudo = { version = "2.0.0", default-features = false, path = "../../../frame/sudo" }
-frame-system = { version = "2.0.0", default-features = false, path = "../../../frame/system" }
-pallet-timestamp = { version = "2.0.0", default-features = false, path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "2.0.0", default-features = false, path = "../../../frame/transaction-payment" }
-frame-executive = { version = "2.0.0", default-features = false, path = "../../../frame/executive" }
-serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "2.0.0", default-features = false, path = "../../../primitives/api" }
-sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "2.0.0"}
-sp-consensus-aura = { version = "0.8.0", default-features = false, path = "../../../primitives/consensus/aura" }
-sp-core = { version = "2.0.0", default-features = false, path = "../../../primitives/core" }
-sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "2.0.0"}
-sp-offchain = { version = "2.0.0", default-features = false, path = "../../../primitives/offchain" }
-sp-runtime = { version = "2.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-session = { version = "2.0.0", default-features = false, path = "../../../primitives/session" }
-sp-std = { version = "2.0.0", default-features = false, path = "../../../primitives/std" }
-sp-transaction-pool = { version = "2.0.0", default-features = false, path = "../../../primitives/transaction-pool" }
-sp-version = { version = "2.0.0", default-features = false, path = "../../../primitives/version" }
+pallet-aura = { version = "4.0.0-dev", default-features = false, path = "../../../frame/aura" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../../../frame/balances" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../../frame/support" }
+pallet-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../../frame/grandpa" }
+pallet-randomness-collective-flip = { version = "4.0.0-dev", default-features = false, path = "../../../frame/randomness-collective-flip" }
+pallet-sudo = { version = "4.0.0-dev", default-features = false, path = "../../../frame/sudo" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment" }
+frame-executive = { version = "4.0.0-dev", default-features = false, path = "../../../frame/executive" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/api" }
+sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "4.0.0-dev"}
+sp-consensus-aura = { version = "0.10.0-dev", default-features = false, path = "../../../primitives/consensus/aura" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "4.0.0-dev"}
+sp-offchain = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/offchain" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/session" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-transaction-pool = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/transaction-pool" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/version" }
# Used for the node template's RPCs
-frame-system-rpc-runtime-api = { version = "2.0.0", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
-pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
+frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
+pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
# Used for runtime benchmarking
-frame-benchmarking = { version = "2.0.0", default-features = false, path = "../../../frame/benchmarking", optional = true }
-frame-system-benchmarking = { version = "2.0.0", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/benchmarking", optional = true }
+frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
hex-literal = { version = "0.3.1", optional = true }
-template = { version = "2.0.0", default-features = false, path = "../pallets/template", package = "pallet-template" }
+pallet-template = { version = "3.0.0", default-features = false, path = "../pallets/template" }
[build-dependencies]
-wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
[features]
default = ["std"]
std = [
"codec/std",
+ "scale-info/std",
"frame-executive/std",
"frame-support/std",
+ "frame-system-rpc-runtime-api/std",
+ "frame-system/std",
"pallet-aura/std",
"pallet-balances/std",
"pallet-grandpa/std",
"pallet-randomness-collective-flip/std",
"pallet-sudo/std",
+ "pallet-template/std",
"pallet-timestamp/std",
- "pallet-transaction-payment/std",
"pallet-transaction-payment-rpc-runtime-api/std",
- "serde",
+ "pallet-transaction-payment/std",
"sp-api/std",
"sp-block-builder/std",
"sp-consensus-aura/std",
@@ -76,17 +80,15 @@ std = [
"sp-std/std",
"sp-transaction-pool/std",
"sp-version/std",
- "frame-system/std",
- "frame-system-rpc-runtime-api/std",
- "template/std",
]
runtime-benchmarks = [
- "sp-runtime/runtime-benchmarks",
"frame-benchmarking",
"frame-support/runtime-benchmarks",
"frame-system-benchmarking",
- "hex-literal",
"frame-system/runtime-benchmarks",
+ "hex-literal",
"pallet-balances/runtime-benchmarks",
+ "pallet-template/runtime-benchmarks",
"pallet-timestamp/runtime-benchmarks",
+ "sp-runtime/runtime-benchmarks",
]
diff --git a/bin/node-template/runtime/build.rs b/bin/node-template/runtime/build.rs
index 9654139121f6f..9b53d2457dffd 100644
--- a/bin/node-template/runtime/build.rs
+++ b/bin/node-template/runtime/build.rs
@@ -1,9 +1,8 @@
-use wasm_builder_runner::WasmBuilder;
+use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
- .with_wasm_builder_from_crates("2.0.1")
.export_heap_base()
.import_memory()
.build()
diff --git a/bin/node-template/runtime/src/lib.rs b/bin/node-template/runtime/src/lib.rs
index e96de63731745..eecc93e166666 100644
--- a/bin/node-template/runtime/src/lib.rs
+++ b/bin/node-template/runtime/src/lib.rs
@@ -1,45 +1,47 @@
#![cfg_attr(not(feature = "std"), no_std)]
// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.
-#![recursion_limit="256"]
+#![recursion_limit = "256"]
// Make the WASM binary available.
#[cfg(feature = "std")]
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
-use sp_std::prelude::*;
-use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
-use sp_runtime::{
- ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature,
- transaction_validity::{TransactionValidity, TransactionSource},
-};
-use sp_runtime::traits::{
- BlakeTwo256, Block as BlockT, IdentityLookup, Verify, IdentifyAccount, NumberFor, Saturating,
+use pallet_grandpa::{
+ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList,
};
use sp_api::impl_runtime_apis;
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
-use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};
-use pallet_grandpa::fg_primitives;
-use sp_version::RuntimeVersion;
+use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
+use sp_runtime::{
+ create_runtime_str, generic, impl_opaque_keys,
+ traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, NumberFor, Verify},
+ transaction_validity::{TransactionSource, TransactionValidity},
+ ApplyExtrinsicResult, MultiSignature,
+};
+use sp_std::prelude::*;
#[cfg(feature = "std")]
use sp_version::NativeVersion;
+use sp_version::RuntimeVersion;
// A few exports that help ease life for downstream crates.
-#[cfg(any(feature = "std", test))]
-pub use sp_runtime::BuildStorage;
-pub use pallet_timestamp::Call as TimestampCall;
-pub use pallet_balances::Call as BalancesCall;
-pub use sp_runtime::{Permill, Perbill};
pub use frame_support::{
- construct_runtime, parameter_types, StorageValue,
- traits::{KeyOwnerProofSystem, Randomness},
+ construct_runtime, parameter_types,
+ traits::{KeyOwnerProofSystem, Randomness, StorageInfo},
weights::{
- Weight, IdentityFee,
constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
+ IdentityFee, Weight,
},
+ StorageValue,
};
+pub use pallet_balances::Call as BalancesCall;
+pub use pallet_timestamp::Call as TimestampCall;
+use pallet_transaction_payment::CurrencyAdapter;
+#[cfg(any(feature = "std", test))]
+pub use sp_runtime::BuildStorage;
+pub use sp_runtime::{Perbill, Permill};
/// Import the template pallet.
-pub use template;
+pub use pallet_template;
/// An index to a block.
pub type BlockNumber = u32;
@@ -51,10 +53,6 @@ pub type Signature = MultiSignature;
/// to the public key of our transaction signing scheme.
pub type AccountId = <::Signer as IdentifyAccount>::AccountId;
-/// The type for looking up accounts. We don't expect more than 4 billion of them, but you
-/// never know...
-pub type AccountIndex = u32;
-
/// Balance of an account.
pub type Balance = u128;
@@ -64,9 +62,6 @@ pub type Index = u32;
/// A hash of some data used by the chain.
pub type Hash = sp_core::H256;
-/// Digest item type.
-pub type DigestItem = generic::DigestItem;
-
/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know
/// the specifics of the runtime. They can then be made to be agnostic over specific formats
/// of data like extrinsics, allowing for them to continue syncing the network through upgrades
@@ -91,18 +86,34 @@ pub mod opaque {
}
}
+// To learn more about runtime versioning and what each of the following value means:
+// https://substrate.dev/docs/en/knowledgebase/runtime/upgrades#runtime-versioning
+#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("node-template"),
impl_name: create_runtime_str!("node-template"),
authoring_version: 1,
- spec_version: 1,
+ // The version of the runtime specification. A full node will not attempt to use its native
+ // runtime in substitute for the on-chain Wasm runtime unless all of `spec_name`,
+ // `spec_version`, and `authoring_version` are the same between Wasm and native.
+ // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use
+ // the compatible custom types.
+ spec_version: 100,
impl_version: 1,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
};
+/// This determines the average expected block time that we are targeting.
+/// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`.
+/// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked
+/// up by `pallet_aura` to implement `fn slot_duration()`.
+///
+/// Change this to adjust the block time.
pub const MILLISECS_PER_BLOCK: u64 = 6000;
+// NOTE: Currently it is not possible to change the slot duration after the chain has started.
+// Attempting to do so will brick block production.
pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;
// Time is measured by number of blocks.
@@ -113,35 +124,37 @@ pub const DAYS: BlockNumber = HOURS * 24;
/// The version information used to identify this runtime when compiled natively.
#[cfg(feature = "std")]
pub fn native_version() -> NativeVersion {
- NativeVersion {
- runtime_version: VERSION,
- can_author_with: Default::default(),
- }
+ NativeVersion { runtime_version: VERSION, can_author_with: Default::default() }
}
+const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
+
parameter_types! {
+ pub const Version: RuntimeVersion = VERSION;
pub const BlockHashCount: BlockNumber = 2400;
/// We allow for 2 seconds of compute with a 6 second average block time.
- pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;
- pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
- /// Assume 10% of weight for average on_initialize calls.
- pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()
- .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();
- pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;
- pub const Version: RuntimeVersion = VERSION;
+ pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights
+ ::with_sensible_defaults(2 * WEIGHT_PER_SECOND, NORMAL_DISPATCH_RATIO);
+ pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength
+ ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO);
+ pub const SS58Prefix: u8 = 42;
}
// Configure FRAME pallets to include in runtime.
-impl frame_system::Trait for Runtime {
+impl frame_system::Config for Runtime {
/// The basic call filter to use in dispatchable.
- type BaseCallFilter = ();
+ type BaseCallFilter = frame_support::traits::Everything;
+ /// Block & extrinsics weights: base values and limits.
+ type BlockWeights = BlockWeights;
+ /// The maximum length of a block (in bytes).
+ type BlockLength = BlockLength;
/// The identifier used to distinguish between accounts.
type AccountId = AccountId;
/// The aggregated dispatch type that is available for extrinsics.
type Call = Call;
/// The lookup mechanism to get account ID from whatever is passed in dispatchers.
- type Lookup = IdentityLookup;
+ type Lookup = AccountIdLookup;
/// The index type for storing how many extrinsics an account has signed.
type Index = Index;
/// The index type for blocks.
@@ -158,24 +171,8 @@ impl frame_system::Trait for Runtime {
type Origin = Origin;
/// Maximum number of block number to block hash mappings to keep (oldest pruned first).
type BlockHashCount = BlockHashCount;
- /// Maximum weight of each block.
- type MaximumBlockWeight = MaximumBlockWeight;
/// The weight of database operations that the runtime can invoke.
type DbWeight = RocksDbWeight;
- /// The weight of the overhead invoked on the block import process, independent of the
- /// extrinsics included in that block.
- type BlockExecutionWeight = BlockExecutionWeight;
- /// The base weight of any extrinsic processed by the runtime, independent of the
- /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...)
- type ExtrinsicBaseWeight = ExtrinsicBaseWeight;
- /// The maximum weight that a single extrinsic of `Normal` dispatch class can have,
- /// idependent of the logic of that extrinsics. (Roughly max block weight - average on
- /// initialize cost).
- type MaximumExtrinsicWeight = MaximumExtrinsicWeight;
- /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.
- type MaximumBlockLength = MaximumBlockLength;
- /// Portion of the block weight that is available to all normal transactions.
- type AvailableBlockRatio = AvailableBlockRatio;
/// Version of the runtime.
type Version = Version;
/// Converts a module to the index of the module in `construct_runtime!`.
@@ -190,13 +187,25 @@ impl frame_system::Trait for Runtime {
type AccountData = pallet_balances::AccountData;
/// Weight information for the extrinsics of this pallet.
type SystemWeightInfo = ();
+ /// This is used as an identifier of the chain. 42 is the generic substrate prefix.
+ type SS58Prefix = SS58Prefix;
+ /// The set code logic, just the default since we're not a parachain.
+ type OnSetCode = ();
}
-impl pallet_aura::Trait for Runtime {
+impl pallet_randomness_collective_flip::Config for Runtime {}
+
+parameter_types! {
+ pub const MaxAuthorities: u32 = 32;
+}
+
+impl pallet_aura::Config for Runtime {
type AuthorityId = AuraId;
+ type DisabledValidators = ();
+ type MaxAuthorities = MaxAuthorities;
}
-impl pallet_grandpa::Trait for Runtime {
+impl pallet_grandpa::Config for Runtime {
type Event = Event;
type Call = Call;
@@ -219,7 +228,7 @@ parameter_types! {
pub const MinimumPeriod: u64 = SLOT_DURATION / 2;
}
-impl pallet_timestamp::Trait for Runtime {
+impl pallet_timestamp::Config for Runtime {
/// A timestamp: milliseconds since the unix epoch.
type Moment = u64;
type OnTimestampSet = Aura;
@@ -232,8 +241,10 @@ parameter_types! {
pub const MaxLocks: u32 = 50;
}
-impl pallet_balances::Trait for Runtime {
+impl pallet_balances::Config for Runtime {
type MaxLocks = MaxLocks;
+ type MaxReserves = ();
+ type ReserveIdentifier = [u8; 8];
/// The type for recording an account's balance.
type Balance = Balance;
/// The ubiquitous event type.
@@ -241,28 +252,27 @@ impl pallet_balances::Trait for Runtime {
type DustRemoval = ();
type ExistentialDeposit = ExistentialDeposit;
type AccountStore = System;
- type WeightInfo = ();
+ type WeightInfo = pallet_balances::weights::SubstrateWeight;
}
parameter_types! {
pub const TransactionByteFee: Balance = 1;
}
-impl pallet_transaction_payment::Trait for Runtime {
- type Currency = Balances;
- type OnTransactionPayment = ();
+impl pallet_transaction_payment::Config for Runtime {
+ type OnChargeTransaction = CurrencyAdapter;
type TransactionByteFee = TransactionByteFee;
type WeightToFee = IdentityFee;
type FeeMultiplierUpdate = ();
}
-impl pallet_sudo::Trait for Runtime {
+impl pallet_sudo::Config for Runtime {
type Event = Event;
type Call = Call;
}
-/// Configure the pallet template in pallets/template.
-impl template::Trait for Runtime {
+/// Configure the pallet-template in pallets/template.
+impl pallet_template::Config for Runtime {
type Event = Event;
}
@@ -273,29 +283,25 @@ construct_runtime!(
NodeBlock = opaque::Block,
UncheckedExtrinsic = UncheckedExtrinsic
{
- System: frame_system::{Module, Call, Config, Storage, Event},
- RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},
- Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},
- Aura: pallet_aura::{Module, Config, Inherent},
- Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},
- Balances: pallet_balances::{Module, Call, Storage, Config, Event},
- TransactionPayment: pallet_transaction_payment::{Module, Storage},
- Sudo: pallet_sudo::{Module, Call, Config, Storage, Event},
- // Include the custom logic from the template pallet in the runtime.
- TemplateModule: template::{Module, Call, Storage, Event},
+ System: frame_system::{Pallet, Call, Config, Storage, Event},
+ RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage},
+ Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
+ Aura: pallet_aura::{Pallet, Config},
+ Grandpa: pallet_grandpa::{Pallet, Call, Storage, Config, Event},
+ Balances: pallet_balances::{Pallet, Call, Storage, Config, Event},
+ TransactionPayment: pallet_transaction_payment::{Pallet, Storage},
+ Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event},
+ // Include the custom logic from the pallet-template in the runtime.
+ TemplateModule: pallet_template::{Pallet, Call, Storage, Event},
}
);
/// The address format for describing accounts.
-pub type Address = AccountId;
+pub type Address = sp_runtime::MultiAddress;
/// Block header type as expected by this runtime.
pub type Header = generic::Header;
/// Block type as expected by this runtime.
pub type Block = generic::Block;
-/// A Block signed with a Justification
-pub type SignedBlock = generic::SignedBlock;
-/// BlockId type as expected by this runtime.
-pub type BlockId = generic::BlockId;
/// The SignedExtension to the basic transaction logic.
pub type SignedExtra = (
frame_system::CheckSpecVersion,
@@ -304,19 +310,17 @@ pub type SignedExtra = (
frame_system::CheckEra,
frame_system::CheckNonce,
frame_system::CheckWeight,
- pallet_transaction_payment::ChargeTransactionPayment
+ pallet_transaction_payment::ChargeTransactionPayment,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic;
-/// Extrinsic type that has already been checked.
-pub type CheckedExtrinsic = generic::CheckedExtrinsic;
/// Executive: handles dispatch to the various modules.
pub type Executive = frame_executive::Executive<
Runtime,
Block,
frame_system::ChainContext,
Runtime,
- AllModules,
+ AllPallets,
>;
impl_runtime_apis! {
@@ -326,7 +330,7 @@ impl_runtime_apis! {
}
fn execute_block(block: Block) {
- Executive::execute_block(block)
+ Executive::execute_block(block);
}
fn initialize_block(header: &::Header) {
@@ -336,7 +340,7 @@ impl_runtime_apis! {
impl sp_api::Metadata for Runtime {
fn metadata() -> OpaqueMetadata {
- Runtime::metadata().into()
+ OpaqueMetadata::new(Runtime::metadata().into())
}
}
@@ -359,18 +363,15 @@ impl_runtime_apis! {
) -> sp_inherents::CheckInherentsResult {
data.check_extrinsics(&block)
}
-
- fn random_seed() -> ::Hash {
- RandomnessCollectiveFlip::random_seed()
- }
}
impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime {
fn validate_transaction(
source: TransactionSource,
tx: ::Extrinsic,
+ block_hash: ::Hash,
) -> TransactionValidity {
- Executive::validate_transaction(source, tx)
+ Executive::validate_transaction(source, tx, block_hash)
}
}
@@ -381,12 +382,12 @@ impl_runtime_apis! {
}
impl sp_consensus_aura::AuraApi for Runtime {
- fn slot_duration() -> u64 {
- Aura::slot_duration()
+ fn slot_duration() -> sp_consensus_aura::SlotDuration {
+ sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration())
}
fn authorities() -> Vec {
- Aura::authorities()
+ Aura::authorities().into_inner()
}
}
@@ -407,6 +408,10 @@ impl_runtime_apis! {
Grandpa::grandpa_authorities()
}
+ fn current_set_id() -> fg_primitives::SetId {
+ Grandpa::current_set_id()
+ }
+
fn submit_report_equivocation_unsigned_extrinsic(
_equivocation_proof: fg_primitives::EquivocationProof<
::Hash,
@@ -441,17 +446,43 @@ impl_runtime_apis! {
) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo {
TransactionPayment::query_info(uxt, len)
}
+ fn query_fee_details(
+ uxt: ::Extrinsic,
+ len: u32,
+ ) -> pallet_transaction_payment::FeeDetails {
+ TransactionPayment::query_fee_details(uxt, len)
+ }
}
#[cfg(feature = "runtime-benchmarks")]
impl frame_benchmarking::Benchmark for Runtime {
+ fn benchmark_metadata(extra: bool) -> (
+ Vec,
+ Vec,
+ ) {
+ use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList};
+ use frame_support::traits::StorageInfoTrait;
+ use frame_system_benchmarking::Pallet as SystemBench;
+
+ let mut list = Vec::::new();
+
+ list_benchmark!(list, extra, frame_system, SystemBench::);
+ list_benchmark!(list, extra, pallet_balances, Balances);
+ list_benchmark!(list, extra, pallet_timestamp, Timestamp);
+ list_benchmark!(list, extra, pallet_template, TemplateModule);
+
+ let storage_info = AllPalletsWithSystem::storage_info();
+
+ return (list, storage_info)
+ }
+
fn dispatch_benchmark(
config: frame_benchmarking::BenchmarkConfig
) -> Result, sp_runtime::RuntimeString> {
use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey};
- use frame_system_benchmarking::Module as SystemBench;
- impl frame_system_benchmarking::Trait for Runtime {}
+ use frame_system_benchmarking::Pallet as SystemBench;
+ impl frame_system_benchmarking::Config for Runtime {}
let whitelist: Vec = vec![
// Block Number
@@ -472,6 +503,7 @@ impl_runtime_apis! {
add_benchmark!(params, batches, frame_system, SystemBench::);
add_benchmark!(params, batches, pallet_balances, Balances);
add_benchmark!(params, batches, pallet_timestamp, Timestamp);
+ add_benchmark!(params, batches, pallet_template, TemplateModule);
if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
Ok(batches)
diff --git a/bin/node-template/scripts/docker_run.sh b/bin/node-template/scripts/docker_run.sh
new file mode 100644
index 0000000000000..0bac44b4cfb3b
--- /dev/null
+++ b/bin/node-template/scripts/docker_run.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+# This script is meant to be run on Unix/Linux based systems
+set -e
+
+echo "*** Start Substrate node template ***"
+
+cd $(dirname ${BASH_SOURCE[0]})/..
+
+docker-compose down --remove-orphans
+docker-compose run --rm --service-ports dev $@
diff --git a/bin/node-template/scripts/init.sh b/bin/node-template/scripts/init.sh
index 1405a41ef333e..f976f7235d700 100755
--- a/bin/node-template/scripts/init.sh
+++ b/bin/node-template/scripts/init.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-
+# This script is meant to be run on Unix/Linux based systems
set -e
echo "*** Initializing WASM build environment"
diff --git a/bin/node/bench/Cargo.toml b/bin/node/bench/Cargo.toml
index 88362f7e51022..b19a71966fb87 100644
--- a/bin/node/bench/Cargo.toml
+++ b/bin/node/bench/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "node-bench"
-version = "0.8.0"
+version = "0.9.0-dev"
authors = ["Parity Technologies "]
description = "Substrate node integration benchmarks."
edition = "2018"
@@ -11,33 +11,34 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
log = "0.4.8"
node-primitives = { version = "2.0.0", path = "../primitives" }
-node-testing = { version = "2.0.0", path = "../testing" }
-node-runtime = { version = "2.0.0", path = "../runtime" }
-sc-cli = { version = "0.8.0", path = "../../../client/cli" }
-sc-client-api = { version = "2.0.0", path = "../../../client/api/" }
-sp-runtime = { version = "2.0.0", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0", path = "../../../primitives/state-machine" }
-serde = "1.0.101"
-serde_json = "1.0.41"
+node-testing = { version = "3.0.0-dev", path = "../testing" }
+node-runtime = { version = "3.0.0-dev", path = "../runtime" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api/" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
+serde = "1.0.126"
+serde_json = "1.0.68"
structopt = "0.3"
derive_more = "0.99.2"
-kvdb = "0.7"
-kvdb-rocksdb = "0.9.1"
-sp-trie = { version = "2.0.0", path = "../../../primitives/trie" }
-sp-core = { version = "2.0.0", path = "../../../primitives/core" }
-sp-consensus = { version = "0.8.0", path = "../../../primitives/consensus/common" }
-sp-transaction-pool = { version = "2.0.0", path = "../../../primitives/transaction-pool" }
-sc-basic-authorship = { version = "0.8.0", path = "../../../client/basic-authorship" }
-sp-inherents = { version = "2.0.0", path = "../../../primitives/inherents" }
-sp-timestamp = { version = "2.0.0", default-features = false, path = "../../../primitives/timestamp" }
-sp-tracing = { version = "2.0.0", path = "../../../primitives/tracing" }
+kvdb = "0.10.0"
+kvdb-rocksdb = "0.14.0"
+sp-trie = { version = "4.0.0-dev", path = "../../../primitives/trie" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../../client/basic-authorship" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/timestamp" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
hash-db = "0.15.2"
tempfile = "3.1.0"
fs_extra = "1"
hex = "0.4.0"
rand = { version = "0.7.2", features = ["small_rng"] }
lazy_static = "1.4.0"
-parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
-parity-db = { version = "0.1.2" }
-sc-transaction-pool = { version = "2.0.0", path = "../../../client/transaction-pool" }
+parity-util-mem = { version = "0.10.0", default-features = false, features = [
+ "primitive-types",
+] }
+parity-db = { version = "0.3" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
futures = { version = "0.3.4", features = ["thread-pool"] }
diff --git a/bin/node/bench/src/common.rs b/bin/node/bench/src/common.rs
index 2637d6e9bd04d..d04d79e9907af 100644
--- a/bin/node/bench/src/common.rs
+++ b/bin/node/bench/src/common.rs
@@ -1,7 +1,6 @@
-
// This file is part of Substrate.
-// Copyright (C) 2020 Parity Technologies (UK) Ltd.
+// Copyright (C) 2020-2021 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
@@ -45,4 +44,4 @@ impl SizeType {
SizeType::Custom(val) => Some(*val),
}
}
-}
\ No newline at end of file
+}
diff --git a/bin/node/bench/src/construct.rs b/bin/node/bench/src/construct.rs
index 5506dc426de0b..1532e02bd3ef6 100644
--- a/bin/node/bench/src/construct.rs
+++ b/bin/node/bench/src/construct.rs
@@ -1,6 +1,6 @@
// This file is part of Substrate.
-// Copyright (C) 2020 Parity Technologies (UK) Ltd.
+// Copyright (C) 2020-2021 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
@@ -24,35 +24,22 @@
//! DO NOT depend on user input). Thus transaction generation should be
//! based on randomized data.
-use std::{
- borrow::Cow,
- collections::HashMap,
- pin::Pin,
- sync::Arc,
-};
use futures::Future;
+use std::{borrow::Cow, collections::HashMap, pin::Pin, sync::Arc};
use node_primitives::Block;
-use node_testing::bench::{BenchDb, Profile, BlockType, KeyTypes, DatabaseType};
-use sp_runtime::{
- generic::BlockId,
- traits::NumberFor,
- OpaqueExtrinsic,
-};
-use sp_transaction_pool::{
- ImportNotificationStream,
- PoolFuture,
- PoolStatus,
- TransactionFor,
- TransactionSource,
- TransactionStatusStreamFor,
- TxHash,
+use node_testing::bench::{BenchDb, BlockType, DatabaseType, KeyTypes, Profile};
+use sc_transaction_pool_api::{
+ ImportNotificationStream, PoolFuture, PoolStatus, TransactionFor, TransactionSource,
+ TransactionStatusStreamFor, TxHash,
};
-use sp_consensus::{Environment, Proposer, RecordProof};
+use sp_consensus::{Environment, Proposer};
+use sp_inherents::InherentDataProvider;
+use sp_runtime::{generic::BlockId, traits::NumberFor, OpaqueExtrinsic};
use crate::{
common::SizeType,
- core::{self, Path, Mode},
+ core::{self, Mode, Path},
};
pub struct ConstructionBenchmarkDescription {
@@ -71,7 +58,6 @@ pub struct ConstructionBenchmark {
impl core::BenchmarkDescription for ConstructionBenchmarkDescription {
fn path(&self) -> Path {
-
let mut path = Path::new(&["node", "proposer"]);
match self.profile {
@@ -103,11 +89,7 @@ impl core::BenchmarkDescription for ConstructionBenchmarkDescription {
fn setup(self: Box) -> Box {
let mut extrinsics: Vec> = Vec::new();
- let mut bench_db = BenchDb::with_key_types(
- self.database_type,
- 50_000,
- self.key_types
- );
+ let mut bench_db = BenchDb::with_key_types(self.database_type, 50_000, self.key_types);
let client = bench_db.client();
@@ -126,11 +108,9 @@ impl core::BenchmarkDescription for ConstructionBenchmarkDescription {
fn name(&self) -> Cow<'static, str> {
format!(
"Block construction ({:?}/{}, {:?}, {:?} backend)",
- self.block_type,
- self.size,
- self.profile,
- self.database_type,
- ).into()
+ self.block_type, self.size, self.profile, self.database_type,
+ )
+ .into()
}
}
@@ -138,7 +118,9 @@ impl core::Benchmark for ConstructionBenchmark {
fn run(&mut self, mode: Mode) -> std::time::Duration {
let context = self.database.create_context(self.profile);
- let _ = context.client.runtime_version_at(&BlockId::Number(0))
+ let _ = context
+ .client
+ .runtime_version_at(&BlockId::Number(0))
.expect("Failed to get runtime version")
.spec_version;
@@ -151,28 +133,31 @@ impl core::Benchmark for ConstructionBenchmark {
context.client.clone(),
self.transactions.clone().into(),
None,
+ None,
);
- let inherent_data_providers = sp_inherents::InherentDataProviders::new();
- inherent_data_providers
- .register_provider(sp_timestamp::InherentDataProvider)
- .expect("Failed to register timestamp data provider");
+ let timestamp_provider = sp_timestamp::InherentDataProvider::from_system_time();
let start = std::time::Instant::now();
- let proposer = futures::executor::block_on(proposer_factory.init(
- &context.client.header(&BlockId::number(0))
- .expect("Database error querying block #0")
- .expect("Block #0 should exist"),
- )).expect("Proposer initialization failed");
-
- let _block = futures::executor::block_on(
- proposer.propose(
- inherent_data_providers.create_inherent_data().expect("Create inherent data failed"),
- Default::default(),
- std::time::Duration::from_secs(20),
- RecordProof::Yes,
+ let proposer = futures::executor::block_on(
+ proposer_factory.init(
+ &context
+ .client
+ .header(&BlockId::number(0))
+ .expect("Database error querying block #0")
+ .expect("Block #0 should exist"),
),
- ).map(|r| r.block).expect("Proposing failed");
+ )
+ .expect("Proposer initialization failed");
+
+ let _block = futures::executor::block_on(proposer.propose(
+ timestamp_provider.create_inherent_data().expect("Create inherent data failed"),
+ Default::default(),
+ std::time::Duration::from_secs(20),
+ None,
+ ))
+ .map(|r| r.block)
+ .expect("Proposing failed");
let elapsed = start.elapsed();
@@ -192,14 +177,11 @@ pub struct PoolTransaction {
impl From for PoolTransaction {
fn from(e: OpaqueExtrinsic) -> Self {
- PoolTransaction {
- data: e,
- hash: node_primitives::Hash::zero(),
- }
+ PoolTransaction { data: e, hash: node_primitives::Hash::zero() }
}
}
-impl sp_transaction_pool::InPoolTransaction for PoolTransaction {
+impl sc_transaction_pool_api::InPoolTransaction for PoolTransaction {
type Transaction = OpaqueExtrinsic;
type Hash = node_primitives::Hash;
@@ -211,25 +193,35 @@ impl sp_transaction_pool::InPoolTransaction for PoolTransaction {
&self.hash
}
- fn priority(&self) -> &u64 { unimplemented!() }
+ fn priority(&self) -> &u64 {
+ unimplemented!()
+ }
- fn longevity(&self) -> &u64 { unimplemented!() }
+ fn longevity(&self) -> &u64 {
+ unimplemented!()
+ }
- fn requires(&self) -> &[Vec] { unimplemented!() }
+ fn requires(&self) -> &[Vec] {
+ unimplemented!()
+ }
- fn provides(&self) -> &[Vec] { unimplemented!() }
+ fn provides(&self) -> &[Vec] {
+ unimplemented!()
+ }
- fn is_propagable(&self) -> bool { unimplemented!() }
+ fn is_propagable(&self) -> bool {
+ unimplemented!()
+ }
}
#[derive(Clone, Debug)]
pub struct Transactions(Vec>);
-impl sp_transaction_pool::TransactionPool for Transactions {
+impl sc_transaction_pool_api::TransactionPool for Transactions {
type Block = Block;
type Hash = node_primitives::Hash;
type InPoolTransaction = PoolTransaction;
- type Error = sp_transaction_pool::error::Error;
+ type Error = sc_transaction_pool_api::error::Error;
/// Returns a future that imports a bunch of unverified transactions to the pool.
fn submit_at(
@@ -237,7 +229,7 @@ impl sp_transaction_pool::TransactionPool for Transactions {
_at: &BlockId,
_source: TransactionSource,
_xts: Vec>,
- ) -> PoolFuture>, Self::Error> {
+ ) -> PoolFuture>, Self::Error> {
unimplemented!()
}
@@ -256,18 +248,25 @@ impl sp_transaction_pool::TransactionPool for Transactions {
_at: &BlockId,
_source: TransactionSource,
_xt: TransactionFor,
- ) -> PoolFuture>, Self::Error> {
+ ) -> PoolFuture>>, Self::Error> {
unimplemented!()
}
- fn ready_at(&self, _at: NumberFor)
- -> Pin> + Send>> + Send>>
- {
- let iter: Box> + Send> = Box::new(self.0.clone().into_iter());
+ fn ready_at(
+ &self,
+ _at: NumberFor,
+ ) -> Pin<
+ Box<
+ dyn Future