difftreelog
Merge remote-tracking branch 'origin/develop' into feature/NFTPAR-366_insert_ethereum_pallets
in: master
44 files changed
.gitignorediffbeforeafterboth--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,8 @@
/.idea/
-tests/.vscode
\ No newline at end of file
+tests/.vscode
+cumulus-parachain/
+*genesis
+*wasm
+tmp/
\ No newline at end of file
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -117,6 +117,15 @@
]
[[package]]
+<<<<<<< HEAD
+=======
+name = "always-assert"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11"
+
+[[package]]
+>>>>>>> origin/develop
name = "ansi_term"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -187,18 +196,21 @@
[[package]]
name = "asn1_der"
-version = "0.6.3"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3"
+
+[[package]]
+name = "assert_matches"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fce6b6a0ffdafebd82c87e79e3f40e8d2c523e5fea5566ff6b90509bf98d638"
-dependencies = [
- "asn1_der_derive",
-]
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
[[package]]
-name = "asn1_der_derive"
-version = "0.1.2"
+name = "async-attributes"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
dependencies = [
"quote",
"syn",
@@ -306,12 +318,17 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341"
dependencies = [
+ "async-attributes",
"async-channel",
"async-global-executor",
"async-io",
"async-lock",
"async-process",
+<<<<<<< HEAD
"crossbeam-utils 0.8.4",
+=======
+ "crossbeam-utils 0.8.3",
+>>>>>>> origin/develop
"futures-channel",
"futures-core",
"futures-io",
@@ -329,6 +346,20 @@
]
[[package]]
+name = "async-std-resolver"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665c56111e244fe38e7708ee10948a4356ad6a548997c21f5a63a0f4e0edc4d"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "futures-io",
+ "futures-util",
+ "pin-utils",
+ "trust-dns-resolver",
+]
+
+[[package]]
name = "async-task"
version = "4.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -336,9 +367,15 @@
[[package]]
name = "async-trait"
+<<<<<<< HEAD
version = "0.1.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
+=======
+version = "0.1.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589652ce7ccb335d1e7ecb3be145425702b290dbcb7029bbeaae263fc1d87b48"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -414,7 +451,11 @@
"cfg-if 1.0.0",
"libc",
"miniz_oxide",
+<<<<<<< HEAD
"object 0.24.0",
+=======
+ "object",
+>>>>>>> origin/develop
"rustc-demangle",
]
@@ -443,6 +484,74 @@
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
+name = "beef"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409"
+
+[[package]]
+name = "beefy-gadget"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459"
+dependencies = [
+ "beefy-primitives",
+ "futures 0.3.14",
+ "hex",
+ "log",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "sc-client-api",
+ "sc-keystore",
+ "sc-network",
+ "sc-network-gossip",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-utils",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+]
+
+[[package]]
+name = "beefy-gadget-rpc"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459"
+dependencies = [
+ "beefy-gadget",
+ "beefy-primitives",
+ "futures 0.3.14",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "jsonrpc-pubsub",
+ "log",
+ "parity-scale-codec",
+ "sc-rpc",
+ "serde",
+ "serde_json",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "beefy-primitives"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459"
+dependencies = [
+ "parity-scale-codec",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
name = "bincode"
version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -460,6 +569,11 @@
"bitflags",
"cexpr",
"clang-sys",
+<<<<<<< HEAD
+=======
+ "clap",
+ "env_logger 0.7.1",
+>>>>>>> origin/develop
"lazy_static",
"lazycell",
"peeking_take_while",
@@ -478,6 +592,7 @@
[[package]]
name = "bitvec"
+<<<<<<< HEAD
version = "0.17.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c"
@@ -491,6 +606,11 @@
version = "0.20.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848"
+=======
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f682656975d3a682daff957be4ddeb65d6ad656737cd821f2d00685ae466af1"
+>>>>>>> origin/develop
dependencies = [
"funty",
"radium 0.6.2",
@@ -617,6 +737,114 @@
]
[[package]]
+name = "bp-header-chain"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "finality-grandpa",
+ "frame-support",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-finality-grandpa",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-messages"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-polkadot-core"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bp-messages",
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
+]
+
+[[package]]
+name = "bp-rococo"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
+]
+
+[[package]]
+name = "bp-runtime"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-support",
+ "hash-db",
+ "num-traits",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "bp-test-utils"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bp-header-chain",
+ "ed25519-dalek",
+ "finality-grandpa",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-finality-grandpa",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-wococo"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
+]
+
+[[package]]
name = "bs58"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -643,6 +871,7 @@
[[package]]
name = "bumpalo"
version = "3.6.1"
+<<<<<<< HEAD
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
@@ -651,6 +880,10 @@
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3"
+=======
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
+>>>>>>> origin/develop
[[package]]
name = "byte-slice-cast"
@@ -752,6 +985,12 @@
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
name = "chacha20"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -808,6 +1047,15 @@
]
[[package]]
+name = "ckb-merkle-mountain-range"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e486fe53bb9f2ca0f58cb60e8679a5354fd6687a839942ef0a75967250289ca6"
+dependencies = [
+ "cfg-if 0.1.10",
+]
+
+[[package]]
name = "clang-sys"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -906,18 +1154,18 @@
[[package]]
name = "cranelift-bforest"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4066fd63b502d73eb8c5fa6bcab9c7962b05cd580f6b149ee83a8e730d8ce7fb"
+checksum = "bcee7a5107071484772b89fdf37f0f460b7db75f476e43ea7a684fd942470bcf"
dependencies = [
"cranelift-entity",
]
[[package]]
name = "cranelift-codegen"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a54e4beb833a3c873a18a8fe735d73d732044004c7539a072c8faa35ccb0c60"
+checksum = "654ab96f0f1cab71c0d323618a58360a492da2c341eb2c1f977fc195c664001b"
dependencies = [
"byteorder",
"cranelift-bforest",
@@ -935,9 +1183,9 @@
[[package]]
name = "cranelift-codegen-meta"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c54cac7cacb443658d8f0ff36a3545822613fa202c946c0891897843bc933810"
+checksum = "65994cfc5be9d5fd10c5fc30bcdddfa50c04bb79c91329287bff846434ff8f14"
dependencies = [
"cranelift-codegen-shared",
"cranelift-entity",
@@ -945,24 +1193,27 @@
[[package]]
name = "cranelift-codegen-shared"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a109760aff76788b2cdaeefad6875a73c2b450be13906524f6c2a81e05b8d83c"
+checksum = "889d720b688b8b7df5e4903f9b788c3c59396050f5548e516e58ccb7312463ab"
+dependencies = [
+ "serde",
+]
[[package]]
name = "cranelift-entity"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b044234aa32531f89a08b487630ddc6744696ec04c8123a1ad388de837f5de3"
+checksum = "1a2e6884a363e42a9ba980193ea8603a4272f8a92bd8bbaf9f57a94dbea0ff96"
dependencies = [
"serde",
]
[[package]]
name = "cranelift-frontend"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5452b3e4e97538ee5ef2cc071301c69a86c7adf2770916b9d04e9727096abd93"
+checksum = "e6f41e2f9b57d2c030e249d0958f1cdc2c3cd46accf8c0438b3d1944e9153444"
dependencies = [
"cranelift-codegen",
"log",
@@ -972,25 +1223,24 @@
[[package]]
name = "cranelift-native"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f68035c10b2e80f26cc29c32fa824380877f38483504c2a47b54e7da311caaf3"
+checksum = "aab70ba7575665375d31cbdea2462916ce58be887834e1b83c860b43b51af637"
dependencies = [
"cranelift-codegen",
- "raw-cpuid",
"target-lexicon",
]
[[package]]
name = "cranelift-wasm"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a530eb9d1c95b3309deb24c3d179d8b0ba5837ed98914a429787c395f614949d"
+checksum = "f2fc3d2e70da6439adf97648dcdf81834363154f2907405345b6fbe7ca38918c"
dependencies = [
"cranelift-codegen",
"cranelift-entity",
"cranelift-frontend",
- "itertools",
+ "itertools 0.10.0",
"log",
"serde",
"smallvec 1.6.1",
@@ -1014,7 +1264,11 @@
checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
dependencies = [
"cfg-if 1.0.0",
+<<<<<<< HEAD
"crossbeam-utils 0.8.4",
+=======
+ "crossbeam-utils 0.8.3",
+>>>>>>> origin/develop
]
[[package]]
@@ -1035,8 +1289,13 @@
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if 1.0.0",
+<<<<<<< HEAD
"crossbeam-epoch 0.9.4",
"crossbeam-utils 0.8.4",
+=======
+ "crossbeam-epoch 0.9.3",
+ "crossbeam-utils 0.8.3",
+>>>>>>> origin/develop
]
[[package]]
@@ -1056,12 +1315,21 @@
[[package]]
name = "crossbeam-epoch"
+<<<<<<< HEAD
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52fb27eab85b17fbb9f6fd667089e07d6a2eb8743d02639ee7f6a7a7729c9c94"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-utils 0.8.4",
+=======
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.3",
+>>>>>>> origin/develop
"lazy_static",
"memoffset 0.6.3",
"scopeguard",
@@ -1091,9 +1359,15 @@
[[package]]
name = "crossbeam-utils"
+<<<<<<< HEAD
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278"
+=======
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
+>>>>>>> origin/develop
dependencies = [
"autocfg",
"cfg-if 1.0.0",
@@ -1157,6 +1431,335 @@
]
[[package]]
+name = "cumulus-client-cli"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "sc-cli",
+ "sc-service",
+ "structopt",
+]
+
+[[package]]
+<<<<<<< HEAD
+name = "curve25519-dalek"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3"
+=======
+name = "cumulus-client-collator"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+>>>>>>> origin/develop
+dependencies = [
+ "cumulus-client-consensus-common",
+ "cumulus-client-network",
+ "cumulus-primitives-core",
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "parking_lot 0.10.2",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "sc-client-api",
+ "sp-api",
+ "sp-consensus",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-client-consensus-aura"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "async-trait",
+ "cumulus-client-consensus-common",
+ "cumulus-primitives-core",
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "parking_lot 0.10.2",
+ "polkadot-service",
+ "sc-client-api",
+ "sc-consensus-aura",
+ "sc-consensus-slots",
+ "sc-telemetry",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-inherents",
+ "sp-keystore",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-client-consensus-common"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "async-trait",
+ "dyn-clone",
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "polkadot-runtime",
+ "sc-client-api",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-trie",
+ "substrate-prometheus-endpoint",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-client-network"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "parity-scale-codec",
+ "parking_lot 0.10.2",
+ "polkadot-node-primitives",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-service",
+ "polkadot-statement-table",
+ "sc-client-api",
+ "sp-api",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-runtime",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-client-pov-recovery"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "parity-scale-codec",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-overseer",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-service",
+ "polkadot-statement-table",
+ "rand 0.8.3",
+ "sc-client-api",
+ "sp-api",
+ "sp-consensus",
+ "sp-core",
+ "sp-maybe-compressed-blob",
+ "sp-runtime",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-client-service"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-client-collator",
+ "cumulus-client-consensus-common",
+ "cumulus-client-pov-recovery",
+ "cumulus-primitives-core",
+ "parity-scale-codec",
+ "parking_lot 0.10.2",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "polkadot-service",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-consensus-babe",
+ "sc-service",
+ "sc-telemetry",
+ "sc-tracing",
+ "sp-api",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-runtime",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-pallet-aura-ext"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "pallet-aura",
+ "parity-scale-codec",
+ "serde",
+ "sp-application-crypto",
+ "sp-consensus-aura",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "cumulus-pallet-dmp-queue"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "rand 0.8.3",
+ "rand_chacha 0.3.0",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "cumulus-pallet-parachain-system"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "environmental",
+ "frame-support",
+ "frame-system",
+ "hash-db",
+ "log",
+ "memory-db",
+ "pallet-balances",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "serde",
+ "sp-core",
+ "sp-externalities",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+ "sp-version",
+ "trie-db",
+ "xcm",
+]
+
+[[package]]
+name = "cumulus-pallet-xcm"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "serde",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+]
+
+[[package]]
+name = "cumulus-pallet-xcmp-queue"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "rand 0.8.3",
+ "rand_chacha 0.3.0",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "cumulus-primitives-core"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "frame-support",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+ "xcm",
+]
+
+[[package]]
+name = "cumulus-primitives-parachain-inherent"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "async-trait",
+ "cumulus-primitives-core",
+ "parity-scale-codec",
+ "polkadot-service",
+ "sc-client-api",
+ "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+ "tracing",
+]
+
+[[package]]
+name = "cumulus-primitives-utility"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+ "xcm",
+]
+
+[[package]]
name = "curve25519-dalek"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1244,10 +1847,27 @@
]
[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "derive_more"
+<<<<<<< HEAD
version = "0.99.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320"
+=======
+version = "0.99.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6"
+>>>>>>> origin/develop
dependencies = [
"convert_case",
"proc-macro2",
@@ -1381,6 +2001,18 @@
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
+name = "enum-as-inner"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "enumflags2"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1401,13 +2033,37 @@
]
[[package]]
+name = "enumn"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "env_logger"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
dependencies = [
"atty",
- "humantime",
+ "humantime 1.3.0",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
+dependencies = [
+ "atty",
+ "humantime 2.1.0",
"log",
"regex",
"termcolor",
@@ -1451,6 +2107,7 @@
[[package]]
name = "ethbloom"
+<<<<<<< HEAD
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df"
@@ -1464,19 +2121,27 @@
[[package]]
name = "ethbloom"
+=======
+>>>>>>> origin/develop
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "779864b9c7f7ead1f092972c3257496c6a84b46dba2ce131dd8a282cb2cc5972"
dependencies = [
"crunchy",
+<<<<<<< HEAD
"fixed-hash 0.7.0",
"impl-codec 0.5.0",
"impl-rlp 0.3.0",
+=======
+ "fixed-hash",
+ "impl-rlp",
+>>>>>>> origin/develop
"impl-serde",
"tiny-keccak",
]
[[package]]
+<<<<<<< HEAD
name = "ethereum"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1525,11 +2190,14 @@
]
[[package]]
+=======
+>>>>>>> origin/develop
name = "ethereum-types"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f64b5df66a228d85e4b17e5d6c6aa43b0310898ffe8a85988c4c032357aaabfd"
dependencies = [
+<<<<<<< HEAD
"ethbloom 0.11.0",
"fixed-hash 0.7.0",
"impl-codec 0.5.0",
@@ -1537,6 +2205,14 @@
"impl-serde",
"primitive-types 0.9.0",
"uint 0.9.0",
+=======
+ "ethbloom",
+ "fixed-hash",
+ "impl-rlp",
+ "impl-serde",
+ "primitive-types",
+ "uint",
+>>>>>>> origin/develop
]
[[package]]
@@ -1626,7 +2302,11 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
]
[[package]]
@@ -1799,7 +2479,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126"
dependencies = [
- "env_logger",
+ "env_logger 0.7.1",
"log",
]
@@ -1810,7 +2490,11 @@
checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c"
dependencies = [
"either",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"log",
"num-traits",
@@ -1886,7 +2570,11 @@
[[package]]
name = "fork-tree"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
]
@@ -1952,13 +2640,21 @@
[[package]]
name = "frame-benchmarking"
version = "3.1.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"frame-support",
"frame-system",
"linregress",
"log",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"paste",
"sp-api",
"sp-io",
@@ -1971,7 +2667,11 @@
[[package]]
name = "frame-benchmarking-cli"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"Inflector",
"chrono",
@@ -1992,14 +2692,35 @@
]
[[package]]
+name = "frame-election-provider-support"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-arithmetic",
+ "sp-npos-elections",
+ "sp-std",
+]
+
+[[package]]
name = "frame-executive"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec 2.1.1",
"serde",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-core",
"sp-io",
"sp-runtime",
@@ -2010,7 +2731,11 @@
[[package]]
name = "frame-metadata"
version = "13.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"serde",
@@ -2021,7 +2746,11 @@
[[package]]
name = "frame-support"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"bitflags",
"frame-metadata",
@@ -2029,7 +2758,11 @@
"impl-trait-for-tuples 0.2.1",
"log",
"once_cell",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"paste",
"serde",
"smallvec 1.6.1",
@@ -2047,7 +2780,11 @@
[[package]]
name = "frame-support-procedural"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"Inflector",
"frame-support-procedural-tools",
@@ -2059,7 +2796,11 @@
[[package]]
name = "frame-support-procedural-tools"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 1.0.0",
@@ -2071,7 +2812,11 @@
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -2081,12 +2826,21 @@
[[package]]
name = "frame-system"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
"impl-trait-for-tuples 0.2.1",
"log",
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
"sp-core",
"sp-io",
@@ -2098,7 +2852,11 @@
[[package]]
name = "frame-system-benchmarking"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -2112,13 +2870,35 @@
[[package]]
name = "frame-system-rpc-runtime-api"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-api",
]
[[package]]
+name = "frame-try-runtime"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "fs-err"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcd1163ae48bda72a20ae26d66a04d3094135cadab911cff418ae5e33f253431"
+
+[[package]]
name = "fs-swap"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2141,6 +2921,16 @@
]
[[package]]
+name = "fs2"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2176,9 +2966,15 @@
[[package]]
name = "futures"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9d5813545e459ad3ca1bff9915e9ad7f1a47dc6a91b627ce321d5863b7dd253"
+>>>>>>> origin/develop
dependencies = [
"futures-channel",
"futures-core",
@@ -2191,9 +2987,15 @@
[[package]]
name = "futures-channel"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25"
+>>>>>>> origin/develop
dependencies = [
"futures-core",
"futures-sink",
@@ -2201,9 +3003,15 @@
[[package]]
name = "futures-core"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815"
+>>>>>>> origin/develop
[[package]]
name = "futures-cpupool"
@@ -2222,7 +3030,11 @@
checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
dependencies = [
"futures 0.1.31",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"lazy_static",
"log",
"parking_lot 0.9.0",
@@ -2233,9 +3045,15 @@
[[package]]
name = "futures-executor"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f6cb7042eda00f0049b1d2080aa4b93442997ee507eb3828e8bd7577f94c9d"
+>>>>>>> origin/develop
dependencies = [
"futures-core",
"futures-task",
@@ -2245,9 +3063,15 @@
[[package]]
name = "futures-io"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04"
+>>>>>>> origin/develop
[[package]]
name = "futures-lite"
@@ -2266,9 +3090,15 @@
[[package]]
name = "futures-macro"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b"
+>>>>>>> origin/develop
dependencies = [
"autocfg",
"proc-macro-hack",
@@ -2290,6 +3120,7 @@
[[package]]
name = "futures-sink"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
@@ -2299,6 +3130,17 @@
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23"
+
+[[package]]
+name = "futures-task"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc"
+>>>>>>> origin/develop
[[package]]
name = "futures-timer"
@@ -2314,11 +3156,18 @@
[[package]]
name = "futures-util"
+<<<<<<< HEAD
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
dependencies = [
"autocfg",
+=======
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025"
+dependencies = [
+>>>>>>> origin/develop
"futures 0.1.31",
"futures-channel",
"futures-core",
@@ -2593,6 +3442,17 @@
]
[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi 0.3.9",
+]
+
+[[package]]
name = "http"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2638,9 +3498,15 @@
[[package]]
name = "httparse"
+<<<<<<< HEAD
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68"
+=======
+version = "1.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589"
+>>>>>>> origin/develop
[[package]]
name = "httpdate"
@@ -2658,6 +3524,12 @@
]
[[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.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2703,7 +3575,11 @@
"httparse",
"httpdate",
"itoa",
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"socket2 0.3.19",
"tokio 0.2.25",
"tower-service",
@@ -2748,9 +3624,15 @@
[[package]]
name = "idna"
+<<<<<<< HEAD
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+=======
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
+>>>>>>> origin/develop
dependencies = [
"matches",
"unicode-bidi",
@@ -2780,12 +3662,16 @@
[[package]]
name = "if-watch"
-version = "0.1.8"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85"
+checksum = "144c0ecbda48cc819482c37e460723b634dc060e23922f8ace87d94ff95ea4e5"
dependencies = [
"async-io",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-lite",
"if-addrs",
"ipnet",
@@ -2831,6 +3717,15 @@
]
[[package]]
+name = "impl-rlp"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808"
+dependencies = [
+ "rlp",
+]
+
+[[package]]
name = "impl-serde"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2882,6 +3777,12 @@
]
[[package]]
+name = "integer-encoding"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f"
+
+[[package]]
name = "integer-sqrt"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2896,7 +3797,11 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 2.0.2",
]
@@ -2916,6 +3821,18 @@
checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f"
[[package]]
+name = "ipconfig"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
+dependencies = [
+ "socket2 0.3.19",
+ "widestring",
+ "winapi 0.3.9",
+ "winreg",
+]
+
+[[package]]
name = "ipnet"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2931,6 +3848,15 @@
]
[[package]]
+name = "itertools"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
+dependencies = [
+ "either",
+]
+
+[[package]]
name = "itoa"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2947,9 +3873,15 @@
[[package]]
name = "js-sys"
+<<<<<<< HEAD
version = "0.3.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062"
+=======
+version = "0.3.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
+>>>>>>> origin/develop
dependencies = [
"wasm-bindgen",
]
@@ -2978,8 +3910,13 @@
dependencies = [
"failure",
"futures 0.1.31",
+<<<<<<< HEAD
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
+=======
+ "jsonrpc-core",
+ "jsonrpc-pubsub",
+>>>>>>> origin/develop
"log",
"serde",
"serde_json",
@@ -3061,7 +3998,11 @@
checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7"
dependencies = [
"hyper 0.12.36",
+<<<<<<< HEAD
"jsonrpc-core 15.1.0",
+=======
+ "jsonrpc-core",
+>>>>>>> origin/develop
"jsonrpc-server-utils",
"log",
"net2",
@@ -3140,6 +4081,65 @@
]
[[package]]
+name = "jsonrpsee-http-client"
+version = "0.2.0-alpha.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2737440f37efa10e5ef7beeec43d059d29dc92640978be21fcdcef481a2edb0d"
+dependencies = [
+ "async-trait",
+ "fnv",
+ "hyper 0.13.10",
+ "hyper-rustls",
+ "jsonrpsee-types",
+ "jsonrpsee-utils",
+ "log",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "url 2.2.1",
+]
+
+[[package]]
+name = "jsonrpsee-proc-macros"
+version = "0.2.0-alpha.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5784ee8bb31988fa2c7a755fe31b0e21aa51894a67e5c99b6d4470f0253bf31a"
+dependencies = [
+ "Inflector",
+ "proc-macro-crate 1.0.0",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "jsonrpsee-types"
+version = "0.2.0-alpha.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab3dabceeeeb865897661d532d47202eaae71cd2c606f53cb69f1fbc0555a51"
+dependencies = [
+ "async-trait",
+ "beef",
+ "futures-channel",
+ "futures-util",
+ "log",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "jsonrpsee-utils"
+version = "0.2.0-alpha.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d63cf4d423614e71fd144a8691208539d2b23d8373e069e2fbe023c5eba5e922"
+dependencies = [
+ "futures-util",
+ "hyper 0.13.10",
+ "jsonrpsee-types",
+]
+
+[[package]]
name = "keccak"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3156,6 +4156,85 @@
]
[[package]]
+name = "kusama-runtime"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bitvec",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-bounties",
+ "pallet-collective",
+ "pallet-democracy",
+ "pallet-election-provider-multi-phase",
+ "pallet-elections-phragmen",
+ "pallet-gilt",
+ "pallet-grandpa",
+ "pallet-identity",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-membership",
+ "pallet-mmr-primitives",
+ "pallet-multisig",
+ "pallet-nicks",
+ "pallet-offences",
+ "pallet-proxy",
+ "pallet-randomness-collective-flip",
+ "pallet-recovery",
+ "pallet-scheduler 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3)",
+ "pallet-session",
+ "pallet-society",
+ "pallet-staking",
+ "pallet-staking-reward-fn",
+ "pallet-timestamp",
+ "pallet-tips",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-treasury",
+ "pallet-utility",
+ "pallet-vesting",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "rustc-hex",
+ "serde",
+ "serde_derive",
+ "smallvec 1.6.1",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "static_assertions",
+ "substrate-wasm-builder 3.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
name = "kv-log-macro"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3223,9 +4302,15 @@
[[package]]
name = "libc"
+<<<<<<< HEAD
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+=======
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"
+>>>>>>> origin/develop
[[package]]
name = "libloading"
@@ -3255,6 +4340,7 @@
[[package]]
name = "libp2p"
+<<<<<<< HEAD
version = "0.35.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adc225a49973cf9ab10d0cdd6a4b8f0cda299df9b760824bbb623f15f8f0c95a"
@@ -3262,6 +4348,15 @@
"atomic",
"bytes 1.0.1",
"futures 0.3.15",
+=======
+version = "0.37.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08053fbef67cd777049ef7a95ebaca2ece370b4ed7712c3fa404d69a88cb741b"
+dependencies = [
+ "atomic",
+ "bytes 1.0.1",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"lazy_static",
"libp2p-core",
"libp2p-deflate",
@@ -3276,6 +4371,7 @@
"libp2p-ping",
"libp2p-plaintext",
"libp2p-pnet",
+ "libp2p-relay",
"libp2p-request-response",
"libp2p-swarm",
"libp2p-swarm-derive",
@@ -3286,23 +4382,31 @@
"libp2p-yamux",
"parity-multiaddr",
"parking_lot 0.11.1",
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"smallvec 1.6.1",
"wasm-timer",
]
[[package]]
name = "libp2p-core"
-version = "0.27.1"
+version = "0.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a2d56aadc2c2bf22cd7797f86e56a65b5b3994a0136b65be3106938acae7a26"
+checksum = "71dd51b562e14846e65bad00e5808d0644376e6588668c490d3c48e1dfeb4a9a"
dependencies = [
"asn1_der",
"bs58",
"ed25519-dalek",
"either",
"fnv",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"lazy_static",
"libsecp256k1",
@@ -3311,7 +4415,11 @@
"multistream-select",
"parity-multiaddr",
"parking_lot 0.11.1",
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"prost",
"prost-build",
"rand 0.7.3",
@@ -3327,35 +4435,50 @@
[[package]]
name = "libp2p-deflate"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345"
+checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08"
dependencies = [
"flate2",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
]
[[package]]
name = "libp2p-dns"
-version = "0.27.0"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3"
+checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "async-std-resolver",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"log",
+ "smallvec 1.6.1",
+ "trust-dns-resolver",
]
[[package]]
name = "libp2p-floodsub"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f"
+checksum = "48a9b570f6766301d9c4aa00fce3554cad1598e2f466debbc4dde909028417cf"
dependencies = [
"cuckoofilter",
"fnv",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3367,16 +4490,26 @@
[[package]]
name = "libp2p-gossipsub"
+<<<<<<< HEAD
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "502dc5fcbfec4aa1c63ef3f7307ffe20e90c1a1387bf23ed0bec087f2dde58a1"
+=======
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7b0c8506a6ec3344b9e706d7c7a6dba826f8ede735cfe13dde12a8c263c4af9"
+>>>>>>> origin/develop
dependencies = [
"asynchronous-codec 0.6.0",
"base64 0.13.0",
"byteorder",
"bytes 1.0.1",
"fnv",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hex_fmt",
"libp2p-core",
"libp2p-swarm",
@@ -3393,11 +4526,15 @@
[[package]]
name = "libp2p-identify"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e"
+checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3409,16 +4546,20 @@
[[package]]
name = "libp2p-kad"
-version = "0.28.1"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3da6c9acbcc05f93235d201d7d45ef4e8b88a45d8836f98becd8b4d443f066"
+checksum = "b07312ebe5ee4fd2404447a0609814574df55c65d4e20838b957bbd34907d820"
dependencies = [
"arrayvec 0.5.2",
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
"either",
"fnv",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3435,34 +4576,46 @@
[[package]]
name = "libp2p-mdns"
-version = "0.28.1"
+version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e9e6374814d1b118d97ccabdfc975c8910bd16dc38a8bc058eeb08bf2080fe1"
+checksum = "41e282f974c4bea56db8acca50387f05189406e346318cb30190b0bde662961e"
dependencies = [
"async-io",
"data-encoding",
"dns-parser",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"if-watch",
"lazy_static",
"libp2p-core",
"libp2p-swarm",
"log",
- "rand 0.7.3",
+ "rand 0.8.3",
"smallvec 1.6.1",
+<<<<<<< HEAD
"socket2 0.3.19",
+=======
+ "socket2 0.4.0",
+>>>>>>> origin/develop
"void",
]
[[package]]
name = "libp2p-mplex"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "350ce8b3923594aedabd5d6e3f875d058435052a29c3f32df378bc70d10be464"
+checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d"
dependencies = [
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"log",
"nohash-hasher",
@@ -3474,13 +4627,17 @@
[[package]]
name = "libp2p-noise"
-version = "0.29.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778"
+checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd"
dependencies = [
"bytes 1.0.1",
"curve25519-dalek 3.1.0",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"lazy_static",
"libp2p-core",
"log",
@@ -3496,11 +4653,15 @@
[[package]]
name = "libp2p-ping"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c"
+checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3511,13 +4672,17 @@
[[package]]
name = "libp2p-plaintext"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d58defcadb646ae4b033e130b48d87410bf76394dc3335496cae99dac803e61"
+checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11"
dependencies = [
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"log",
"prost",
@@ -3532,23 +4697,56 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
"log",
"pin-project 1.0.7",
+=======
+ "futures 0.3.14",
+ "log",
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"rand 0.7.3",
"salsa20",
"sha3 0.9.1",
]
[[package]]
+name = "libp2p-relay"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b8786aca3f18671d8776289706a5521f6c9124a820f69e358de214b9939440d"
+dependencies = [
+ "asynchronous-codec 0.6.0",
+ "bytes 1.0.1",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "libp2p-core",
+ "libp2p-swarm",
+ "log",
+ "pin-project 1.0.6",
+ "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.9.1"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10e5552827c33d8326502682da73a0ba4bfa40c1b55b216af3c303f32169dd89"
+checksum = "1cdbe172f08e6d0f95fa8634e273d4c4268c4063de2e33e7435194b0130c62e3"
dependencies = [
"async-trait",
"bytes 1.0.1",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3562,12 +4760,16 @@
[[package]]
name = "libp2p-swarm"
-version = "0.27.2"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7955b973e1fd2bd61ffd43ce261c1223f61f4aacd5bae362a924993f9a25fd98"
+checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92"
dependencies = [
"either",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"log",
"rand 0.7.3",
@@ -3578,9 +4780,15 @@
[[package]]
name = "libp2p-swarm-derive"
+<<<<<<< HEAD
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c564ebaa36a64839f51eaddb0243aaaa29ce64affb56129193cc3248b72af273"
+=======
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "365b0a699fea5168676840567582a012ea297b1ca02eee467e58301b9c9c5eed"
+>>>>>>> origin/develop
dependencies = [
"quote",
"syn",
@@ -3588,40 +4796,56 @@
[[package]]
name = "libp2p-tcp"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a5aef80e519a6cb8e2663605142f97baaaea1a252eecbf8756184765f7471b"
+checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9"
dependencies = [
"async-io",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"if-watch",
"ipnet",
"libc",
"libp2p-core",
"log",
+<<<<<<< HEAD
"socket2 0.3.19",
+=======
+ "socket2 0.4.0",
+>>>>>>> origin/develop
]
[[package]]
name = "libp2p-uds"
-version = "0.27.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487"
+checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5"
dependencies = [
"async-std",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"log",
]
[[package]]
name = "libp2p-wasm-ext"
-version = "0.27.0"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd"
+checksum = "cef45d61e43c313531b5e903e4e8415212ff6338e0c54c47da5b9b412b5760de"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"js-sys",
"libp2p-core",
"parity-send-wrapper",
@@ -3631,29 +4855,45 @@
[[package]]
name = "libp2p-websocket"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22"
+checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74"
dependencies = [
"either",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-rustls",
"libp2p-core",
"log",
"quicksink",
"rw-stream-sink",
"soketto",
+<<<<<<< HEAD
"url 2.2.2",
+=======
+ "url 2.2.1",
+>>>>>>> origin/develop
"webpki-roots",
]
[[package]]
name = "libp2p-yamux"
+<<<<<<< HEAD
version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4819358c542a86ff95f6ae691efb4b94ddaf477079b01a686f5705b79bfc232a"
dependencies = [
"futures 0.3.15",
+=======
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p-core",
"parking_lot 0.11.1",
"thiserror",
@@ -3735,9 +4975,15 @@
[[package]]
name = "lock_api"
+<<<<<<< HEAD
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
+=======
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176"
+>>>>>>> origin/develop
dependencies = [
"scopeguard",
]
@@ -3762,6 +5008,15 @@
]
[[package]]
+name = "lru-cache"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
name = "mach"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3777,6 +5032,12 @@
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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3860,6 +5121,15 @@
]
[[package]]
+name = "memory-lru"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a"
+dependencies = [
+ "lru",
+]
+
+[[package]]
name = "memory_units"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3878,10 +5148,37 @@
]
[[package]]
+name = "metered-channel"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+]
+
+[[package]]
+name = "mick-jaeger"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df"
+dependencies = [
+ "futures 0.3.14",
+ "rand 0.7.3",
+ "thrift",
+]
+
+[[package]]
name = "minicbor"
+<<<<<<< HEAD
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c2b2c73f9640fccab53947e2b3474d5071fcbc8f82cac51ddf6c8041a30a9ea"
+=======
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0d"
+>>>>>>> origin/develop
dependencies = [
"minicbor-derive",
]
@@ -4043,9 +5340,15 @@
checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8"
dependencies = [
"bytes 1.0.1",
+<<<<<<< HEAD
"futures 0.3.15",
"log",
"pin-project 1.0.7",
+=======
+ "futures 0.3.14",
+ "log",
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"smallvec 1.6.1",
"unsigned-varint 0.7.0",
]
@@ -4065,6 +5368,26 @@
"num-traits",
"rand 0.7.3",
"rand_distr",
+<<<<<<< HEAD
+=======
+ "typenum",
+]
+
+[[package]]
+name = "nalgebra"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c70c9e8c5f213c8e93fc8c112ade4edd3ee62062fb897776c23dcebac7932900"
+dependencies = [
+ "approx 0.4.0",
+ "generic-array 0.14.4",
+ "matrixmultiply 0.3.1",
+ "num-complex 0.3.1",
+ "num-rational 0.3.2",
+ "num-traits",
+ "serde",
+ "simba",
+>>>>>>> origin/develop
"typenum",
]
@@ -4086,12 +5409,22 @@
]
[[package]]
+<<<<<<< HEAD
name = "names"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da"
dependencies = [
"rand 0.3.23",
+=======
+name = "nb-connect"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19900e7eee95eb2b3c2e26d12a874cc80aaf750e31be6fcbe743ead369fa45d"
+dependencies = [
+ "libc",
+ "socket2 0.4.0",
+>>>>>>> origin/develop
]
[[package]]
@@ -4109,26 +5442,51 @@
name = "nft"
version = "3.0.0"
dependencies = [
+<<<<<<< HEAD
"fc-consensus",
"fc-db",
"fc-mapping-sync",
"fc-rpc",
"fc-rpc-core",
+=======
+ "cumulus-client-cli",
+ "cumulus-client-collator",
+ "cumulus-client-consensus-aura",
+ "cumulus-client-consensus-common",
+ "cumulus-client-network",
+ "cumulus-client-service",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+>>>>>>> origin/develop
"flexi_logger",
"fp-rpc",
"frame-benchmarking",
"frame-benchmarking-cli",
+<<<<<<< HEAD
"futures 0.3.15",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
+=======
+ "futures 0.3.14",
+ "jsonrpc-core",
+>>>>>>> origin/develop
"log",
+ "nft-data-structs",
"nft-runtime",
+ "pallet-contracts",
"pallet-contracts-rpc",
"pallet-ethereum",
"pallet-nft",
"pallet-transaction-payment-rpc",
+ "parity-scale-codec",
"parking_lot 0.10.2",
+ "polkadot-cli",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-service",
+ "polkadot-test-service",
"sc-basic-authorship",
+ "sc-chain-spec",
"sc-cli",
"sc-client-api",
"sc-consensus",
@@ -4141,6 +5499,7 @@
"sc-rpc-api",
"sc-service",
"sc-telemetry",
+ "sc-tracing",
"sc-transaction-pool",
"serde",
"serde_json",
@@ -4152,19 +5511,50 @@
"sp-core",
"sp-finality-grandpa",
"sp-inherents",
+ "sp-keystore",
+ "sp-offchain",
"sp-runtime",
+<<<<<<< HEAD
+=======
+ "sp-session",
+>>>>>>> origin/develop
"sp-timestamp",
"sp-transaction-pool",
+ "sp-trie",
"structopt",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
+ "substrate-prometheus-endpoint",
+]
+
+[[package]]
+name = "nft-data-structs"
+version = "0.9.0"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-contracts",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-runtime",
]
[[package]]
name = "nft-runtime"
version = "3.0.0"
dependencies = [
+<<<<<<< HEAD
"fp-rpc",
+=======
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+>>>>>>> origin/develop
"frame-benchmarking",
"frame-executive",
"frame-support",
@@ -4172,24 +5562,38 @@
"frame-system-benchmarking",
"frame-system-rpc-runtime-api",
"hex-literal",
+ "nft-data-structs",
"pallet-aura",
"pallet-balances",
"pallet-contracts",
"pallet-contracts-primitives",
"pallet-contracts-rpc-runtime-api",
+<<<<<<< HEAD
"pallet-ethereum",
"pallet-evm",
"pallet-grandpa",
+=======
+>>>>>>> origin/develop
"pallet-inflation",
"pallet-nft",
+ "pallet-nft-charge-transaction",
+ "pallet-nft-transaction-payment",
"pallet-randomness-collective-flip",
+ "pallet-scheduler 3.0.0",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
"pallet-treasury",
"pallet-vesting",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
+=======
+ "pallet-xcm",
+ "parachain-info",
+ "parity-scale-codec",
+ "polkadot-parachain",
+>>>>>>> origin/develop
"serde",
"smallvec 1.6.1",
"sp-api",
@@ -4198,13 +5602,17 @@
"sp-consensus-aura",
"sp-core",
"sp-inherents",
+ "sp-io",
"sp-offchain",
"sp-runtime",
"sp-session",
"sp-std",
"sp-transaction-pool",
"sp-version",
- "substrate-wasm-builder",
+ "substrate-wasm-builder 4.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
]
[[package]]
@@ -4314,21 +5722,24 @@
[[package]]
name = "object"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
+checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
dependencies = [
"crc32fast",
"indexmap",
]
[[package]]
+<<<<<<< HEAD
name = "object"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170"
[[package]]
+=======
+>>>>>>> origin/develop
name = "once_cell"
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4356,6 +5767,15 @@
checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
[[package]]
+name = "ordered-float"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
name = "owning_ref"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4367,14 +5787,22 @@
[[package]]
name = "pallet-aura"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"frame-support",
"frame-system",
"pallet-session",
"pallet-timestamp",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
"serde",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-application-crypto",
"sp-consensus-aura",
"sp-runtime",
@@ -4382,8 +5810,9 @@
]
[[package]]
-name = "pallet-authorship"
+name = "pallet-authority-discovery"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
@@ -4392,33 +5821,58 @@
"parity-scale-codec 2.1.1",
"sp-authorship",
"sp-inherents",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-authority-discovery",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
-name = "pallet-balances"
+name = "pallet-authorship"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
- "frame-benchmarking",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"log",
"parity-scale-codec 2.1.1",
"serde",
+=======
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "sp-authorship",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
-name = "pallet-contracts"
+name = "pallet-babe"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
"log",
+<<<<<<< HEAD
"pallet-contracts-primitives",
"pallet-contracts-proc-macro",
"parity-scale-codec 2.1.1",
@@ -4426,25 +5880,45 @@
"pwasm-utils 0.16.0",
"serde",
"sp-core",
+=======
+ "pallet-authorship",
+ "pallet-session",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-consensus-babe",
+ "sp-consensus-vrf",
+>>>>>>> origin/develop
"sp-io",
"sp-runtime",
- "sp-sandbox",
+ "sp-session",
+ "sp-staking",
"sp-std",
- "wasmi-validation",
]
[[package]]
-name = "pallet-contracts-primitives"
+name = "pallet-balances"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"bitflags",
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
+<<<<<<< HEAD
name = "pallet-contracts-proc-macro"
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
@@ -4465,27 +5939,45 @@
"pallet-contracts-primitives",
"pallet-contracts-rpc-runtime-api",
"parity-scale-codec 2.1.1",
+=======
+name = "pallet-beefy"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459"
+dependencies = [
+ "beefy-primitives",
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
- "sp-api",
- "sp-blockchain",
- "sp-core",
- "sp-rpc",
"sp-runtime",
+ "sp-std",
]
[[package]]
-name = "pallet-contracts-rpc-runtime-api"
+name = "pallet-bounties"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"pallet-contracts-primitives",
"parity-scale-codec 2.1.1",
"sp-api",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-treasury",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
+<<<<<<< HEAD
name = "pallet-ethereum"
version = "2.0.0-dev"
source = "git+https://github.com/usetech-llc/frontier.git?branch=injected-transactions#7b3b742c4e95eb7ae6c5435137670365f17ae1fa"
@@ -4543,36 +6035,51 @@
name = "pallet-grandpa"
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+name = "pallet-bridge-grandpa"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+>>>>>>> origin/develop
dependencies = [
- "frame-benchmarking",
+ "bp-header-chain",
+ "bp-runtime",
+ "bp-test-utils",
+ "finality-grandpa",
"frame-support",
"frame-system",
"log",
+<<<<<<< HEAD
"pallet-authorship",
"pallet-session",
"parity-scale-codec 2.1.1",
+=======
+ "num-traits",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
- "sp-application-crypto",
- "sp-core",
"sp-finality-grandpa",
"sp-runtime",
- "sp-session",
- "sp-staking",
"sp-std",
+ "sp-trie",
]
[[package]]
-name = "pallet-inflation"
+name = "pallet-collective"
version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
dependencies = [
- "frame-benchmarking",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"pallet-balances",
"pallet-randomness-collective-flip",
"pallet-timestamp",
"parity-scale-codec 2.1.1",
"serde",
+=======
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-core",
"sp-io",
"sp-runtime",
@@ -4580,9 +6087,11 @@
]
[[package]]
-name = "pallet-nft"
+name = "pallet-contracts"
version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
dependencies = [
+<<<<<<< HEAD
"ethereum",
"ethereum-tx-sign",
"evm-coder",
@@ -4603,28 +6112,52 @@
"rlp 0.5.0",
"serde",
"sp-api",
+=======
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-contracts-primitives",
+ "pallet-contracts-proc-macro",
+ "parity-scale-codec",
+ "parity-wasm 0.42.2",
+ "pwasm-utils 0.17.1",
+ "serde",
+ "smallvec 1.6.1",
+>>>>>>> origin/develop
"sp-core",
"sp-io",
"sp-runtime",
+ "sp-sandbox",
"sp-std",
+ "wasmi-validation 0.4.0",
]
[[package]]
-name = "pallet-randomness-collective-flip"
+name = "pallet-contracts-primitives"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec 2.1.1",
"safe-mix",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "bitflags",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
-name = "pallet-session"
+name = "pallet-contracts-proc-macro"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
@@ -4632,19 +6165,38 @@
"impl-trait-for-tuples 0.2.1",
"pallet-timestamp",
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pallet-contracts-rpc"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "pallet-contracts-primitives",
+ "pallet-contracts-rpc-runtime-api",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
+ "sp-api",
+ "sp-blockchain",
"sp-core",
- "sp-io",
+ "sp-rpc",
"sp-runtime",
- "sp-session",
- "sp-staking",
- "sp-std",
- "sp-trie",
]
[[package]]
-name = "pallet-sudo"
+name = "pallet-contracts-rpc-runtime-api"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-support",
@@ -4652,46 +6204,73 @@
"parity-scale-codec 2.1.1",
"serde",
"sp-io",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "pallet-contracts-primitives",
+ "parity-scale-codec",
+ "sp-api",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
-name = "pallet-timestamp"
+name = "pallet-democracy"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"impl-trait-for-tuples 0.2.1",
"log",
"parity-scale-codec 2.1.1",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
- "sp-inherents",
"sp-io",
"sp-runtime",
"sp-std",
- "sp-timestamp",
]
[[package]]
-name = "pallet-transaction-payment"
+name = "pallet-election-provider-multi-phase"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "frame-election-provider-support",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
"serde",
"smallvec 1.6.1",
+=======
+ "log",
+ "parity-scale-codec",
+ "sp-arithmetic",
+>>>>>>> origin/develop
"sp-core",
"sp-io",
+ "sp-npos-elections",
"sp-runtime",
"sp-std",
+ "static_assertions",
]
[[package]]
+<<<<<<< HEAD
name = "pallet-transaction-payment-rpc"
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
@@ -4703,52 +6282,103 @@
"parity-scale-codec 2.1.1",
"sp-api",
"sp-blockchain",
+=======
+name = "pallet-elections-phragmen"
+version = "4.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-core",
- "sp-rpc",
+ "sp-io",
+ "sp-npos-elections",
"sp-runtime",
+ "sp-std",
]
[[package]]
-name = "pallet-transaction-payment-rpc-runtime-api"
+name = "pallet-gilt"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec 2.1.1",
"sp-api",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-arithmetic",
+>>>>>>> origin/develop
"sp-runtime",
+ "sp-std",
]
[[package]]
-name = "pallet-treasury"
+name = "pallet-grandpa"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"impl-trait-for-tuples 0.2.1",
"pallet-balances",
"parity-scale-codec 2.1.1",
"serde",
+=======
+ "log",
+ "pallet-authorship",
+ "pallet-session",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-finality-grandpa",
+>>>>>>> origin/develop
"sp-runtime",
+ "sp-session",
+ "sp-staking",
"sp-std",
]
[[package]]
-name = "pallet-vesting"
+name = "pallet-identity"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"enumflags2",
+ "frame-benchmarking",
"frame-support",
"frame-system",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
"serde",
+=======
+ "parity-scale-codec",
+ "sp-io",
+>>>>>>> origin/develop
"sp-runtime",
"sp-std",
]
[[package]]
+<<<<<<< HEAD
name = "parity-db"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4759,13 +6389,27 @@
"fs2",
"hex",
"libc",
+=======
+name = "pallet-im-online"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+>>>>>>> origin/develop
"log",
- "memmap2",
- "parking_lot 0.11.1",
- "rand 0.8.3",
+ "pallet-authorship",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
]
[[package]]
+<<<<<<< HEAD
name = "parity-multiaddr"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4805,10 +6449,42 @@
"bitvec 0.20.4",
"byte-slice-cast 1.0.0",
"parity-scale-codec-derive",
+=======
+name = "pallet-indices"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-inflation"
+version = "3.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-randomness-collective-flip",
+ "pallet-timestamp",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
]
[[package]]
+<<<<<<< HEAD
name = "parity-scale-codec-derive"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4818,9 +6494,657 @@
"proc-macro2",
"quote",
"syn",
+=======
+name = "pallet-membership"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+>>>>>>> origin/develop
+]
+
+[[package]]
+name = "pallet-mmr"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+<<<<<<< HEAD
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "libc",
+ "log",
+ "mio-named-pipes",
+ "miow 0.3.7",
+ "rand 0.7.3",
+ "tokio 0.1.22",
+ "tokio-named-pipes",
+ "tokio-uds",
+ "winapi 0.3.9",
+=======
+ "ckb-merkle-mountain-range",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-mmr-primitives",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+>>>>>>> origin/develop
+]
+
+[[package]]
+name = "pallet-mmr-primitives"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+<<<<<<< HEAD
+ "cfg-if 1.0.0",
+ "hashbrown",
+ "impl-trait-for-tuples 0.2.1",
+ "parity-util-mem-derive",
+ "parking_lot 0.11.1",
+ "primitive-types 0.9.0",
+ "smallvec 1.6.1",
+ "winapi 0.3.9",
+=======
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+>>>>>>> origin/develop
]
[[package]]
+name = "pallet-mmr-rpc"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "pallet-mmr-primitives",
+ "parity-scale-codec",
+ "serde",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-multisig"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-nft"
+version = "3.0.0"
+dependencies = [
+<<<<<<< HEAD
+ "byteorder",
+ "bytes 0.4.12",
+ "httparse",
+ "log",
+ "mio",
+ "mio-extras",
+ "rand 0.7.3",
+ "sha-1 0.8.2",
+ "slab",
+ "url 2.2.2",
+=======
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "nft-data-structs",
+ "pallet-balances",
+ "pallet-contracts",
+ "pallet-randomness-collective-flip",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+>>>>>>> origin/develop
+]
+
+[[package]]
+name = "pallet-nft-charge-transaction"
+version = "3.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "nft-data-structs",
+ "pallet-balances",
+ "pallet-contracts",
+ "pallet-nft",
+ "pallet-nft-transaction-payment",
+ "pallet-randomness-collective-flip",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-nft-transaction-payment"
+version = "3.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "nft-data-structs",
+ "pallet-balances",
+ "pallet-contracts",
+ "pallet-nft",
+ "pallet-randomness-collective-flip",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-nicks"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+<<<<<<< HEAD
+ "instant",
+ "lock_api 0.4.4",
+ "parking_lot_core 0.8.3",
+=======
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+>>>>>>> origin/develop
+]
+
+[[package]]
+name = "pallet-offences"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "serde",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-proxy"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-randomness-collective-flip"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+<<<<<<< HEAD
+ "cfg-if 1.0.0",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.8",
+ "smallvec 1.6.1",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58"
+=======
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "safe-mix",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-recovery"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "enumflags2",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-scheduler"
+version = "3.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "nft-data-structs",
+ "pallet-contracts",
+ "pallet-nft",
+ "pallet-nft-transaction-payment",
+ "parity-scale-codec",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "substrate-test-utils",
+]
+>>>>>>> origin/develop
+
+[[package]]
+name = "pallet-scheduler"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-session"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "pallet-society"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "rand_chacha 0.2.2",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-staking"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "pallet-session",
+ "parity-scale-codec",
+ "paste",
+ "serde",
+ "sp-application-crypto",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+ "static_assertions",
+]
+
+[[package]]
+name = "pallet-staking-reward-curve"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "proc-macro-crate 1.0.0",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pallet-staking-reward-fn"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "log",
+ "sp-arithmetic",
+]
+
+[[package]]
+name = "pallet-sudo"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-timestamp"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-timestamp",
+]
+
+[[package]]
+name = "pallet-tips"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-treasury",
+ "parity-scale-codec",
+ "serde",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-transaction-payment"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "serde",
+ "smallvec 1.6.1",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-transaction-payment-rpc"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+]
+
+[[package]]
+<<<<<<< HEAD
+name = "pin-project"
+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.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
+dependencies = [
+ "pin-project-internal 1.0.7",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
+=======
+name = "pallet-transaction-payment-rpc-runtime-api"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-treasury"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "pallet-balances",
+ "parity-scale-codec",
+ "serde",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-utility"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+<<<<<<< HEAD
+name = "pin-project-internal"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
+=======
+name = "pallet-vesting"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
+dependencies = [
+ "enumflags2",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+<<<<<<< HEAD
+name = "pin-project-lite"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
+=======
+name = "pallet-xcm"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "serde",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "parachain-info"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "serde",
+]
+
+[[package]]
+name = "parity-db"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "495197c078e54b8735181aa35c00a327f7f3a3cc00a1ee8c95926dd010f0ec6b"
+dependencies = [
+ "blake2-rfc",
+ "crc32fast",
+ "fs2",
+ "hex",
+ "libc",
+ "log",
+ "memmap2",
+ "parking_lot 0.11.1",
+ "rand 0.8.3",
+]
+
+[[package]]
+name = "parity-multiaddr"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58341485071825827b7f03cf7efd1cb21e6a709bea778fb50227fd45d2f361b4"
+dependencies = [
+ "arrayref",
+ "bs58",
+ "byteorder",
+ "data-encoding",
+ "multihash",
+ "percent-encoding 2.1.0",
+ "serde",
+ "static_assertions",
+ "unsigned-varint 0.7.0",
+ "url 2.2.1",
+]
+>>>>>>> origin/develop
+
+[[package]]
+name = "parity-scale-codec"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0f518afaa5a47d0d6386229b0a6e01e86427291d643aa4cabb4992219f504f8"
+dependencies = [
+ "arrayvec 0.7.0",
+ "bitvec",
+ "byte-slice-cast",
+ "parity-scale-codec-derive",
+ "serde",
+]
+
+[[package]]
+name = "parity-scale-codec-derive"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f44c5f94427bd0b5076e8f7e15ca3f60a4d8ac0077e4793884e6fdfd8915344e"
+dependencies = [
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "parity-send-wrapper"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4852,11 +7176,13 @@
checksum = "664a8c6b8e62d8f9f2f937e391982eb433ab285b4cd9545b342441e04a906e42"
dependencies = [
"cfg-if 1.0.0",
+ "ethereum-types",
"hashbrown",
- "impl-trait-for-tuples 0.2.1",
+ "impl-trait-for-tuples",
+ "lru",
"parity-util-mem-derive",
"parking_lot 0.11.1",
- "primitive-types 0.9.0",
+ "primitive-types",
"smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -4888,6 +7214,12 @@
checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865"
[[package]]
+name = "parity-wasm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92"
+
+[[package]]
name = "parity-ws"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4902,7 +7234,7 @@
"rand 0.7.3",
"sha-1 0.8.2",
"slab",
- "url 2.2.2",
+ "url 2.2.1",
]
[[package]]
@@ -4939,7 +7271,7 @@
checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
dependencies = [
"instant",
- "lock_api 0.4.4",
+ "lock_api 0.4.3",
"parking_lot_core 0.8.3",
]
@@ -4981,7 +7313,7 @@
"cfg-if 1.0.0",
"instant",
"libc",
- "redox_syscall 0.2.8",
+ "redox_syscall 0.2.6",
"smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -5099,11 +7431,11 @@
[[package]]
name = "pin-project"
-version = "1.0.7"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
+checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6"
dependencies = [
- "pin-project-internal 1.0.7",
+ "pin-project-internal 1.0.6",
]
[[package]]
@@ -5119,9 +7451,9 @@
[[package]]
name = "pin-project-internal"
-version = "1.0.7"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
+checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5"
dependencies = [
"proc-macro2",
"quote",
@@ -5159,6 +7491,1012 @@
checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
[[package]]
+name = "polkadot-approval-distribution"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-availability-bitfield-distribution"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-network-protocol",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-availability-distribution"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "lru",
+ "parity-scale-codec",
+ "polkadot-erasure-coding",
+ "polkadot-node-core-runtime-api",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "rand 0.8.3",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-keystore",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-availability-recovery"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "lru",
+ "parity-scale-codec",
+ "polkadot-erasure-coding",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "rand 0.8.3",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-cli"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-benchmarking-cli",
+ "futures 0.3.14",
+ "log",
+ "polkadot-node-core-pvf",
+ "polkadot-service",
+ "sc-cli",
+ "sc-service",
+ "sp-core",
+ "sp-trie",
+ "structopt",
+ "substrate-build-script-utils",
+ "thiserror",
+ "try-runtime-cli",
+]
+
+[[package]]
+name = "polkadot-collator-protocol"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "always-assert",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-core-primitives"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "parity-scale-codec",
+ "parity-util-mem",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "polkadot-erasure-coding"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "parity-scale-codec",
+ "polkadot-node-primitives",
+ "polkadot-primitives",
+ "reed-solomon-novelpoly",
+ "sp-core",
+ "sp-trie",
+ "thiserror",
+]
+
+[[package]]
+name = "polkadot-gossip-support"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-network-protocol",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-application-crypto",
+ "sp-keystore",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-network-bridge"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "polkadot-node-network-protocol",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sc-authority-discovery",
+ "sc-network",
+ "sp-consensus",
+ "strum",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-collation-generation"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "polkadot-erasure-coding",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-core",
+ "sp-maybe-compressed-blob",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-approval-voting"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "derive_more",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "kvdb",
+ "merlin",
+ "parity-scale-codec",
+ "polkadot-node-jaeger",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "sc-client-api",
+ "sc-keystore",
+ "schnorrkel",
+ "sp-application-crypto",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-slots",
+ "sp-runtime",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-av-store"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "kvdb",
+ "parity-scale-codec",
+ "polkadot-erasure-coding",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-backing"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "futures 0.3.14",
+ "polkadot-erasure-coding",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "polkadot-statement-table",
+ "sp-keystore",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-bitfield-signing"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-keystore",
+ "thiserror",
+ "tracing",
+ "wasm-timer",
+]
+
+[[package]]
+name = "polkadot-node-core-candidate-selection"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-keystore",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-candidate-validation"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "polkadot-node-core-pvf",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "sp-maybe-compressed-blob",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-chain-api"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-blockchain",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-parachains-inherent"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "polkadot-node-subsystem",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "sp-blockchain",
+ "sp-inherents",
+ "sp-runtime",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-provisioner"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-pvf"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "always-assert",
+ "assert_matches",
+ "async-process",
+ "async-std",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "libc",
+ "parity-scale-codec",
+ "pin-project 1.0.6",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "rand 0.8.3",
+ "sc-executor",
+ "sc-executor-common",
+ "sc-executor-wasmtime",
+ "slotmap",
+ "sp-core",
+ "sp-externalities",
+ "sp-io",
+ "sp-wasm-interface",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-core-runtime-api"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "memory-lru",
+ "parity-util-mem",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-consensus-babe",
+ "sp-core",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-jaeger"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-std",
+ "lazy_static",
+ "log",
+ "mick-jaeger",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "polkadot-node-primitives",
+ "polkadot-primitives",
+ "sc-network",
+ "sp-core",
+ "thiserror",
+]
+
+[[package]]
+name = "polkadot-node-network-protocol"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "polkadot-node-jaeger",
+ "polkadot-node-primitives",
+ "polkadot-primitives",
+ "sc-network",
+ "strum",
+ "thiserror",
+]
+
+[[package]]
+name = "polkadot-node-primitives"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "futures 0.3.14",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-statement-table",
+ "schnorrkel",
+ "serde",
+ "sp-application-crypto",
+ "sp-consensus-babe",
+ "sp-consensus-vrf",
+ "sp-core",
+ "sp-maybe-compressed-blob",
+ "sp-runtime",
+ "thiserror",
+ "zstd",
+]
+
+[[package]]
+name = "polkadot-node-subsystem"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "derive_more",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "lazy_static",
+ "log",
+ "mick-jaeger",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "pin-project 1.0.6",
+ "polkadot-node-jaeger",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-primitives",
+ "polkadot-procmacro-subsystem-dispatch-gen",
+ "polkadot-statement-table",
+ "sc-network",
+ "smallvec 1.6.1",
+ "sp-core",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-node-subsystem-util"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "lru",
+ "metered-channel",
+ "parity-scale-codec",
+ "pin-project 1.0.6",
+ "polkadot-node-jaeger",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-primitives",
+ "rand 0.8.3",
+ "sc-network",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-keystore",
+ "streamunordered",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-overseer"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "polkadot-procmacro-overseer-subsystems-gen",
+ "sc-client-api",
+ "sp-api",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-parachain"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "derive_more",
+ "parity-scale-codec",
+ "parity-util-mem",
+ "polkadot-core-primitives",
+ "serde",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "polkadot-primitives"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "frame-system",
+ "hex-literal",
+ "parity-scale-codec",
+ "parity-util-mem",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+ "sp-trie",
+ "sp-version",
+ "thiserror",
+]
+
+[[package]]
+name = "polkadot-procmacro-overseer-subsystems-gen"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "assert_matches",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "polkadot-procmacro-subsystem-dispatch-gen"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "assert_matches",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "polkadot-rpc"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-gadget",
+ "beefy-gadget-rpc",
+ "jsonrpc-core",
+ "pallet-mmr-rpc",
+ "pallet-transaction-payment-rpc",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-consensus-babe",
+ "sc-consensus-babe-rpc",
+ "sc-consensus-epochs",
+ "sc-finality-grandpa",
+ "sc-finality-grandpa-rpc",
+ "sc-keystore",
+ "sc-rpc",
+ "sc-sync-state-rpc",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-babe",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-transaction-pool",
+ "substrate-frame-rpc-system",
+]
+
+[[package]]
+name = "polkadot-runtime"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bitvec",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-bounties",
+ "pallet-collective",
+ "pallet-democracy",
+ "pallet-election-provider-multi-phase",
+ "pallet-elections-phragmen",
+ "pallet-grandpa",
+ "pallet-identity",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-membership",
+ "pallet-mmr-primitives",
+ "pallet-multisig",
+ "pallet-nicks",
+ "pallet-offences",
+ "pallet-proxy",
+ "pallet-randomness-collective-flip",
+ "pallet-scheduler 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3)",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-timestamp",
+ "pallet-tips",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-treasury",
+ "pallet-utility",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "rustc-hex",
+ "serde",
+ "serde_derive",
+ "smallvec 1.6.1",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "static_assertions",
+ "substrate-wasm-builder 3.0.0",
+]
+
+[[package]]
+name = "polkadot-runtime-common"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bitvec",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "libsecp256k1",
+ "log",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-beefy",
+ "pallet-mmr",
+ "pallet-offences",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-treasury",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "rustc-hex",
+ "serde",
+ "serde_derive",
+ "slot-range-helper",
+ "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "static_assertions",
+ "xcm",
+]
+
+[[package]]
+name = "polkadot-runtime-parachains"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "bitvec",
+ "derive_more",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-offences",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-timestamp",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "rand 0.8.3",
+ "rand_chacha 0.3.0",
+ "rustc-hex",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "polkadot-service"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-gadget",
+ "beefy-primitives",
+ "frame-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "futures 0.3.14",
+ "hex-literal",
+ "kusama-runtime",
+ "kvdb",
+ "kvdb-rocksdb",
+ "pallet-babe",
+ "pallet-im-online",
+ "pallet-mmr-primitives",
+ "pallet-staking",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "polkadot-approval-distribution",
+ "polkadot-availability-bitfield-distribution",
+ "polkadot-availability-distribution",
+ "polkadot-availability-recovery",
+ "polkadot-collator-protocol",
+ "polkadot-gossip-support",
+ "polkadot-network-bridge",
+ "polkadot-node-collation-generation",
+ "polkadot-node-core-approval-voting",
+ "polkadot-node-core-av-store",
+ "polkadot-node-core-backing",
+ "polkadot-node-core-bitfield-signing",
+ "polkadot-node-core-candidate-selection",
+ "polkadot-node-core-candidate-validation",
+ "polkadot-node-core-chain-api",
+ "polkadot-node-core-parachains-inherent",
+ "polkadot-node-core-provisioner",
+ "polkadot-node-core-runtime-api",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-overseer",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-rpc",
+ "polkadot-runtime",
+ "polkadot-runtime-parachains",
+ "polkadot-statement-distribution",
+ "rococo-runtime",
+ "sc-authority-discovery",
+ "sc-basic-authorship",
+ "sc-block-builder",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-client-db",
+ "sc-consensus",
+ "sc-consensus-babe",
+ "sc-consensus-slots",
+ "sc-consensus-uncles",
+ "sc-executor",
+ "sc-finality-grandpa",
+ "sc-finality-grandpa-warp-sync",
+ "sc-keystore",
+ "sc-network",
+ "sc-service",
+ "sc-telemetry",
+ "sc-transaction-pool",
+ "serde",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-finality-grandpa",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-state-machine",
+ "sp-storage",
+ "sp-timestamp",
+ "sp-transaction-pool",
+ "sp-trie",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+ "tracing",
+ "westend-runtime",
+]
+
+[[package]]
+name = "polkadot-statement-distribution"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "arrayvec 0.5.2",
+ "futures 0.3.14",
+ "indexmap",
+ "parity-scale-codec",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-util",
+ "polkadot-primitives",
+ "sc-network",
+ "sp-keystore",
+ "sp-staking",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "polkadot-statement-table"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "sp-core",
+]
+
+[[package]]
+name = "polkadot-test-runtime"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bitvec",
+ "frame-election-provider-support",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-grandpa",
+ "pallet-indices",
+ "pallet-mmr-primitives",
+ "pallet-nicks",
+ "pallet-offences",
+ "pallet-randomness-collective-flip",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "rustc-hex",
+ "serde",
+ "serde_derive",
+ "smallvec 1.6.1",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "substrate-wasm-builder 3.0.0",
+]
+
+[[package]]
+name = "polkadot-test-service"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-benchmarking",
+ "frame-system",
+ "futures 0.1.31",
+ "futures 0.3.14",
+ "hex",
+ "pallet-balances",
+ "pallet-staking",
+ "pallet-transaction-payment",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-overseer",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-rpc",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "polkadot-service",
+ "polkadot-test-runtime",
+ "rand 0.8.3",
+ "sc-authority-discovery",
+ "sc-chain-spec",
+ "sc-cli",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-consensus-babe",
+ "sc-executor",
+ "sc-finality-grandpa",
+ "sc-network",
+ "sc-service",
+ "sc-tracing",
+ "sc-transaction-pool",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-finality-grandpa",
+ "sp-inherents",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-state-machine",
+ "substrate-test-client",
+ "tempfile",
+ "tracing",
+]
+
+[[package]]
name = "polling"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5217,9 +8555,15 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2415937401cb030a2a0a4d922483f945fa068f52a7dbb22ce0fe5f2b6f6adace"
dependencies = [
+<<<<<<< HEAD
"fixed-hash 0.7.0",
"impl-codec 0.5.0",
"impl-rlp 0.3.0",
+=======
+ "fixed-hash",
+ "impl-codec",
+ "impl-rlp",
+>>>>>>> origin/develop
"impl-serde",
"uint 0.9.0",
]
@@ -5320,14 +8664,18 @@
dependencies = [
"bytes 1.0.1",
"heck",
- "itertools",
+ "itertools 0.9.0",
"log",
"multimap",
"petgraph",
"prost",
"prost-types",
"tempfile",
+<<<<<<< HEAD
"which",
+=======
+ "which 4.1.0",
+>>>>>>> origin/develop
]
[[package]]
@@ -5337,7 +8685,7 @@
checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
dependencies = [
"anyhow",
- "itertools",
+ "itertools 0.9.0",
"proc-macro2",
"quote",
"syn",
@@ -5375,13 +8723,13 @@
[[package]]
name = "pwasm-utils"
-version = "0.16.0"
+version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c8ac87af529432d3a4f0e2b3bbf08af49f28f09cc73ed7e551161bdaef5f78d"
+checksum = "78778a25194f953d1766fc8c6a331ed56f070d09a0511267ee2c150cb71ea8c2"
dependencies = [
"byteorder",
"log",
- "parity-wasm 0.41.0",
+ "parity-wasm 0.42.2",
]
[[package]]
@@ -5564,17 +8912,6 @@
checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
dependencies = [
"rand_core 0.5.1",
-]
-
-[[package]]
-name = "raw-cpuid"
-version = "8.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73"
-dependencies = [
- "bitflags",
- "cc",
- "rustc_version",
]
[[package]]
@@ -5603,7 +8940,11 @@
dependencies = [
"crossbeam-channel",
"crossbeam-deque 0.8.0",
+<<<<<<< HEAD
"crossbeam-utils 0.8.4",
+=======
+ "crossbeam-utils 0.8.3",
+>>>>>>> origin/develop
"lazy_static",
"num_cpus",
]
@@ -5622,6 +8963,18 @@
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+<<<<<<< HEAD
+=======
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041"
+dependencies = [
+ "bitflags",
+]
+>>>>>>> origin/develop
[[package]]
name = "redox_syscall"
@@ -5639,10 +8992,27 @@
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
"getrandom 0.2.2",
+<<<<<<< HEAD
"redox_syscall 0.2.8",
+=======
+ "redox_syscall 0.2.6",
]
[[package]]
+name = "reed-solomon-novelpoly"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221"
+dependencies = [
+ "derive_more",
+ "fs-err",
+ "itertools 0.10.0",
+ "static_init",
+ "thiserror",
+>>>>>>> origin/develop
+]
+
+[[package]]
name = "ref-cast"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5670,14 +9040,21 @@
dependencies = [
"log",
"rustc-hash",
+ "serde",
"smallvec 1.6.1",
]
[[package]]
name = "regex"
+<<<<<<< HEAD
version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+=======
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
+>>>>>>> origin/develop
dependencies = [
"aho-corasick",
"memchr",
@@ -5696,9 +9073,15 @@
[[package]]
name = "regex-syntax"
+<<<<<<< HEAD
version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+=======
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
+>>>>>>> origin/develop
[[package]]
name = "region"
@@ -5713,6 +9096,22 @@
]
[[package]]
+name = "remote-externalities"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "env_logger 0.8.3",
+ "hex-literal",
+ "jsonrpsee-http-client",
+ "jsonrpsee-proc-macros",
+ "log",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
name = "remove_dir_all"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5722,6 +9121,16 @@
]
[[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.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5744,6 +9153,7 @@
[[package]]
name = "rlp"
+<<<<<<< HEAD
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73"
@@ -5753,6 +9163,8 @@
[[package]]
name = "rlp"
+=======
+>>>>>>> origin/develop
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8"
@@ -5762,6 +9174,7 @@
]
[[package]]
+<<<<<<< HEAD
name = "rlp-derive"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5773,6 +9186,8 @@
]
[[package]]
+=======
+>>>>>>> origin/develop
name = "rocksdb"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5783,6 +9198,72 @@
]
[[package]]
+name = "rococo-runtime"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bp-rococo",
+ "bp-wococo",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "hex-literal",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-beefy",
+ "pallet-bridge-grandpa",
+ "pallet-collective",
+ "pallet-grandpa",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-membership",
+ "pallet-mmr",
+ "pallet-mmr-primitives",
+ "pallet-offences",
+ "pallet-proxy",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "serde",
+ "serde_derive",
+ "smallvec 1.6.1",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "substrate-wasm-builder 3.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
name = "rpassword"
version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5793,6 +9274,21 @@
]
[[package]]
+<<<<<<< HEAD
+=======
+name = "rust-argon2"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
+dependencies = [
+ "base64 0.13.0",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils 0.8.3",
+]
+
+[[package]]
+>>>>>>> origin/develop
name = "rustc-demangle"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5858,12 +9354,26 @@
]
[[package]]
+name = "ruzstd"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d425143485a37727c7a46e689bbe3b883a00f42b4a52c4ac0f44855c1009b00"
+dependencies = [
+ "byteorder",
+ "twox-hash",
+]
+
+[[package]]
name = "rw-stream-sink"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"pin-project 0.4.28",
"static_assertions",
]
@@ -5902,11 +9412,46 @@
]
[[package]]
+name = "sc-authority-discovery"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "derive_more",
+ "either",
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "ip_network",
+ "libp2p",
+ "log",
+ "parity-scale-codec",
+ "prost",
+ "prost-build",
+ "rand 0.7.3",
+ "sc-client-api",
+ "sc-network",
+ "serde_json",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-blockchain",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+]
+
+[[package]]
name = "sc-basic-authorship"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"log",
"parity-scale-codec 2.1.1",
@@ -5927,7 +9472,11 @@
[[package]]
name = "sc-block-builder"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sc-client-api",
@@ -5943,7 +9492,11 @@
[[package]]
name = "sc-chain-spec"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"impl-trait-for-tuples 0.2.1",
"parity-scale-codec 2.1.1",
@@ -5964,7 +9517,11 @@
[[package]]
name = "sc-chain-spec-derive"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"proc-macro-crate 1.0.0",
"proc-macro2",
@@ -5975,11 +9532,19 @@
[[package]]
name = "sc-cli"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"chrono",
"fdlimit",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "chrono",
+ "fdlimit",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hex",
"libp2p",
"log",
@@ -6013,11 +9578,19 @@
[[package]]
name = "sc-client-api"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"derive_more",
"fnv",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "fnv",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hash-db",
"kvdb",
"lazy_static",
@@ -6047,7 +9620,11 @@
[[package]]
name = "sc-client-db"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"blake2-rfc",
"hash-db",
@@ -6077,8 +9654,13 @@
[[package]]
name = "sc-consensus"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "parking_lot 0.11.1",
"sc-client-api",
"sp-blockchain",
"sp-consensus",
@@ -6088,14 +9670,26 @@
[[package]]
name = "sc-consensus-aura"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "async-trait",
"derive_more",
+<<<<<<< HEAD
"futures 0.3.15",
"futures-timer 3.0.2",
"log",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+=======
+ "futures 0.3.14",
+ "futures-timer 3.0.2",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sc-block-builder",
"sc-client-api",
"sc-consensus-slots",
@@ -6112,7 +9706,6 @@
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-timestamp",
"sp-version",
"substrate-prometheus-endpoint",
]
@@ -6120,11 +9713,20 @@
[[package]]
name = "sc-consensus-babe"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "async-trait",
"derive_more",
"fork-tree",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"log",
"merlin",
@@ -6157,21 +9759,52 @@
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-timestamp",
"sp-utils",
"sp-version",
"substrate-prometheus-endpoint",
]
[[package]]
+name = "sc-consensus-babe-rpc"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "sc-consensus-babe",
+ "sc-consensus-epochs",
+ "sc-rpc-api",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+]
+
+[[package]]
name = "sc-consensus-epochs"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"fork-tree",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "fork-tree",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sc-client-api",
+ "sc-consensus",
"sp-blockchain",
"sp-runtime",
]
@@ -6179,13 +9812,25 @@
[[package]]
name = "sc-consensus-slots"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
+ "impl-trait-for-tuples",
"log",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sc-client-api",
"sc-telemetry",
"sp-api",
@@ -6198,6 +9843,7 @@
"sp-inherents",
"sp-runtime",
"sp-state-machine",
+ "sp-timestamp",
"sp-trie",
"thiserror",
]
@@ -6205,21 +9851,26 @@
[[package]]
name = "sc-consensus-uncles"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
- "log",
"sc-client-api",
"sp-authorship",
- "sp-consensus",
- "sp-core",
- "sp-inherents",
"sp-runtime",
+ "thiserror",
]
[[package]]
name = "sc-executor"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"derive_more",
"lazy_static",
@@ -6248,13 +9899,19 @@
[[package]]
name = "sc-executor-common"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"derive_more",
"parity-scale-codec 2.1.1",
"parity-wasm 0.41.0",
+ "pwasm-utils 0.14.0",
"sp-allocator",
"sp-core",
+ "sp-maybe-compressed-blob",
"sp-serializer",
"sp-wasm-interface",
"thiserror",
@@ -6264,7 +9921,11 @@
[[package]]
name = "sc-executor-wasmi"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"parity-scale-codec 2.1.1",
@@ -6279,7 +9940,11 @@
[[package]]
name = "sc-executor-wasmtime"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"parity-scale-codec 2.1.1",
@@ -6297,21 +9962,35 @@
[[package]]
name = "sc-finality-grandpa"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "async-trait",
"derive_more",
"dyn-clone",
"finality-grandpa",
"fork-tree",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"linked-hash-map",
"log",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+<<<<<<< HEAD
"pin-project 1.0.7",
"rand 0.7.3",
"sc-block-builder",
+=======
+ "pin-project 1.0.6",
+ "rand 0.7.3",
+ "sc-block-builder",
"sc-client-api",
"sc-consensus",
"sc-keystore",
@@ -6334,12 +10013,65 @@
]
[[package]]
+name = "sc-finality-grandpa-rpc"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "finality-grandpa",
+ "futures 0.3.14",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "jsonrpc-pubsub",
+ "log",
+ "parity-scale-codec",
+ "sc-client-api",
+ "sc-finality-grandpa",
+ "sc-rpc",
+ "serde",
+ "serde_json",
+ "sp-blockchain",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "sc-finality-grandpa-warp-sync"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+ "log",
+ "num-traits",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "prost",
+>>>>>>> origin/develop
+ "sc-client-api",
+ "sc-finality-grandpa",
+ "sc-network",
+ "sc-service",
+ "sp-blockchain",
+ "sp-finality-grandpa",
+ "sp-runtime",
+]
+
+[[package]]
name = "sc-informant"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"ansi_term 0.12.1",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "ansi_term 0.12.1",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"log",
"parity-util-mem",
"sc-client-api",
@@ -6354,11 +10086,19 @@
[[package]]
name = "sc-keystore"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"async-trait",
"derive_more",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "derive_more",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-util",
"hex",
"merlin",
@@ -6374,7 +10114,11 @@
[[package]]
name = "sc-light"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"hash-db",
"lazy_static",
@@ -6393,7 +10137,11 @@
[[package]]
name = "sc-network"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"async-std",
"async-trait",
@@ -6407,7 +10155,11 @@
"erased-serde",
"fnv",
"fork-tree",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"hex",
"ip_network",
@@ -6419,7 +10171,11 @@
"nohash-hasher",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"prost",
"prost-build",
"rand 0.7.3",
@@ -6446,9 +10202,15 @@
[[package]]
name = "sc-network-gossip"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -6456,17 +10218,26 @@
"sc-network",
"sp-runtime",
"substrate-prometheus-endpoint",
+ "tracing",
"wasm-timer",
]
[[package]]
name = "sc-offchain"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"bytes 0.5.6",
"fnv",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "bytes 0.5.6",
+ "fnv",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"hex",
"hyper 0.13.10",
@@ -6490,9 +10261,15 @@
[[package]]
name = "sc-peerset"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"libp2p",
"log",
"serde_json",
@@ -6503,7 +10280,11 @@
[[package]]
name = "sc-proposer-metrics"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -6512,9 +10293,15 @@
[[package]]
name = "sc-rpc"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hash-db",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
@@ -6538,6 +10325,7 @@
"sp-runtime",
"sp-session",
"sp-state-machine",
+ "sp-tracing",
"sp-transaction-pool",
"sp-utils",
"sp-version",
@@ -6546,6 +10334,7 @@
[[package]]
name = "sc-rpc-api"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"derive_more",
@@ -6554,6 +10343,16 @@
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
"jsonrpc-pubsub 15.1.0",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "jsonrpc-pubsub",
+>>>>>>> origin/develop
"log",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
@@ -6563,6 +10362,7 @@
"sp-core",
"sp-rpc",
"sp-runtime",
+ "sp-tracing",
"sp-transaction-pool",
"sp-version",
]
@@ -6570,10 +10370,17 @@
[[package]]
name = "sc-rpc-server"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.1.31",
"jsonrpc-core 15.1.0",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.1.31",
+ "jsonrpc-core",
+>>>>>>> origin/develop
"jsonrpc-http-server",
"jsonrpc-ipc-server",
"jsonrpc-pubsub 15.1.0",
@@ -6588,12 +10395,21 @@
[[package]]
name = "sc-service"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "async-trait",
"directories",
"exit-future",
"futures 0.1.31",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"hash-db",
"jsonrpc-core 15.1.0",
@@ -6603,7 +10419,11 @@
"parity-scale-codec 2.1.1",
"parity-util-mem",
"parking_lot 0.11.1",
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"rand 0.7.3",
"sc-block-builder",
"sc-chain-spec",
@@ -6651,7 +10471,11 @@
[[package]]
name = "sc-state-db"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"parity-scale-codec 2.1.1",
@@ -6664,8 +10488,29 @@
]
[[package]]
+name = "sc-sync-state-rpc"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-consensus-babe",
+ "sc-consensus-epochs",
+ "sc-finality-grandpa",
+ "sc-rpc-api",
+ "serde_json",
+ "sp-blockchain",
+ "sp-runtime",
+ "thiserror",
+]
+
+[[package]]
name = "sc-telemetry"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"chrono",
@@ -6674,6 +10519,16 @@
"log",
"parking_lot 0.11.1",
"pin-project 1.0.7",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "chrono",
+ "futures 0.3.14",
+ "libp2p",
+ "log",
+ "parking_lot 0.11.1",
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"rand 0.7.3",
"serde",
"serde_json",
@@ -6686,7 +10541,11 @@
[[package]]
name = "sc-tracing"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"ansi_term 0.12.1",
"atty",
@@ -6697,23 +10556,40 @@
"parking_lot 0.11.1",
"regex",
"rustc-hash",
+<<<<<<< HEAD
+=======
+ "sc-client-api",
+ "sc-rpc-server",
+ "sc-telemetry",
+>>>>>>> origin/develop
"sc-tracing-proc-macro",
"serde",
"serde_json",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+ "sp-storage",
"sp-tracing",
"thiserror",
"tracing",
- "tracing-core",
"tracing-log",
"tracing-subscriber",
"wasm-bindgen",
+ "wasm-timer",
"web-sys",
]
[[package]]
name = "sc-tracing-proc-macro"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"proc-macro-crate 1.0.0",
"proc-macro2",
@@ -6724,10 +10600,17 @@
[[package]]
name = "sc-transaction-graph"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"derive_more",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"linked-hash-map",
"log",
"parity-util-mem",
@@ -6746,9 +10629,15 @@
[[package]]
name = "sc-transaction-pool"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-diagnose",
"intervalier",
"log",
@@ -6935,18 +10824,30 @@
[[package]]
name = "serde"
+<<<<<<< HEAD
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
+=======
+version = "1.0.125"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
+>>>>>>> origin/develop
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
+<<<<<<< HEAD
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
+=======
+version = "1.0.125"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -6978,9 +10879,15 @@
[[package]]
name = "sha-1"
+<<<<<<< HEAD
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16"
+=======
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f"
+>>>>>>> origin/develop
dependencies = [
"block-buffer 0.9.0",
"cfg-if 1.0.0",
@@ -7098,6 +11005,36 @@
checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
[[package]]
+name = "slog"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
+dependencies = [
+ "erased-serde",
+]
+
+[[package]]
+name = "slot-range-helper"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "enumn",
+ "parity-scale-codec",
+ "paste",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "585cd5dffe4e9e06f6dfdf66708b70aca3f781bed561f4f667b2d9c0d4559e36"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
name = "smallvec"
version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7160,17 +11097,29 @@
"base64 0.12.3",
"bytes 0.5.6",
"flate2",
+<<<<<<< HEAD
"futures 0.3.15",
"httparse",
"log",
"rand 0.7.3",
"sha-1 0.9.6",
+=======
+ "futures 0.3.14",
+ "httparse",
+ "log",
+ "rand 0.7.3",
+ "sha-1 0.9.4",
+>>>>>>> origin/develop
]
[[package]]
name = "sp-allocator"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"sp-core",
@@ -7182,11 +11131,19 @@
[[package]]
name = "sp-api"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"hash-db",
"log",
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "hash-db",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-api-proc-macro",
"sp-core",
"sp-runtime",
@@ -7199,7 +11156,11 @@
[[package]]
name = "sp-api-proc-macro"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"blake2-rfc",
"proc-macro-crate 1.0.0",
@@ -7211,7 +11172,11 @@
[[package]]
name = "sp-application-crypto"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"serde",
@@ -7223,7 +11188,11 @@
[[package]]
name = "sp-arithmetic"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"integer-sqrt",
"num-traits",
@@ -7231,14 +11200,34 @@
"serde",
"sp-debug-derive",
"sp-std",
+ "static_assertions",
]
[[package]]
+name = "sp-authority-discovery"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "parity-scale-codec",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
name = "sp-authorship"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-inherents",
"sp-runtime",
"sp-std",
@@ -7247,7 +11236,11 @@
[[package]]
name = "sp-block-builder"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-api",
@@ -7259,9 +11252,15 @@
[[package]]
name = "sp-blockchain"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"log",
"lru",
"parity-scale-codec 2.1.1",
@@ -7277,7 +11276,11 @@
[[package]]
name = "sp-chain-spec"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"serde",
"serde_json",
@@ -7286,9 +11289,16 @@
[[package]]
name = "sp-consensus"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -7312,11 +11322,19 @@
[[package]]
name = "sp-consensus-aura"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-api",
"sp-application-crypto",
+ "sp-consensus",
"sp-consensus-slots",
"sp-inherents",
"sp-runtime",
@@ -7327,10 +11345,19 @@
[[package]]
name = "sp-consensus-babe"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "async-trait",
"merlin",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
+=======
+ "parity-scale-codec",
+>>>>>>> origin/develop
"serde",
"sp-api",
"sp-application-crypto",
@@ -7348,7 +11375,11 @@
[[package]]
name = "sp-consensus-slots"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-arithmetic",
@@ -7358,7 +11389,11 @@
[[package]]
name = "sp-consensus-vrf"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"schnorrkel",
@@ -7370,14 +11405,22 @@
[[package]]
name = "sp-core"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"base58",
"blake2-rfc",
"byteorder",
"dyn-clonable",
"ed25519-dalek",
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hash-db",
"hash256-std-hasher",
"hex",
@@ -7414,7 +11457,11 @@
[[package]]
name = "sp-database"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"kvdb",
"parking_lot 0.11.1",
@@ -7423,7 +11470,11 @@
[[package]]
name = "sp-debug-derive"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -7433,7 +11484,11 @@
[[package]]
name = "sp-externalities"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"environmental",
"parity-scale-codec 2.1.1",
@@ -7444,7 +11499,11 @@
[[package]]
name = "sp-finality-grandpa"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"finality-grandpa",
"log",
@@ -7461,11 +11520,20 @@
[[package]]
name = "sp-inherents"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-core",
+ "sp-runtime",
"sp-std",
"thiserror",
]
@@ -7473,9 +11541,15 @@
[[package]]
name = "sp-io"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"hash-db",
"libsecp256k1",
"log",
@@ -7484,6 +11558,7 @@
"sp-core",
"sp-externalities",
"sp-keystore",
+ "sp-maybe-compressed-blob",
"sp-runtime-interface",
"sp-state-machine",
"sp-std",
@@ -7497,7 +11572,11 @@
[[package]]
name = "sp-keyring"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"lazy_static",
"sp-core",
@@ -7508,11 +11587,19 @@
[[package]]
name = "sp-keystore"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"async-trait",
"derive_more",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "derive_more",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"merlin",
"parity-scale-codec 2.1.1",
"parking_lot 0.11.1",
@@ -7523,9 +11610,46 @@
]
[[package]]
+name = "sp-maybe-compressed-blob"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "ruzstd",
+ "zstd",
+]
+
+[[package]]
+name = "sp-npos-elections"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "parity-scale-codec",
+ "serde",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-npos-elections-compact",
+ "sp-std",
+]
+
+[[package]]
+name = "sp-npos-elections-compact"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "proc-macro-crate 1.0.0",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "sp-offchain"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"sp-api",
"sp-core",
@@ -7535,7 +11659,11 @@
[[package]]
name = "sp-panic-handler"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"backtrace",
]
@@ -7543,16 +11671,26 @@
[[package]]
name = "sp-rpc"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "rustc-hash",
"serde",
"sp-core",
+ "tracing-core",
]
[[package]]
name = "sp-runtime"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"either",
"hash256-std-hasher",
@@ -7573,7 +11711,11 @@
[[package]]
name = "sp-runtime-interface"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"impl-trait-for-tuples 0.2.1",
"parity-scale-codec 2.1.1",
@@ -7590,7 +11732,11 @@
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"Inflector",
"proc-macro-crate 1.0.0",
@@ -7602,7 +11748,11 @@
[[package]]
name = "sp-sandbox"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-core",
@@ -7615,7 +11765,11 @@
[[package]]
name = "sp-serializer"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"serde",
"serde_json",
@@ -7624,7 +11778,11 @@
[[package]]
name = "sp-session"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-api",
@@ -7637,7 +11795,11 @@
[[package]]
name = "sp-staking"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"parity-scale-codec 2.1.1",
"sp-runtime",
@@ -7647,7 +11809,11 @@
[[package]]
name = "sp-state-machine"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"hash-db",
"log",
@@ -7662,6 +11828,7 @@
"sp-std",
"sp-trie",
"thiserror",
+ "tracing",
"trie-db",
"trie-root",
]
@@ -7669,12 +11836,20 @@
[[package]]
name = "sp-std"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
[[package]]
name = "sp-storage"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"impl-serde",
"parity-scale-codec 2.1.1",
@@ -7687,7 +11862,11 @@
[[package]]
name = "sp-tasks"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"log",
"sp-core",
@@ -7700,23 +11879,46 @@
[[package]]
name = "sp-timestamp"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"parity-scale-codec 2.1.1",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "futures-timer 3.0.2",
+ "log",
+ "parity-scale-codec",
+>>>>>>> origin/develop
"sp-api",
"sp-inherents",
"sp-runtime",
"sp-std",
+ "thiserror",
"wasm-timer",
]
[[package]]
name = "sp-tracing"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
+ "erased-serde",
"log",
+<<<<<<< HEAD
"parity-scale-codec 2.1.1",
+=======
+ "parity-scale-codec",
+ "parking_lot 0.10.2",
+ "serde",
+ "serde_json",
+ "slog",
+>>>>>>> origin/develop
"sp-std",
"tracing",
"tracing-core",
@@ -7726,10 +11928,17 @@
[[package]]
name = "sp-transaction-pool"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"derive_more",
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "derive_more",
+ "futures 0.3.14",
+>>>>>>> origin/develop
"log",
"parity-scale-codec 2.1.1",
"serde",
@@ -7742,7 +11951,11 @@
[[package]]
name = "sp-trie"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"hash-db",
"memory-db",
@@ -7756,9 +11969,15 @@
[[package]]
name = "sp-utils"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"futures 0.3.15",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"futures-core",
"futures-timer 3.0.2",
"lazy_static",
@@ -7768,19 +11987,40 @@
[[package]]
name = "sp-version"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"impl-serde",
"parity-scale-codec 2.1.1",
"serde",
"sp-runtime",
"sp-std",
+ "sp-version-proc-macro",
+]
+
+[[package]]
+name = "sp-version-proc-macro"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "parity-scale-codec",
+ "proc-macro-crate 1.0.0",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "sp-wasm-interface"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"impl-trait-for-tuples 0.2.1",
"parity-scale-codec 2.1.1",
@@ -7807,6 +12047,31 @@
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
+name = "static_init"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c"
+dependencies = [
+ "cfg_aliases",
+ "libc",
+ "parking_lot 0.11.1",
+ "static_init_macro",
+]
+
+[[package]]
+name = "static_init_macro"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf"
+dependencies = [
+ "cfg_aliases",
+ "memchr",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "statrs"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7827,6 +12092,18 @@
]
[[package]]
+name = "streamunordered"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e68576e37c8a37f5372796df15202190349dd80e7ed6a79544c0232213e90e35"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "slab",
+]
+
+[[package]]
name = "string"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7908,8 +12185,7 @@
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd540ba72520174c2c73ce96bf507eeba3cc8a481f58be92525b69110e1fa645"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
dependencies = [
"platforms",
]
@@ -7917,6 +12193,7 @@
[[package]]
name = "substrate-frame-rpc-system"
version = "3.0.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
dependencies = [
"frame-system-rpc-runtime-api",
@@ -7924,6 +12201,15 @@
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-system-rpc-runtime-api",
+ "futures 0.3.14",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+>>>>>>> origin/develop
"log",
"parity-scale-codec 2.1.1",
"sc-client-api",
@@ -7940,7 +12226,11 @@
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.9.0"
+<<<<<<< HEAD
source = "git+https://github.com/paritytech/substrate.git?branch=frontier#39b31316815ec6d709e7ad7c1a31c436d14c53e6"
+=======
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+>>>>>>> origin/develop
dependencies = [
"async-std",
"derive_more",
@@ -7952,7 +12242,72 @@
]
[[package]]
+name = "substrate-test-client"
+version = "2.0.1"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "async-trait",
+ "futures 0.1.31",
+ "futures 0.3.14",
+ "hash-db",
+ "hex",
+ "parity-scale-codec",
+ "sc-client-api",
+ "sc-client-db",
+ "sc-consensus",
+ "sc-executor",
+ "sc-light",
+ "sc-offchain",
+ "sc-service",
+ "serde",
+ "serde_json",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-keyring",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-state-machine",
+]
+
+[[package]]
+name = "substrate-test-utils"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "futures 0.3.14",
+ "substrate-test-utils-derive",
+ "tokio 0.2.25",
+]
+
+[[package]]
+name = "substrate-test-utils-derive"
+version = "0.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "proc-macro-crate 1.0.0",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "substrate-wasm-builder"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79091baab813855ddf65b191de9fe53e656b6b67c1e9bd23fdcbff8788164684"
+dependencies = [
+ "ansi_term 0.12.1",
+ "atty",
+ "build-helper",
+ "cargo_metadata",
+ "tempfile",
+ "toml",
+ "walkdir",
+ "wasm-gc-api",
+]
+
+[[package]]
+name = "substrate-wasm-builder"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93a3d51ad6abbc408b03ea962062bfcc959b438a318d7d4bedd181e1effd0610"
@@ -7981,9 +12336,15 @@
[[package]]
name = "syn"
+<<<<<<< HEAD
version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
+=======
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -8029,7 +12390,11 @@
"cfg-if 1.0.0",
"libc",
"rand 0.8.3",
+<<<<<<< HEAD
"redox_syscall 0.2.8",
+=======
+ "redox_syscall 0.2.6",
+>>>>>>> origin/develop
"remove_dir_all",
"winapi 0.3.9",
]
@@ -8091,6 +12456,19 @@
]
[[package]]
+name = "thrift"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b"
+dependencies = [
+ "byteorder",
+ "integer-encoding",
+ "log",
+ "ordered-float",
+ "threadpool",
+]
+
+[[package]]
name = "time"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8186,6 +12564,7 @@
"pin-project-lite 0.1.12",
"signal-hook-registry",
"slab",
+ "tokio-macros",
"winapi 0.3.9",
]
@@ -8254,6 +12633,17 @@
]
[[package]]
+name = "tokio-macros"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "tokio-named-pipes"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8423,9 +12813,15 @@
[[package]]
name = "tracing"
+<<<<<<< HEAD
version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
+=======
+version = "0.1.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
+>>>>>>> origin/develop
dependencies = [
"cfg-if 1.0.0",
"log",
@@ -8460,7 +12856,11 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
+<<<<<<< HEAD
"pin-project 1.0.7",
+=======
+ "pin-project 1.0.6",
+>>>>>>> origin/develop
"tracing",
]
@@ -8487,9 +12887,15 @@
[[package]]
name = "tracing-subscriber"
+<<<<<<< HEAD
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5"
+=======
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa"
+>>>>>>> origin/develop
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -8530,6 +12936,7 @@
]
[[package]]
+<<<<<<< HEAD
name = "triehash"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8537,15 +12944,79 @@
dependencies = [
"hash-db",
"rlp 0.5.0",
+=======
+name = "trust-dns-proto"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d57e219ba600dd96c2f6d82eb79645068e14edbc5c7e27514af40436b88150c"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.2",
+ "ipnet",
+ "lazy_static",
+ "log",
+ "rand 0.8.3",
+ "smallvec 1.6.1",
+ "thiserror",
+ "tinyvec",
+ "url 2.2.1",
]
[[package]]
+name = "trust-dns-resolver"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0437eea3a6da51acc1e946545ff53d5b8fb2611ff1c3bed58522dde100536ae"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "log",
+ "lru-cache",
+ "parking_lot 0.11.1",
+ "resolv-conf",
+ "smallvec 1.6.1",
+ "thiserror",
+ "trust-dns-proto",
+>>>>>>> origin/develop
+]
+
+[[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.9.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3#c94e0cdfe5556680dca1996004751eeb114755d7"
+dependencies = [
+ "frame-try-runtime",
+ "log",
+ "parity-scale-codec",
+ "remote-externalities",
+ "sc-cli",
+ "sc-client-api",
+ "sc-executor",
+ "sc-service",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-externalities",
+ "sp-runtime",
+ "sp-state-machine",
+ "structopt",
+]
+
+[[package]]
name = "twox-hash"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8696,12 +13167,21 @@
[[package]]
name = "url"
+<<<<<<< HEAD
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
dependencies = [
"form_urlencoded",
"idna 0.2.3",
+=======
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.2.2",
+>>>>>>> origin/develop
"matches",
"percent-encoding 2.1.0",
]
@@ -8718,9 +13198,21 @@
[[package]]
name = "vcpkg"
+<<<<<<< HEAD
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d"
+=======
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
+
+[[package]]
+name = "vec-arena"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34b2f665b594b07095e3ac3f718e13c2197143416fae4c5706cffb7b1af8d7f1"
+>>>>>>> origin/develop
[[package]]
name = "vec_map"
@@ -8792,9 +13284,15 @@
[[package]]
name = "wasm-bindgen"
+<<<<<<< HEAD
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd"
+=======
+version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
+>>>>>>> origin/develop
dependencies = [
"cfg-if 1.0.0",
"wasm-bindgen-macro",
@@ -8802,9 +13300,15 @@
[[package]]
name = "wasm-bindgen-backend"
+<<<<<<< HEAD
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900"
+=======
+version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
+>>>>>>> origin/develop
dependencies = [
"bumpalo",
"lazy_static",
@@ -8817,9 +13321,15 @@
[[package]]
name = "wasm-bindgen-futures"
+<<<<<<< HEAD
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1"
+=======
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"
+>>>>>>> origin/develop
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -8829,9 +13339,15 @@
[[package]]
name = "wasm-bindgen-macro"
+<<<<<<< HEAD
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4"
+=======
+version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
+>>>>>>> origin/develop
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -8839,9 +13355,15 @@
[[package]]
name = "wasm-bindgen-macro-support"
+<<<<<<< HEAD
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
+=======
+version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
+>>>>>>> origin/develop
dependencies = [
"proc-macro2",
"quote",
@@ -8852,9 +13374,15 @@
[[package]]
name = "wasm-bindgen-shared"
+<<<<<<< HEAD
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f"
+=======
+version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
+>>>>>>> origin/develop
[[package]]
name = "wasm-gc-api"
@@ -8873,7 +13401,11 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
dependencies = [
+<<<<<<< HEAD
"futures 0.3.15",
+=======
+ "futures 0.3.14",
+>>>>>>> origin/develop
"js-sys",
"parking_lot 0.11.1",
"pin-utils",
@@ -8893,7 +13425,7 @@
"num-rational 0.2.4",
"num-traits",
"parity-wasm 0.41.0",
- "wasmi-validation",
+ "wasmi-validation 0.3.0",
]
[[package]]
@@ -8906,16 +13438,25 @@
]
[[package]]
+name = "wasmi-validation"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb8e860796d8be48efef530b60eebf84e74a88bce107374fffb0da97d504b8"
+dependencies = [
+ "parity-wasm 0.42.2",
+]
+
+[[package]]
name = "wasmparser"
-version = "0.71.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1"
+checksum = "755a9a4afe3f6cccbbe6d7e965eef44cf260b001f93e547eba84255c1d0187d8"
[[package]]
name = "wasmtime"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7426055cb92bd9a1e9469b48154d8d6119cd8c498c8b70284e420342c05dc45d"
+checksum = "718cb52a9fdb7ab12471e9b9d051c9adfa6b5c504e0a1fea045e5eabc81eedd9"
dependencies = [
"anyhow",
"backtrace",
@@ -8925,6 +13466,7 @@
"indexmap",
"libc",
"log",
+ "paste",
"region",
"rustc-demangle",
"serde",
@@ -8933,6 +13475,7 @@
"wasmparser",
"wasmtime-cache",
"wasmtime-environ",
+ "wasmtime-fiber",
"wasmtime-jit",
"wasmtime-profiling",
"wasmtime-runtime",
@@ -8942,9 +13485,9 @@
[[package]]
name = "wasmtime-cache"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c01d9287e36921e46f5887a47007824ae5dbb9b7517a2d565660ab4471478709"
+checksum = "1f984df56c4adeba91540f9052db9f7a8b3b00cfaac1a023bee50a972f588b0c"
dependencies = [
"anyhow",
"base64 0.13.0",
@@ -8963,27 +13506,28 @@
[[package]]
name = "wasmtime-cranelift"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4134ed3a4316cd0de0e546c6004850afe472b0fa3fcdc2f2c15f8d449562d962"
+checksum = "2a05abbf94e03c2c8ee02254b1949320c4d45093de5d9d6ed4d9351d536075c9"
dependencies = [
"cranelift-codegen",
"cranelift-entity",
"cranelift-frontend",
"cranelift-wasm",
+ "wasmparser",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-debug"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e91fa931df6dd8af2b02606307674d3bad23f55473d5f4c809dddf7e4c4dc411"
+checksum = "382eecd6281c6c1d1f3c904c3c143e671fc1a9573820cbfa777fba45ce2eda9c"
dependencies = [
"anyhow",
"gimli 0.23.0",
"more-asserts",
- "object 0.22.0",
+ "object",
"target-lexicon",
"thiserror",
"wasmparser",
@@ -8992,9 +13536,9 @@
[[package]]
name = "wasmtime-environ"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1098871dc3120aaf8190d79153e470658bb79f63ee9ca31716711e123c28220"
+checksum = "81011b2b833663d7e0ce34639459a0e301e000fc7331e0298b3a27c78d0cec60"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
@@ -9011,10 +13555,21 @@
]
[[package]]
+name = "wasmtime-fiber"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d92da32e31af2e3d828f485f5f24651ed4d3b7f03a46ea6555eae6940d1402cd"
+dependencies = [
+ "cc",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
name = "wasmtime-jit"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "738bfcd1561ede8bb174215776fd7d9a95d5f0a47ca3deabe0282c55f9a89f68"
+checksum = "9b5f649623859a12d361fe4cc4793de44f7c3ff34c322c5714289787e89650bb"
dependencies = [
"addr2line 0.14.1",
"anyhow",
@@ -9027,7 +13582,7 @@
"gimli 0.23.0",
"log",
"more-asserts",
- "object 0.22.0",
+ "object",
"rayon",
"region",
"serde",
@@ -9045,13 +13600,13 @@
[[package]]
name = "wasmtime-obj"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e96d77f1801131c5e86d93e42a3cf8a35402107332c202c245c83f34888a906"
+checksum = "ef2e99cd9858f57fd062e9351e07881cedfc8597928385e02a48d9333b9e15a1"
dependencies = [
"anyhow",
"more-asserts",
- "object 0.22.0",
+ "object",
"target-lexicon",
"wasmtime-debug",
"wasmtime-environ",
@@ -9059,16 +13614,16 @@
[[package]]
name = "wasmtime-profiling"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60bb672c9d894776d7b9250dd9b4fe890f8760201ee4f53e5f2da772b6c4debb"
+checksum = "e46c0a590e49278ba7f79ef217af9db4ecc671b50042c185093e22d73524abb2"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
"gimli 0.23.0",
"lazy_static",
"libc",
- "object 0.22.0",
+ "object",
"scroll",
"serde",
"target-lexicon",
@@ -9078,9 +13633,9 @@
[[package]]
name = "wasmtime-runtime"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a978086740949eeedfefcee667b57a9e98d9a7fc0de382fcfa0da30369e3530d"
+checksum = "1438a09185fc7ca067caf1a80d7e5b398eefd4fb7630d94841448ade60feb3d0"
dependencies = [
"backtrace",
"cc",
@@ -9118,9 +13673,15 @@
[[package]]
name = "web-sys"
+<<<<<<< HEAD
version = "0.3.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582"
+=======
+version = "0.3.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
+>>>>>>> origin/develop
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -9155,7 +13716,96 @@
]
[[package]]
+name = "westend-runtime"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "beefy-primitives",
+ "bitvec",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-collective",
+ "pallet-democracy",
+ "pallet-election-provider-multi-phase",
+ "pallet-elections-phragmen",
+ "pallet-grandpa",
+ "pallet-identity",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-membership",
+ "pallet-mmr-primitives",
+ "pallet-multisig",
+ "pallet-nicks",
+ "pallet-offences",
+ "pallet-proxy",
+ "pallet-randomness-collective-flip",
+ "pallet-recovery",
+ "pallet-scheduler 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.3)",
+ "pallet-session",
+ "pallet-society",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-treasury",
+ "pallet-utility",
+ "pallet-vesting",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "rustc-hex",
+ "serde",
+ "serde_derive",
+ "smallvec 1.6.1",
+ "sp-api",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "static_assertions",
+ "substrate-wasm-builder 3.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
name = "which"
+<<<<<<< HEAD
+=======
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "which"
+>>>>>>> origin/develop
version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe"
@@ -9165,6 +13815,12 @@
]
[[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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9208,6 +13864,15 @@
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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9235,16 +13900,70 @@
]
[[package]]
+name = "xcm"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "derivative",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+]
+
+[[package]]
+name = "xcm-builder"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "xcm-executor"
+version = "0.9.3"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2"
+dependencies = [
+ "frame-support",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+]
+
+[[package]]
name = "yamux"
+<<<<<<< HEAD
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cc7bd8c983209ed5d527f44b01c41b7dc146fd960c61cf9e1d25399841dc271"
dependencies = [
"futures 0.3.15",
+=======
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107"
+dependencies = [
+ "futures 0.3.14",
+>>>>>>> origin/develop
"log",
"nohash-hasher",
"parking_lot 0.11.1",
- "rand 0.7.3",
+ "rand 0.8.3",
"static_assertions",
]
@@ -9277,18 +13996,18 @@
[[package]]
name = "zstd"
-version = "0.5.4+zstd.1.4.7"
+version = "0.6.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910"
+checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "2.0.6+zstd.1.4.7"
+version = "3.0.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e"
+checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c"
dependencies = [
"libc",
"zstd-sys",
@@ -9296,12 +14015,10 @@
[[package]]
name = "zstd-sys"
-version = "1.4.18+zstd.1.4.7"
+version = "1.4.20+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81"
+checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e"
dependencies = [
"cc",
- "glob",
- "itertools",
"libc",
]
Cargo.tomldiffbeforeafterboth--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,10 +2,12 @@
resolver = "2"
members = [
'node',
- 'pallets/nft',
+ 'pallets/*',
+ 'primitives',
'runtime',
'crates/evm-coder',
'crates/evm-coder-macros',
]
+resolver = "2"
[profile.release]
panic = 'unwind'
README.mddiffbeforeafterboth--- a/README.md
+++ b/README.md
@@ -133,6 +133,64 @@
Additional CLI usage options are available and may be shown by running `cargo run -- --help`.
+## Building and Running as Parachain locally
+
+Rust toolchain: nightly-2021-04-23
+Note: checkout this project and polkadot project (see below) in the sibling folders (both under the same folder)
+
+### Build relay
+
+```
+git clone https://github.com/paritytech/polkadot.git
+cd polkadot
+git checkout aa386760
+cargo build --release
+```
+
+### Build parachain
+
+Run in the root of this project:
+```
+cargo --build
+```
+
+### Run 4-node Relay
+
+1. Download `rococo-custom-4.json` chain spec here: https://substrate.dev/cumulus-workshop/shared/chainspecs/rococo-custom-4.json
+2. Use these instructions to launch 4 nodes: https://substrate.dev/cumulus-workshop/#/en/2-relay-chain/1-launch
+
+Example (Run in polkadot folder. Replace `12D3KooWNLAmKcyee3oqSgTMthaQVXaAcXeo8RrGCzMfMVA3B5on` with output from Alice node):
+```
+./target/release/polkadot --alice --validator --base-path ./cumulus_relay0 --chain rococo-custom-4.json --port 50555 --ws-port 9944
+./target/release/polkadot --bob --validator --base-path ./cumulus_relay1 --chain rococo-custom-4.json --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWNLAmKcyee3oqSgTMthaQVXaAcXeo8RrGCzMfMVA3B5on --port 50556 --ws-port 9945
+./target/release/polkadot --charlie --validator --base-path ./cumulus_relay1 --chain rococo-custom-4.json --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWNLAmKcyee3oqSgTMthaQVXaAcXeo8RrGCzMfMVA3B5on --port 50557 --ws-port 9946
+./target/release/polkadot --dave --validator --base-path ./cumulus_relay1 --chain rococo-custom-4.json --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWNLAmKcyee3oqSgTMthaQVXaAcXeo8RrGCzMfMVA3B5on --port 50558 --ws-port 9947
+
+```
+
+3. Export genesis state and runtime wasm from NFT parachain:
+
+Run from this project root:
+```
+./target/release/nft export-genesis-state --parachain-id 2000 > ./resources/para-2000-genesis
+./target/release/nft export-genesis-wasm > ./resources/para-2000-wasm
+```
+
+4. Run two parachain nodes:
+
+Replace `12D3KooWN1ah2bFQSysEFnwZqcmcVpDDR8UedXyo6xfzV1zDNMNg` with Alice or Bob relay ID
+
+Run from this project root:
+```
+./target/release/nft --alice --collator --force-authoring --base-path ./tmp/parachain-alice --parachain-id 2000 --port 40333 --ws-port 9844 -- --execution wasm --chain ../polkadot/rococo-custom-4.json --port 30343 --ws-port 9977
+./target/release/nft --bob --collator --force-authoring --parachain-id 2000 --base-path ./tmp/parachain/bob --port 40334 --ws-port 9845 -- --execution wasm --chain ../polkadot/rococo-custom-4.json --port 30344 --ws-port 9978 --bootnodes /ip4/127.0.0.1/tcp/50556/p2p/12D3KooWN1ah2bFQSysEFnwZqcmcVpDDR8UedXyo6xfzV1zDNMNg
+```
+
+4. Reserve parachain ID as described here: https://substrate.dev/cumulus-workshop/#/en/2-relay-chain/2-reserve
+
+5. Register parachain in relay as described here: https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register
+
+
## Run Integration Tests
1. Install all needed dependecies
@@ -145,7 +203,6 @@
```
yarn test
```
-
## Benchmarks
node/Cargo.tomldiffbeforeafterboth--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -1,20 +1,309 @@
-[build-dependencies]
-substrate-build-script-utils = '3.0.0'
+################################################################################
+# Build Dependencies
+
+[build-dependencies.substrate-build-script-utils]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+################################################################################
+# Substrate Dependecies
+
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies.frame-benchmarking]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-benchmarking-cli]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-transaction-payment-rpc]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.substrate-prometheus-endpoint]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-basic-authorship]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-chain-spec]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-cli]
+features = ['wasmtime']
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-client-api]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-consensus]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-consensus-aura]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-executor]
+features = ['wasmtime']
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-finality-grandpa]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-keystore]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-rpc]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-rpc-api]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-service]
+features = ['wasmtime']
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sc-telemetry]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-transaction-pool]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sc-tracing]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-block-builder]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-api]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-blockchain]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-consensus]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sp-consensus-aura]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sp-core]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-finality-grandpa]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-inherents]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-keystore]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sp-offchain]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-runtime]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-session]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-timestamp]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
-[[bin]]
-name = 'nft'
+[dependencies.sp-transaction-pool]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+[dependencies.sp-trie]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.substrate-frame-rpc-system]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-contracts]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-contracts-rpc]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+
+[dependencies.sc-network]
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.serde]
+features = ['derive']
+version = '1.0.119'
+
+[dependencies.serde_json]
+version = '1.0.41'
+
+
+################################################################################
+# Cumulus dependencies
+
+[dependencies.cumulus-client-consensus-aura]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-client-consensus-common]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-client-collator]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-client-cli]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-client-network]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-primitives-core]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-primitives-parachain-inherent]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+[dependencies.cumulus-client-service]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+
+
+################################################################################
+# Polkadot dependencies
+[dependencies.polkadot-primitives]
+git = "https://github.com/paritytech/polkadot"
+branch = 'release-v0.9.3'
+
+[dependencies.polkadot-service]
+git = "https://github.com/paritytech/polkadot"
+branch = 'release-v0.9.3'
+
+[dependencies.polkadot-cli]
+git = "https://github.com/paritytech/polkadot"
+branch = 'release-v0.9.3'
+
+[dependencies.polkadot-test-service]
+git = "https://github.com/paritytech/polkadot"
+branch = 'release-v0.9.3'
+
+[dependencies.polkadot-parachain]
+git = "https://github.com/paritytech/polkadot"
+branch = 'release-v0.9.3'
+
+
+################################################################################
+# Local dependencies
+
+[dependencies.nft-runtime]
+path = '../runtime'
+version = '3.0.0'
+
+[dependencies.nft-data-structs]
+path="../primitives"
+default-features = false
+
+################################################################################
+# Package
+
[package]
-authors = ['UseTech Professional <https://usetech.com/blockchain>']
+authors = ['Unique Network <support@uniquenetwork.io>']
build = 'build.rs'
description = 'Substrate node nft'
edition = '2018'
-homepage = 'https://usetech.com/blockchain'
+homepage = 'https://unique.network'
license = 'All Rights Reserved'
name = 'nft'
repository = 'https://github.com/usetech-llc/nft_private/'
version = '3.0.0'
+[[bin]]
+name = 'nft'
+
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
@@ -27,50 +316,13 @@
jsonrpc-core = '15.0.0'
jsonrpc-pubsub = "15.0.0"
-# Substrate dependencies
-pallet-nft = { path = '../pallets/nft', version = '3.0.0' }
-nft-runtime = { path = '../runtime', version = '3.0.0' }
-frame-benchmarking = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-benchmarking-cli = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-transaction-payment-rpc = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
fc-rpc-core = { version = "1.1.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
fc-consensus = { version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
fc-mapping-sync = { version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
fc-rpc = { version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
fc-db = { version = "1.0.0", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
fp-rpc = { version = "2.0.0", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-sc-basic-authorship = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-cli = { version = '0.9.0', features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-client-api = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-consensus = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-consensus-aura = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-executor = { version = '0.9.0', features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-finality-grandpa = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-
-sc-keystore = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-rpc = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-rpc-api = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-service = { version = '0.9.0', features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-transaction-pool = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-api = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-block-builder = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-blockchain = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-consensus = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-consensus-aura = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-core = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-finality-grandpa = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-inherents = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-runtime = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-timestamp = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-transaction-pool = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-substrate-frame-rpc-system = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sc-network = { version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-contracts-rpc = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
pallet-ethereum = { version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-sc-telemetry = { version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-
-serde = { version = "1.0.102", features = ["derive"] }
-serde_json = "1.0.41"
[features]
default = []
node/src/chain_spec.rsdiffbeforeafterboth--- a/node/src/chain_spec.rs
+++ b/node/src/chain_spec.rs
@@ -3,24 +3,19 @@
// file 'LICENSE', which is part of this source code package.
//
+use cumulus_primitives_core::ParaId;
use nft_runtime::*;
-use sp_core::{Pair, Public, sr25519};
-use nft_runtime::{
- AccountId, AuraConfig, BalancesConfig, EVMConfig, EthereumConfig, GenesisConfig, GrandpaConfig,
- SudoConfig, SystemConfig, WASM_BINARY, Signature
-};
-use sp_consensus_aura::sr25519::AuthorityId as AuraId;
-use sp_finality_grandpa::AuthorityId as GrandpaId;
-use sp_runtime::traits::{Verify, IdentifyAccount};
+use nft_data_structs::*;
+use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
use sc_service::ChainType;
-use serde_json::map::Map;
-use std::collections::BTreeMap;
+use sp_core::{sr25519, Pair, Public};
+use sp_runtime::traits::{IdentifyAccount, Verify};
-// Note this is the URL for the telemetry server
-//const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";
+use serde::{Deserialize, Serialize};
+use serde_json::map::Map;
/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.
-pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig>;
+pub type ChainSpec = sc_service::GenericChainSpec<nft_runtime::GenesisConfig, Extensions>;
/// Helper function to generate a crypto pair from seed
pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {
@@ -29,6 +24,23 @@
.public()
}
+/// The extensions for the [`ChainSpec`].
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]
+#[serde(deny_unknown_fields)]
+pub struct Extensions {
+ /// The relay chain of the Parachain.
+ pub relay_chain: String,
+ /// The id of the Parachain.
+ pub para_id: u32,
+}
+
+impl Extensions {
+ /// Try to get the extension from the given `ChainSpec`.
+ pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {
+ sc_chain_spec::get_extension(chain_spec.extensions())
+ }
+}
+
type AccountPublic = <Signature as Verify>::Signer;
/// Helper function to generate an account ID from seed
@@ -39,41 +51,31 @@
AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()
}
-/// Helper function to generate an authority key for Aura
-pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) {
- (get_from_seed::<AuraId>(s), get_from_seed::<GrandpaId>(s))
-}
-
-pub fn development_config() -> Result<ChainSpec, String> {
- let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?;
-
+pub fn development_config(id: ParaId) -> ChainSpec {
let mut properties = Map::new();
- properties.insert("tokenSymbol".into(), "UniqueTest".into());
+ properties.insert("tokenSymbol".into(), "testUNQ".into());
properties.insert("tokenDecimals".into(), 15.into());
properties.insert("ss58Format".into(), 42.into()); // Generic Substrate wildcard (SS58 checksum preimage)
- Ok(ChainSpec::from_genesis(
+ ChainSpec::from_genesis(
// Name
"Development",
// ID
"dev",
- ChainType::Development,
+ ChainType::Local,
move || testnet_genesis(
- wasm_binary,
- // Initial PoA authorities
- vec![
- authority_keys_from_seed("Alice"),
- ],
// Sudo account
get_account_id_from_seed::<sr25519::Public>("Alice"),
+ vec![
+ get_from_seed::<AuraId>("Alice"),
+ get_from_seed::<AuraId>("Bob"),
+ ],
// Pre-funded accounts
vec![
get_account_id_from_seed::<sr25519::Public>("Alice"),
get_account_id_from_seed::<sr25519::Public>("Bob"),
- get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
- get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
],
- true,
+ id,
),
// Bootnodes
vec![],
@@ -84,28 +86,27 @@
// Properties
Some(properties),
// Extensions
- None,
- ))
+ Extensions {
+ relay_chain: "rococo-dev".into(),
+ para_id: id.into(),
+ },
+ )
}
-pub fn local_testnet_config() -> Result<ChainSpec, String> {
- let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?;
-
- Ok(ChainSpec::from_genesis(
+pub fn local_testnet_config(id: ParaId) -> ChainSpec {
+ ChainSpec::from_genesis(
// Name
"Local Testnet",
// 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::<sr25519::Public>("Alice"),
+ vec![
+ get_from_seed::<AuraId>("Alice"),
+ get_from_seed::<AuraId>("Bob"),
+ ],
// Pre-funded accounts
vec![
get_account_id_from_seed::<sr25519::Public>("Alice"),
@@ -121,7 +122,7 @@
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
],
- true,
+ id,
),
// Bootnodes
vec![],
@@ -132,79 +133,91 @@
// Properties
None,
// Extensions
- None,
- ))
+ Extensions {
+ relay_chain: "rococo-local".into(),
+ para_id: id.into(),
+ },
+ )
}
fn testnet_genesis(
- wasm_binary: &[u8],
- initial_authorities: Vec<(AuraId, GrandpaId)>,
- root_key: AccountId,
- endowed_accounts: Vec<AccountId>,
- enable_println: bool,
+ root_key: AccountId,
+ initial_authorities: Vec<AuraId>,
+ endowed_accounts: Vec<AccountId>,
+ id: ParaId,
) -> GenesisConfig {
let vested_accounts = vec![
get_account_id_from_seed::<sr25519::Public>("Bob"),
];
- GenesisConfig {
- system: SystemConfig {
- code: wasm_binary.to_vec(),
+ GenesisConfig {
+ system: nft_runtime::SystemConfig {
+ code: nft_runtime::WASM_BINARY
+ .expect("WASM binary was not build, please build it!")
+ .to_vec(),
changes_trie_config: Default::default(),
},
- pallet_balances: BalancesConfig {
- balances: endowed_accounts
- .iter()
- .cloned()
- .map(|k| (k, 1 << 100))
- .collect(),
- },
- pallet_aura: AuraConfig {
- authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),
- },
- pallet_grandpa: GrandpaConfig {
- authorities: initial_authorities
- .iter()
- .map(|x| (x.1.clone(), 1))
- .collect(),
- },
+ pallet_balances: BalancesConfig {
+ balances: endowed_accounts
+ .iter()
+ .cloned()
+ .map(|k| (k, 1 << 70))
+ .collect(),
+ },
pallet_treasury: Default::default(),
pallet_sudo: SudoConfig { key: root_key },
pallet_vesting: VestingConfig {
- vesting: vested_accounts
- .iter()
- .cloned()
- .map(|k| (k, 1000, 100, 1 << 98))
- .collect(),
- },
- pallet_nft: NftConfig {
- collection_id: vec![],
- nft_item_id: vec![],
- fungible_item_id: vec![],
- refungible_item_id: vec![],
- chain_limit: ChainLimits {
- collection_numbers_limit: 100000,
- account_token_ownership_limit: 1000000,
- collections_admins_limit: 5,
- custom_data_limit: 2048,
- nft_sponsor_transfer_timeout: 15,
- fungible_sponsor_transfer_timeout: 15,
+ vesting: vested_accounts
+ .iter()
+ .cloned()
+ .map(|k| (k, 1000, 100, 1 << 98))
+ .collect(),
+ },
+ pallet_nft: NftConfig {
+ collection_id: vec![(
+ 1,
+ Collection {
+ owner: get_account_id_from_seed::<sr25519::Public>("Alice"),
+ mode: CollectionMode::NFT,
+ access: AccessMode::Normal,
+ decimal_points: 0,
+ name: vec![],
+ description: vec![],
+ token_prefix: vec![],
+ mint_mode: false,
+ offchain_schema: vec![],
+ schema_version: SchemaVersion::default(),
+ sponsorship: SponsorshipState::Confirmed(get_account_id_from_seed::<sr25519::Public>("Alice")),
+ const_on_chain_schema: vec![],
+ variable_on_chain_schema: vec![],
+ limits: CollectionLimits::default()
+ },
+ )],
+ nft_item_id: vec![],
+ fungible_item_id: vec![],
+ refungible_item_id: vec![],
+ chain_limit: ChainLimits {
+ collection_numbers_limit: 100000,
+ account_token_ownership_limit: 1000000,
+ collections_admins_limit: 5,
+ custom_data_limit: 2048,
+ nft_sponsor_transfer_timeout: 15,
+ fungible_sponsor_transfer_timeout: 15,
refungible_sponsor_transfer_timeout: 15,
offchain_schema_limit: 1024,
variable_on_chain_schema_limit: 1024,
const_on_chain_schema_limit: 1024,
- },
- },
- pallet_contracts: ContractsConfig {
- current_schedule: ContractsSchedule {
- enable_println,
- ..Default::default()
- },
+ },
+ },
+ parachain_info: nft_runtime::ParachainInfoConfig { parachain_id: id },
+ pallet_aura: nft_runtime::AuraConfig {
+ authorities: initial_authorities,
},
+ cumulus_pallet_aura_ext: Default::default(),
pallet_evm: EVMConfig {
accounts: BTreeMap::new(),
},
pallet_ethereum: EthereumConfig {},
- }
+ }
}
node/src/cli.rsdiffbeforeafterboth--- a/node/src/cli.rs
+++ b/node/src/cli.rs
@@ -1,19 +1,20 @@
+use crate::chain_spec;
+use cumulus_client_cli;
+use sc_cli;
+use std::path::PathBuf;
use structopt::StructOpt;
-use sc_cli::RunCmd;
+/// Sub-commands supported by the collator.
#[derive(Debug, StructOpt)]
-pub struct Cli {
- #[structopt(subcommand)]
- pub subcommand: Option<Subcommand>,
+pub enum Subcommand {
+ /// Export the genesis state of the parachain.
+ #[structopt(name = "export-genesis-state")]
+ ExportGenesisState(ExportGenesisStateCommand),
- #[structopt(flatten)]
- pub run: RunCmd,
-}
+ /// Export the genesis wasm of the parachain.
+ #[structopt(name = "export-genesis-wasm")]
+ ExportGenesisWasm(ExportGenesisWasmCommand),
-#[derive(Debug, StructOpt)]
-pub enum Subcommand {
- /// Key management cli utilities
- Key(sc_cli::KeySubcommand),
/// Build a chain specification.
BuildSpec(sc_cli::BuildSpecCmd),
@@ -30,7 +31,7 @@
ImportBlocks(sc_cli::ImportBlocksCmd),
/// Remove the whole chain.
- PurgeChain(sc_cli::PurgeChainCmd),
+ PurgeChain(cumulus_client_cli::PurgeChainCmd),
/// Revert the chain to a previous state.
Revert(sc_cli::RevertCmd),
@@ -39,3 +40,91 @@
#[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
}
+
+/// Command for exporting the genesis state of the parachain
+#[derive(Debug, StructOpt)]
+pub struct ExportGenesisStateCommand {
+ /// Output file name or stdout if unspecified.
+ #[structopt(parse(from_os_str))]
+ pub output: Option<PathBuf>,
+
+ /// Id of the parachain this state is for.
+ ///
+ /// Default: 100
+ #[structopt(long, conflicts_with = "chain")]
+ pub parachain_id: Option<u32>,
+
+ /// Write output in binary. Default is to write in hex.
+ #[structopt(short, long)]
+ pub raw: bool,
+
+ /// The name of the chain for that the genesis state should be exported.
+ #[structopt(long, conflicts_with = "parachain-id")]
+ pub chain: Option<String>,
+}
+
+/// Command for exporting the genesis wasm file.
+#[derive(Debug, StructOpt)]
+pub struct ExportGenesisWasmCommand {
+ /// Output file name or stdout if unspecified.
+ #[structopt(parse(from_os_str))]
+ pub output: Option<PathBuf>,
+
+ /// Write output in binary. Default is to write in hex.
+ #[structopt(short, long)]
+ pub raw: bool,
+
+ /// The name of the chain for that the genesis wasm file should be exported.
+ #[structopt(long)]
+ pub chain: Option<String>,
+}
+
+#[derive(Debug, StructOpt)]
+#[structopt(settings = &[
+ structopt::clap::AppSettings::GlobalVersion,
+ structopt::clap::AppSettings::ArgsNegateSubcommands,
+ structopt::clap::AppSettings::SubcommandsNegateReqs,
+])]
+pub struct Cli {
+ #[structopt(subcommand)]
+ pub subcommand: Option<Subcommand>,
+
+ #[structopt(flatten)]
+ pub run: cumulus_client_cli::RunCmd,
+
+ /// Relaychain arguments
+ #[structopt(raw = true)]
+ pub relaychain_args: Vec<String>,
+}
+
+#[derive(Debug)]
+pub struct RelayChainCli {
+ /// The actual relay chain cli object.
+ pub base: polkadot_cli::RunCmd,
+
+ /// Optional chain id that should be passed to the relay chain.
+ pub chain_id: Option<String>,
+
+ /// The base path that should be used by the relay chain.
+ pub base_path: Option<PathBuf>,
+}
+
+impl RelayChainCli {
+ /// Parse the relay chain CLI parameters using the para chain `Configuration`.
+ pub fn new<'a>(
+ para_config: &sc_service::Configuration,
+ relay_chain_args: impl Iterator<Item = &'a String>,
+ ) -> Self {
+ let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec);
+ let chain_id = extension.map(|e| e.relay_chain.clone());
+ let base_path = para_config
+ .base_path
+ .as_ref()
+ .map(|x| x.path().join("polkadot"));
+ Self {
+ base_path,
+ chain_id,
+ base: polkadot_cli::RunCmd::from_iter(relay_chain_args),
+ }
+ }
+}
node/src/command.rsdiffbeforeafterboth--- a/node/src/command.rs
+++ b/node/src/command.rs
@@ -15,15 +15,44 @@
// 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 nft_runtime::Block;
+use crate::{
+ chain_spec,
+ cli::{Cli, RelayChainCli, Subcommand},
+ service::{new_partial, ParachainRuntimeExecutor}
+};
+use codec::Encode;
+use cumulus_primitives_core::ParaId;
+use cumulus_client_service::genesis::generate_genesis_block;
+use log::info;
+use nft_runtime::{RuntimeApi, Block};
+use polkadot_parachain::primitives::AccountIdConversion;
+use sc_cli::{
+ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams,
+ NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli,
+};
+use sc_service::{
+ config::{BasePath, PrometheusConfig}
+};
+use sp_core::hexdisplay::HexDisplay;
+use sp_runtime::traits::Block as BlockT;
+use std::{io::Write, net::SocketAddr};
+
+fn load_spec(
+ id: &str,
+ para_id: ParaId,
+) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
+ Ok(match id {
+ "dev" => Box::new(chain_spec::development_config(para_id)),
+ "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)),
+ path => Box::new(chain_spec::ChainSpec::from_json_file(
+ std::path::PathBuf::from(path),
+ )?),
+ })
+}
impl SubstrateCli for Cli {
fn impl_name() -> String {
- "Unique Node".into()
+ "Parachain Collator Template".into()
}
fn impl_version() -> String {
@@ -31,7 +60,13 @@
}
fn description() -> String {
- env!("CARGO_PKG_DESCRIPTION").into()
+ format!(
+ "Parachain Collator Template\n\nThe command-line arguments provided first will be \
+ passed to the parachain node, while the arguments provided after -- will be passed \
+ to the relaychain node.\n\n\
+ {} [parachain-args] -- [relaychain-args]",
+ Self::executable_name()
+ )
}
fn author() -> String {
@@ -39,21 +74,15 @@
}
fn support_url() -> String {
- "support.anonymous.an".into()
+ "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into()
}
fn copyright_start_year() -> i32 {
2017
}
- fn load_spec(&self, id: &str) -> Result<Box<dyn sc_service::ChainSpec>, String> {
- 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),
- )?),
- })
+ fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
+ load_spec(id, self.run.parachain_id.unwrap_or(200).into())
}
fn native_runtime_version(_: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {
@@ -61,78 +90,359 @@
}
}
-/// Parse and run command line arguments
-pub fn run() -> sc_cli::Result<()> {
+impl SubstrateCli for RelayChainCli {
+ fn impl_name() -> String {
+ "Parachain Collator Template".into()
+ }
+
+ fn impl_version() -> String {
+ env!("SUBSTRATE_CLI_IMPL_VERSION").into()
+ }
+
+ fn description() -> String {
+ "Parachain Collator Template\n\nThe command-line arguments provided first will be \
+ passed to the parachain node, while the arguments provided after -- will be passed \
+ to the relaychain node.\n\n\
+ parachain-collator [parachain-args] -- [relaychain-args]"
+ .into()
+ }
+
+ fn author() -> String {
+ env!("CARGO_PKG_AUTHORS").into()
+ }
+
+ fn support_url() -> String {
+ "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into()
+ }
+
+ fn copyright_start_year() -> i32 {
+ 2017
+ }
+
+ fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
+ polkadot_cli::Cli::from_iter([RelayChainCli::executable_name().to_string()].iter())
+ .load_spec(id)
+ }
+
+ fn native_runtime_version(chain_spec: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {
+ polkadot_cli::Cli::native_runtime_version(chain_spec)
+ }
+}
+
+fn extract_genesis_wasm(chain_spec: &Box<dyn sc_service::ChainSpec>) -> Result<Vec<u8>> {
+ let mut storage = chain_spec.build_storage()?;
+
+ storage
+ .top
+ .remove(sp_core::storage::well_known_keys::CODE)
+ .ok_or_else(|| "Could not find wasm file in genesis state!".into())
+}
+
+macro_rules! construct_async_run {
+ (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{
+ let runner = $cli.create_runner($cmd)?;
+ runner.async_run(|$config| {
+ let $components = new_partial::<
+ RuntimeApi,
+ ParachainRuntimeExecutor,
+ _
+ >(
+ &$config,
+ crate::service::parachain_build_import_queue,
+ )?;
+ let task_manager = $components.task_manager;
+ { $( $code )* }.map(|v| (v, task_manager))
+ })
+ }}
+}
+
+/// Parse command line arguments into service configuration.
+pub fn run() -> 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))
- },
+ }
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, &cli)?;
- Ok((cmd.run(client, import_queue), task_manager))
+ construct_async_run!(|components, cli, cmd, config| {
+ Ok(cmd.run(components.client, components.import_queue))
})
- },
+ }
Some(Subcommand::ExportBlocks(cmd)) => {
- let runner = cli.create_runner(cmd)?;
- runner.async_run(|config| {
- let PartialComponents { client, task_manager, ..}
- = service::new_partial(&config, &cli)?;
- Ok((cmd.run(client, config.database), task_manager))
+ construct_async_run!(|components, cli, cmd, config| {
+ Ok(cmd.run(components.client, config.database))
})
- },
+ }
Some(Subcommand::ExportState(cmd)) => {
- let runner = cli.create_runner(cmd)?;
- runner.async_run(|config| {
- let PartialComponents { client, task_manager, ..}
- = service::new_partial(&config, &cli)?;
- Ok((cmd.run(client, config.chain_spec), task_manager))
+ construct_async_run!(|components, cli, cmd, config| {
+ Ok(cmd.run(components.client, config.chain_spec))
})
- },
+ }
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, &cli)?;
- Ok((cmd.run(client, import_queue), task_manager))
+ construct_async_run!(|components, cli, cmd, config| {
+ Ok(cmd.run(components.client, components.import_queue))
})
- },
+ }
Some(Subcommand::PurgeChain(cmd)) => {
- let runner = cli.create_runner(cmd)?;
- runner.sync_run(|config| cmd.run(config.database))
- },
- Some(Subcommand::Revert(cmd)) => {
let runner = cli.create_runner(cmd)?;
- runner.async_run(|config| {
- let PartialComponents { client, task_manager, backend, ..}
- = service::new_partial(&config, &cli)?;
- Ok((cmd.run(client, backend), task_manager))
+
+ runner.sync_run(|config| {
+ let polkadot_cli = RelayChainCli::new(
+ &config,
+ [RelayChainCli::executable_name().to_string()]
+ .iter()
+ .chain(cli.relaychain_args.iter()),
+ );
+
+ let polkadot_config = SubstrateCli::create_configuration(
+ &polkadot_cli,
+ &polkadot_cli,
+ config.task_executor.clone(),
+ )
+ .map_err(|err| format!("Relay chain argument error: {}", err))?;
+
+ cmd.run(config, polkadot_config)
})
+ }
+ Some(Subcommand::Revert(cmd)) => construct_async_run!(|components, cli, cmd, config| {
+ Ok(cmd.run(components.client, components.backend))
+ }),
+ Some(Subcommand::ExportGenesisState(params)) => {
+ let mut builder = sc_cli::LoggerBuilder::new("");
+ builder.with_profiling(sc_tracing::TracingReceiver::Log, "");
+ let _ = builder.init();
+
+ let block: Block = generate_genesis_block(&load_spec(
+ ¶ms.chain.clone().unwrap_or_default(),
+ params.parachain_id.unwrap_or(200).into(),
+ )?)?;
+ let raw_header = block.header().encode();
+ let output_buf = if params.raw {
+ raw_header
+ } else {
+ format!("0x{:?}", HexDisplay::from(&block.header().encode())).into_bytes()
+ };
+
+ if let Some(output) = ¶ms.output {
+ std::fs::write(output, output_buf)?;
+ } else {
+ std::io::stdout().write_all(&output_buf)?;
+ }
+
+ Ok(())
+ }
+ Some(Subcommand::ExportGenesisWasm(params)) => {
+ let mut builder = sc_cli::LoggerBuilder::new("");
+ builder.with_profiling(sc_tracing::TracingReceiver::Log, "");
+ let _ = builder.init();
+
+ let raw_wasm_blob =
+ extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?;
+ let output_buf = if params.raw {
+ raw_wasm_blob
+ } else {
+ format!("0x{:?}", HexDisplay::from(&raw_wasm_blob)).into_bytes()
+ };
+
+ if let Some(output) = ¶ms.output {
+ std::fs::write(output, output_buf)?;
+ } else {
+ std::io::stdout().write_all(&output_buf)?;
+ }
+
+ Ok(())
},
Some(Subcommand::Benchmark(cmd)) => {
if cfg!(feature = "runtime-benchmarks") {
let runner = cli.create_runner(cmd)?;
- runner.sync_run(|config| cmd.run::<Block, service::Executor>(config))
+ runner.sync_run(|config| cmd.run::<Block, ParachainRuntimeExecutor>(config))
} else {
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)?;
+ let runner = cli.create_runner(&cli.run.normalize())?;
+
runner.run_node_until_exit(|config| async move {
- match config.role {
- Role::Light => service::new_light(config),
- _ => service::new_full(config, &cli),
- }.map_err(sc_cli::Error::Service)
+ // TODO
+ let key = sp_core::Pair::generate().0;
+
+ let para_id =
+ chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id);
+
+ let polkadot_cli = RelayChainCli::new(
+ &config,
+ [RelayChainCli::executable_name().to_string()]
+ .iter()
+ .chain(cli.relaychain_args.iter()),
+ );
+
+ let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(200));
+
+ let parachain_account =
+ AccountIdConversion::<polkadot_primitives::v0::AccountId>::into_account(&id);
+
+ let block: Block =
+ generate_genesis_block(&config.chain_spec).map_err(|e| format!("{:?}", e))?;
+ let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode()));
+
+ let task_executor = config.task_executor.clone();
+ let polkadot_config = SubstrateCli::create_configuration(
+ &polkadot_cli,
+ &polkadot_cli,
+ task_executor,
+ )
+ .map_err(|err| format!("Relay chain argument error: {}", err))?;
+
+ info!("Parachain id: {:?}", id);
+ info!("Parachain Account: {}", parachain_account);
+ info!("Parachain genesis state: {}", genesis_state);
+ info!(
+ "Is collating: {}",
+ if config.role.is_authority() {
+ "yes"
+ } else {
+ "no"
+ }
+ );
+
+ crate::service::start_node(config, key, polkadot_config, id)
+ .await
+ .map(|r| r.0)
+ .map_err(Into::into)
})
}
}
}
+
+impl DefaultConfigurationValues for RelayChainCli {
+ fn p2p_listen_port() -> u16 {
+ 30334
+ }
+
+ fn rpc_ws_listen_port() -> u16 {
+ 9945
+ }
+
+ fn rpc_http_listen_port() -> u16 {
+ 9934
+ }
+
+ fn prometheus_listen_port() -> u16 {
+ 9616
+ }
+}
+
+impl CliConfiguration<Self> for RelayChainCli {
+ fn shared_params(&self) -> &SharedParams {
+ self.base.base.shared_params()
+ }
+
+ fn import_params(&self) -> Option<&ImportParams> {
+ self.base.base.import_params()
+ }
+
+ fn network_params(&self) -> Option<&NetworkParams> {
+ self.base.base.network_params()
+ }
+
+ fn keystore_params(&self) -> Option<&KeystoreParams> {
+ self.base.base.keystore_params()
+ }
+
+ fn base_path(&self) -> Result<Option<BasePath>> {
+ Ok(self
+ .shared_params()
+ .base_path()
+ .or_else(|| self.base_path.clone().map(Into::into)))
+ }
+
+ fn rpc_http(&self, default_listen_port: u16) -> Result<Option<SocketAddr>> {
+ self.base.base.rpc_http(default_listen_port)
+ }
+
+ fn rpc_ipc(&self) -> Result<Option<String>> {
+ self.base.base.rpc_ipc()
+ }
+
+ fn rpc_ws(&self, default_listen_port: u16) -> Result<Option<SocketAddr>> {
+ self.base.base.rpc_ws(default_listen_port)
+ }
+
+ fn prometheus_config(&self, default_listen_port: u16) -> Result<Option<PrometheusConfig>> {
+ self.base.base.prometheus_config(default_listen_port)
+ }
+
+ fn init<C: SubstrateCli>(&self) -> Result<()> {
+ unreachable!("PolkadotCli is never initialized; qed");
+ }
+
+ fn chain_id(&self, is_dev: bool) -> Result<String> {
+ let chain_id = self.base.base.chain_id(is_dev)?;
+
+ Ok(if chain_id.is_empty() {
+ self.chain_id.clone().unwrap_or_default()
+ } else {
+ chain_id
+ })
+ }
+
+ fn role(&self, is_dev: bool) -> Result<sc_service::Role> {
+ self.base.base.role(is_dev)
+ }
+
+ fn transaction_pool(&self) -> Result<sc_service::config::TransactionPoolOptions> {
+ self.base.base.transaction_pool()
+ }
+
+ fn state_cache_child_ratio(&self) -> Result<Option<usize>> {
+ self.base.base.state_cache_child_ratio()
+ }
+
+ fn rpc_methods(&self) -> Result<sc_service::config::RpcMethods> {
+ self.base.base.rpc_methods()
+ }
+
+ fn rpc_ws_max_connections(&self) -> Result<Option<usize>> {
+ self.base.base.rpc_ws_max_connections()
+ }
+
+ fn rpc_cors(&self, is_dev: bool) -> Result<Option<Vec<String>>> {
+ self.base.base.rpc_cors(is_dev)
+ }
+
+ fn telemetry_external_transport(&self) -> Result<Option<sc_service::config::ExtTransport>> {
+ self.base.base.telemetry_external_transport()
+ }
+
+ fn default_heap_pages(&self) -> Result<Option<u64>> {
+ self.base.base.default_heap_pages()
+ }
+
+ fn force_authoring(&self) -> Result<bool> {
+ self.base.base.force_authoring()
+ }
+
+ fn disable_grandpa(&self) -> Result<bool> {
+ self.base.base.disable_grandpa()
+ }
+
+ fn max_runtime_instances(&self) -> Result<Option<usize>> {
+ self.base.base.max_runtime_instances()
+ }
+
+ fn announce_block(&self) -> Result<bool> {
+ self.base.base.announce_block()
+ }
+
+ fn telemetry_endpoints(
+ &self,
+ chain_spec: &Box<dyn ChainSpec>,
+ ) -> Result<Option<sc_telemetry::TelemetryEndpoints>> {
+ self.base.base.telemetry_endpoints(chain_spec)
+ }
+}
\ No newline at end of file
node/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/node/src/lib.rs
@@ -0,0 +1,2 @@
+pub mod chain_spec;
+pub mod service;
node/src/main.rsdiffbeforeafterboth--- a/node/src/main.rs
+++ b/node/src/main.rs
@@ -3,15 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-//! Substrate Node Template CLI library.
-#![warn(missing_docs)]
-
mod chain_spec;
#[macro_use]
mod service;
mod cli;
mod command;
-mod rpc;
fn main() -> sc_cli::Result<()> {
command::run()
node/src/rpc.rsdiffbeforeafterboth--- a/node/src/rpc.rs
+++ /dev/null
@@ -1,249 +0,0 @@
-//! A collection of node-specific RPC methods.
-//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer
-//! used by Substrate nodes. This file extends those RPC definitions with
-//! capabilities that are specific to this project's runtime configuration.
-
-use std::sync::Arc;
-use core::marker::PhantomData;
-
-use std::collections::BTreeMap;
-use fc_rpc::RuntimeApiStorageOverride;
-use fc_rpc::OverrideHandle;
-use fc_rpc_core::types::{PendingTransactions, FilterPool};
-use nft_runtime::{Hash, AccountId, Index, opaque::Block, BlockNumber, Balance, NftApi};
-use sp_api::ProvideRuntimeApi;
-use sp_blockchain::{Error as BlockChainError, HeaderMetadata, HeaderBackend};
-use sc_client_api::{
- backend::{StorageProvider, Backend, StateBackend, AuxStore},
- client::BlockchainEvents
-};
-use sc_rpc::SubscriptionTaskExecutor;
-use sp_runtime::traits::BlakeTwo256;
-use sp_block_builder::BlockBuilder;
-use sc_rpc_api::DenyUnsafe;
-use sp_transaction_pool::TransactionPool;
-use sc_network::NetworkService;
-use jsonrpc_pubsub::manager::SubscriptionManager;
-use pallet_ethereum::EthereumStorageSchema;
-use fc_rpc::{StorageOverride, SchemaV1Override};
-
-/// Light client extra dependencies.
-pub struct LightDeps<C, F, P> {
- /// The client instance to use.
- pub client: Arc<C>,
- /// Transaction pool instance.
- pub pool: Arc<P>,
- /// Remote access to the blockchain (async).
- pub remote_blockchain: Arc<dyn sc_client_api::light::RemoteBlockchain<Block>>,
- /// Fetcher instance.
- pub fetcher: Arc<F>,
-}
-
-/// Full client dependencies.
-pub struct FullDeps<C, P> {
- /// The client instance to use.
- pub client: Arc<C>,
- /// Transaction pool instance.
- pub pool: Arc<P>,
- /// Whether to deny unsafe calls
- pub deny_unsafe: DenyUnsafe,
- /// The Node authority flag
- pub is_authority: bool,
- /// Whether to enable dev signer
- pub enable_dev_signer: bool,
- /// Network service
- pub network: Arc<NetworkService<Block, Hash>>,
- /// Ethereum pending transactions.
- pub pending_transactions: PendingTransactions,
- /// EthFilterApi pool.
- pub filter_pool: Option<FilterPool>,
- /// Backend.
- pub backend: Arc<fc_db::Backend<Block>>,
- /// Maximum number of logs in a query.
- pub max_past_logs: u32,
-}
-
-struct AccountCodes<C, B> {
- client: Arc<C>,
- _marker: PhantomData<B>,
-}
-
-impl<C, Block> AccountCodes<C, Block>
-where
- Block: sp_api::BlockT,
- C: ProvideRuntimeApi<Block>,
-{
- fn new(client: Arc<C>) -> Self {
- Self {
- client,
- _marker: PhantomData,
- }
- }
-}
-
-impl<C, Block> fc_rpc::AccountCodeProvider<Block> for AccountCodes<C, Block>
-where
- Block: sp_api::BlockT,
- C: ProvideRuntimeApi<Block>,
- C::Api: pallet_nft::NftApi<Block>,
-{
- fn code(&self, block: &sp_api::BlockId<Block>, account: sp_core::H160) -> Option<Vec<u8>> {
- self.client.runtime_api().eth_contract_code(block, account).ok().flatten()
- }
-}
-
-/// Instantiate all full RPC extensions.
-pub fn create_full<C, P, BE>(
- deps: FullDeps<C, P>,
- subscription_task_executor: SubscriptionTaskExecutor
-) -> jsonrpc_core::IoHandler<sc_rpc::Metadata> where
- BE: Backend<Block> + 'static,
- BE::State: StateBackend<BlakeTwo256>,
- C: ProvideRuntimeApi<Block> + StorageProvider<Block, BE> + AuxStore,
- C: BlockchainEvents<Block>,
- C: HeaderBackend<Block> + HeaderMetadata<Block, Error=BlockChainError>,
- C: Send + Sync + 'static,
- C::Api: substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>,
- C::Api: BlockBuilder<Block>,
- C::Api: pallet_contracts_rpc::ContractsRuntimeApi<Block, AccountId, Balance, BlockNumber>,
- C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi<Block, Balance>,
- C::Api: fp_rpc::EthereumRuntimeRPCApi<Block>,
- C::Api: pallet_nft::NftApi<Block>,
- P: TransactionPool<Block=Block> + 'static,
-{
- use substrate_frame_rpc_system::{FullSystem, SystemApi};
- use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi};
- use fc_rpc::{
- EthApi, EthApiServer, EthFilterApi, EthFilterApiServer, NetApi, NetApiServer,
- EthPubSubApi, EthPubSubApiServer, Web3Api, Web3ApiServer, EthDevSigner, EthSigner,
- HexEncodedIdProvider,
- };
-
- let mut io = jsonrpc_core::IoHandler::default();
- let FullDeps {
- client,
- pool,
- deny_unsafe,
- is_authority,
- network,
- pending_transactions,
- filter_pool,
- backend,
- enable_dev_signer,
- max_past_logs,
- } = deps;
-
- io.extend_with(
- SystemApi::to_delegate(FullSystem::new(client.clone(), pool.clone(), deny_unsafe))
- );
-
- io.extend_with(
- TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone()))
- );
-
- io.extend_with(
- pallet_contracts_rpc::ContractsApi::to_delegate(pallet_contracts_rpc::Contracts::new(client.clone()))
- );
-
- let mut signers = Vec::new();
- if enable_dev_signer {
- signers.push(Box::new(EthDevSigner::new()) as Box<dyn EthSigner>);
- }
- let mut overrides_map = BTreeMap::new();
- overrides_map.insert(
- EthereumStorageSchema::V1,
- Box::new(SchemaV1Override::new_with_code_provider(
- client.clone(),
- Arc::new(AccountCodes::<C, Block>::new(client.clone()))
- )) as Box<dyn StorageOverride<_> + Send + Sync>
- );
-
- let overrides = Arc::new(OverrideHandle {
- schemas: overrides_map,
- fallback: Box::new(RuntimeApiStorageOverride::new(client.clone())),
- });
-
- io.extend_with(
- EthApiServer::to_delegate(EthApi::new(
- client.clone(),
- pool.clone(),
- nft_runtime::TransactionConverter,
- network.clone(),
- pending_transactions.clone(),
- signers,
- overrides.clone(),
- backend,
- is_authority,
- max_past_logs,
- ))
- );
-
- if let Some(filter_pool) = filter_pool {
- io.extend_with(
- EthFilterApiServer::to_delegate(EthFilterApi::new(
- client.clone(),
- filter_pool.clone(),
- 500 as usize, // max stored filters
- overrides.clone(),
- max_past_logs,
- ))
- );
- }
-
- io.extend_with(
- NetApiServer::to_delegate(NetApi::new(
- client.clone(),
- network.clone(),
- true,
- ))
- );
-
- io.extend_with(
- Web3ApiServer::to_delegate(Web3Api::new(
- client.clone(),
- ))
- );
-
- io.extend_with(
- EthPubSubApiServer::to_delegate(EthPubSubApi::new(
- pool.clone(),
- client.clone(),
- network.clone(),
- SubscriptionManager::<HexEncodedIdProvider>::with_id_provider(
- HexEncodedIdProvider::default(),
- Arc::new(subscription_task_executor)
- ),
- overrides,
- ))
- );
-
- io
-}
-
-/// Instantiate all Light RPC extensions.
-pub fn create_light<C, P, M, F>(
- deps: LightDeps<C, F, P>,
-) -> jsonrpc_core::IoHandler<M> where
- C: sp_blockchain::HeaderBackend<Block>,
- C: Send + Sync + 'static,
- F: sc_client_api::light::Fetcher<Block> + 'static,
- P: TransactionPool + 'static,
- M: jsonrpc_core::Metadata + Default,
-{
- use substrate_frame_rpc_system::{LightSystem, SystemApi};
-
- let LightDeps {
- client,
- pool,
- remote_blockchain,
- fetcher
- } = deps;
- let mut io = jsonrpc_core::IoHandler::default();
- io.extend_with(
- SystemApi::<Hash, AccountId, Index>::to_delegate(
- LightSystem::new(client, remote_blockchain, fetcher, pool)
- )
- );
-
- io
-}
node/src/service.rsdiffbeforeafterboth--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -5,106 +5,106 @@
// file 'LICENSE', which is part of this source code package.
//
-use std::{sync::{Arc, Mutex}, cell::RefCell, time::Duration, collections::{HashMap, BTreeMap}};
-use fc_rpc::EthTask;
-use fc_rpc_core::types::{FilterPool, PendingTransactions};
-use sc_client_api::{ExecutorProvider, RemoteBackend, BlockchainEvents};
-use fc_consensus::FrontierBlockImport;
-use fc_mapping_sync::MappingSyncWorker;
-use nft_runtime::{self, opaque::Block, RuntimeApi, SLOT_DURATION};
-use sc_service::{error::Error as ServiceError, Configuration, TaskManager, BasePath};
-use sp_inherents::{InherentDataProviders, ProvideInherentData, InherentIdentifier, InherentData};
+// std
+use std::sync::Arc;
+
+// Local Runtime Types
+use nft_runtime::RuntimeApi;
+
+// Cumulus Imports
+use cumulus_client_consensus_aura::{
+ build_aura_consensus, BuildAuraConsensusParams, SlotProportion,
+};
+use cumulus_client_consensus_common::ParachainConsensus;
+use cumulus_client_network::build_block_announce_validator;
+use cumulus_client_service::{
+ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams,
+};
+use cumulus_primitives_core::ParaId;
+
+// Polkadot Imports
+use polkadot_primitives::v1::CollatorPair;
+
+// Substrate Imports
+use sc_client_api::ExecutorProvider;
+pub use sc_executor::NativeExecutor;
use sc_executor::native_executor_instance;
-pub use sc_executor::NativeExecutor;
-use sc_consensus_aura::{ImportQueueParams, StartAuraParams, SlotProportion};
-use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};
-use sc_finality_grandpa::SharedVoterState;
-use sp_timestamp::InherentError;
-use sc_telemetry::{Telemetry, TelemetryWorker};
-use sc_cli::SubstrateCli;
-use futures::StreamExt;
+use sc_network::NetworkService;
+use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager};
+use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};
+use sp_api::ConstructRuntimeApi;
+use sp_consensus::SlotData;
+use sp_keystore::SyncCryptoStorePtr;
+use sp_runtime::traits::BlakeTwo256;
+use substrate_prometheus_endpoint::Registry;
-use crate::cli::Cli;
+// Runtime type overrides
+type BlockNumber = u32;
+type Header = sp_runtime::generic::Header<BlockNumber, sp_runtime::traits::BlakeTwo256>;
+pub type Block = sp_runtime::generic::Block<Header, sp_runtime::OpaqueExtrinsic>;
+type Hash = sp_core::H256;
-// Our native executor instance.
+// Native executor instance.
native_executor_instance!(
- pub Executor,
+ pub ParachainRuntimeExecutor,
nft_runtime::api::dispatch,
nft_runtime::native_version,
frame_benchmarking::benchmarking::HostFunctions,
);
-
-type FullClient = sc_service::TFullClient<Block, RuntimeApi, Executor>;
-type FullBackend = sc_service::TFullBackend<Block>;
-type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;
-pub type ConsensusResult = (
- sc_consensus_aura::AuraBlockImport<
- Block,
- FullClient,
- FrontierBlockImport<
+/// Starts a `ServiceBuilder` for a full service.
+///
+/// Use this macro if you don't actually need the full service, but just the builder in order to
+/// be able to perform chain operations.
+pub fn new_partial<RuntimeApi, Executor, BIQ>(
+ config: &Configuration,
+ build_import_queue: BIQ,
+) -> Result<
+ PartialComponents<
+ TFullClient<Block, RuntimeApi, Executor>,
+ TFullBackend<Block>,
+ (),
+ sp_consensus::DefaultImportQueue<Block, TFullClient<Block, RuntimeApi, Executor>>,
+ sc_transaction_pool::FullPool<Block, TFullClient<Block, RuntimeApi, Executor>>,
+ (Option<Telemetry>, Option<TelemetryWorkerHandle>),
+ >,
+ sc_service::Error,
+>
+where
+ RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, Executor>>
+ + Send
+ + Sync
+ + 'static,
+ RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>
+ + sp_api::Metadata<Block>
+ + sp_session::SessionKeys<Block>
+ + sp_api::ApiExt<
Block,
- sc_finality_grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>,
- FullClient
- >,
- AuraPair
+ StateBackend = sc_client_api::StateBackendFor<TFullBackend<Block>, Block>,
+ > + sp_offchain::OffchainWorkerApi<Block>
+ + sp_block_builder::BlockBuilder<Block>,
+ sc_client_api::StateBackendFor<TFullBackend<Block>, Block>: sp_api::StateBackend<BlakeTwo256>,
+ Executor: sc_executor::NativeExecutionDispatch + 'static,
+ BIQ: FnOnce(
+ Arc<TFullClient<Block, RuntimeApi, Executor>>,
+ &Configuration,
+ Option<TelemetryHandle>,
+ &TaskManager,
+ ) -> Result<
+ sp_consensus::DefaultImportQueue<Block, TFullClient<Block, RuntimeApi, Executor>>,
+ sc_service::Error,
>,
- sc_finality_grandpa::LinkHalf<Block, FullClient, FullSelectChain>
-);
-
-/// Provide a mock duration starting at 0 in millisecond for timestamp inherent.
-/// Each call will increment timestamp by slot_duration making Aura think time has passed.
-pub struct MockTimestampInherentDataProvider;
-
-pub const INHERENT_IDENTIFIER: InherentIdentifier = *b"timstap0";
-
-thread_local!(static TIMESTAMP: RefCell<u64> = RefCell::new(0));
-
-impl ProvideInherentData for MockTimestampInherentDataProvider {
- fn inherent_identifier(&self) -> &'static InherentIdentifier {
- &INHERENT_IDENTIFIER
- }
-
- fn provide_inherent_data(
- &self,
- inherent_data: &mut InherentData,
- ) -> Result<(), sp_inherents::Error> {
- TIMESTAMP.with(|x| {
- *x.borrow_mut() += SLOT_DURATION;
- inherent_data.put_data(INHERENT_IDENTIFIER, &*x.borrow())
+{
+ 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))
})
- }
-
- fn error_to_string(&self, error: &[u8]) -> Option<String> {
- InherentError::try_from(&INHERENT_IDENTIFIER, error).map(|e| format!("{:?}", e))
- }
-}
-
-pub fn open_frontier_backend(config: &Configuration) -> Result<Arc<fc_db::Backend<Block>>, String> {
- let config_dir = config.base_path.as_ref()
- .map(|base_path| base_path.config_dir(config.chain_spec.id()))
- .unwrap_or_else(|| {
- BasePath::from_project("", "", &crate::cli::Cli::executable_name())
- .config_dir(config.chain_spec.id())
- });
- let database_dir = config_dir.join("frontier").join("db");
-
- Ok(Arc::new(fc_db::Backend::<Block>::new(&fc_db::DatabaseSettings {
- source: fc_db::DatabaseSettingsSrc::RocksDb {
- path: database_dir,
- cache_size: 0,
- }
- })?))
-}
-
-pub fn new_partial(config: &Configuration, #[allow(unused_variables)] cli: &Cli) -> Result<
- sc_service::PartialComponents<
- FullClient, FullBackend, FullSelectChain,
- sp_consensus::import_queue::BasicQueue<Block, sp_api::TransactionFor<FullClient, Block>>,
- sc_transaction_pool::FullPool<Block, FullClient>,
- (ConsensusResult, PendingTransactions, Option<FilterPool>, Arc<fc_db::Backend<Block>>, Option<Telemetry>),
->, ServiceError> {
- let inherent_data_providers = sp_inherents::InherentDataProviders::new();
+ .transpose()?;
let telemetry = config.telemetry_endpoints.clone()
.filter(|x| !x.is_empty())
@@ -122,13 +122,12 @@
)?;
let client = Arc::new(client);
- let telemetry = telemetry
- .map(|(worker, telemetry)| {
- task_manager.spawn_handle().spawn("telemetry", worker.run());
- telemetry
- });
+ let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle());
- let select_chain = sc_consensus::LongestChain::new(backend.clone());
+ let telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
let transaction_pool = sc_transaction_pool::BasicPool::new_full(
config.transaction_pool.clone(),
@@ -138,359 +137,331 @@
client.clone(),
);
- let pending_transactions: PendingTransactions
- = Some(Arc::new(Mutex::new(HashMap::new())));
-
- let filter_pool: Option<FilterPool>
- = Some(Arc::new(Mutex::new(BTreeMap::new())));
-
- let frontier_backend = open_frontier_backend(config)?;
-
- let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(
+ let import_queue = build_import_queue(
client.clone(),
- &(client.clone() as Arc<_>),
- select_chain.clone(),
- telemetry.as_ref().map(|x| x.handle()),
+ config,
+ telemetry.as_ref().map(|telemetry| telemetry.handle()),
+ &task_manager,
)?;
- let frontier_block_import = FrontierBlockImport::new(
- grandpa_block_import.clone(),
- client.clone(),
- frontier_backend.clone(),
- );
+ let params = PartialComponents {
+ backend,
+ client,
+ import_queue,
+ keystore_container,
+ task_manager,
+ transaction_pool,
+ select_chain: (),
+ other: (telemetry, telemetry_worker_handle),
+ };
- let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(
- frontier_block_import, client.clone(),
- );
+ Ok(params)
+}
- let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _>(
- ImportQueueParams {
- slot_duration: sc_consensus_aura::slot_duration(&*client)?,
- block_import: aura_block_import.clone(),
- justification_import: Some(Box::new(grandpa_block_import.clone())),
- client: client.clone(),
- inherent_data_providers: inherent_data_providers.clone(),
- spawner: &task_manager.spawn_essential_handle(),
- registry: config.prometheus_registry(),
- can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
- check_for_equivocation: Default::default(),
- telemetry: telemetry.as_ref().map(|x| x.handle()),
- }
- )?;
+/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.
+///
+/// This is the actual implementation that is abstract over the executor and the runtime api.
+#[sc_tracing::logging::prefix_logs_with("Parachain")]
+async fn start_node_impl<RuntimeApi, Executor, RB, BIQ, BIC>(
+ parachain_config: Configuration,
+ collator_key: CollatorPair,
+ polkadot_config: Configuration,
+ id: ParaId,
+ rpc_ext_builder: RB,
+ build_import_queue: BIQ,
+ build_consensus: BIC,
+) -> sc_service::error::Result<(TaskManager, Arc<TFullClient<Block, RuntimeApi, Executor>>)>
+where
+ RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, Executor>>
+ + Send
+ + Sync
+ + 'static,
+ RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>
+ + sp_api::Metadata<Block>
+ + sp_session::SessionKeys<Block>
+ + sp_api::ApiExt<
+ Block,
+ StateBackend = sc_client_api::StateBackendFor<TFullBackend<Block>, Block>,
+ > + sp_offchain::OffchainWorkerApi<Block>
+ + sp_block_builder::BlockBuilder<Block>
+ + cumulus_primitives_core::CollectCollationInfo<Block>,
+ sc_client_api::StateBackendFor<TFullBackend<Block>, Block>: sp_api::StateBackend<BlakeTwo256>,
+ Executor: sc_executor::NativeExecutionDispatch + 'static,
+ RB: Fn(
+ Arc<TFullClient<Block, RuntimeApi, Executor>>,
+ ) -> jsonrpc_core::IoHandler<sc_rpc::Metadata>
+ + Send
+ + 'static,
+ BIQ: FnOnce(
+ Arc<TFullClient<Block, RuntimeApi, Executor>>,
+ &Configuration,
+ Option<TelemetryHandle>,
+ &TaskManager,
+ ) -> Result<
+ sp_consensus::DefaultImportQueue<Block, TFullClient<Block, RuntimeApi, Executor>>,
+ sc_service::Error,
+ >,
+ BIC: FnOnce(
+ Arc<TFullClient<Block, RuntimeApi, Executor>>,
+ Option<&Registry>,
+ Option<TelemetryHandle>,
+ &TaskManager,
+ &polkadot_service::NewFull<polkadot_service::Client>,
+ Arc<sc_transaction_pool::FullPool<Block, TFullClient<Block, RuntimeApi, Executor>>>,
+ Arc<NetworkService<Block, Hash>>,
+ SyncCryptoStorePtr,
+ bool,
+ ) -> Result<Box<dyn ParachainConsensus<Block>>, sc_service::Error>,
+{
+ if matches!(parachain_config.role, Role::Light) {
+ return Err("Light client not supported!".into());
+ }
- 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),
- pending_transactions,
- filter_pool,
- frontier_backend,
- telemetry,
- )
- })
-}
+ let parachain_config = prepare_node_config(parachain_config);
-/// Builds a new service for a full client.
-pub fn new_full(
- config: Configuration,
- cli: &Cli,
-) -> Result<TaskManager, ServiceError> {
- let enable_dev_signer = cli.run.shared_params.dev;
+ let params = new_partial::<RuntimeApi, Executor, BIQ>(¶chain_config, build_import_queue)?;
+ let (mut telemetry, telemetry_worker_handle) = params.other;
- let sc_service::PartialComponents {
- client, backend, mut task_manager, import_queue, keystore_container,
- select_chain, transaction_pool, inherent_data_providers,
- other: (consensus_result, pending_transactions, filter_pool, frontier_backend, mut telemetry),
- } = new_partial(&config, cli)?;
+ let relay_chain_full_node = cumulus_client_service::build_polkadot_full_node(
+ polkadot_config,
+ collator_key.clone(),
+ telemetry_worker_handle,
+ )
+ .map_err(|e| match e {
+ polkadot_service::Error::Sub(x) => x,
+ s => format!("{}", s).into(),
+ })?;
+
+ let client = params.client.clone();
+ let backend = params.backend.clone();
+ let block_announce_validator = build_block_announce_validator(
+ relay_chain_full_node.client.clone(),
+ id,
+ Box::new(relay_chain_full_node.network.clone()),
+ relay_chain_full_node.backend.clone(),
+ );
- let (network, network_status_sinks, system_rpc_tx, network_starter) =
+ let force_authoring = parachain_config.force_authoring;
+ let validator = parachain_config.role.is_authority();
+ let prometheus_registry = parachain_config.prometheus_registry().cloned();
+ let transaction_pool = params.transaction_pool.clone();
+ let mut task_manager = params.task_manager;
+ let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue);
+ let (network, network_status_sinks, system_rpc_tx, start_network) =
sc_service::build_network(sc_service::BuildNetworkParams {
- config: &config,
- client: Arc::clone(&client),
- transaction_pool: Arc::clone(&transaction_pool),
+ config: ¶chain_config,
+ client: client.clone(),
+ transaction_pool: transaction_pool.clone(),
spawn_handle: task_manager.spawn_handle(),
- import_queue,
+ import_queue: import_queue.clone(),
on_demand: None,
- block_announce_validator_builder: None,
+ block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)),
})?;
- if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config, task_manager.spawn_handle(), Arc::clone(&client), network.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 is_authority = role.is_authority();
- let subscription_task_executor = sc_rpc::SubscriptionTaskExecutor::new(task_manager.spawn_handle());
-
- let rpc_extensions_builder = {
- let client = Arc::clone(&client);
- let pool = Arc::clone(&transaction_pool);
- let network = network.clone();
- let pending = pending_transactions.clone();
- let filter_pool = filter_pool.clone();
- let frontier_backend = frontier_backend.clone();
- // TODO: Tune
- let max_past_logs = 10000;
-
- Box::new(move |deny_unsafe, _| {
- let deps = crate::rpc::FullDeps {
- client: Arc::clone(&client),
- pool: Arc::clone(&pool),
- deny_unsafe,
- is_authority,
- enable_dev_signer,
- network: network.clone(),
- pending_transactions: pending.clone(),
- filter_pool: filter_pool.clone(),
- backend: frontier_backend.clone(),
- max_past_logs,
- };
- crate::rpc::create_full(
- deps,
- subscription_task_executor.clone()
- )
- })
- };
-
- task_manager.spawn_essential_handle().spawn(
- "frontier-mapping-sync-worker",
- MappingSyncWorker::new(
- client.import_notification_stream(),
- Duration::new(6, 0),
- Arc::clone(&client),
- Arc::clone(&backend),
- frontier_backend.clone(),
- ).for_each(|()| futures::future::ready(()))
- );
+ let rpc_client = client.clone();
+ let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone()));
- let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
- network: network.clone(),
- client: Arc::clone(&client),
- keystore: keystore_container.sync_keystore(),
- task_manager: &mut task_manager,
- transaction_pool: Arc::clone(&transaction_pool),
- rpc_extensions_builder: rpc_extensions_builder,
+ sc_service::spawn_tasks(sc_service::SpawnTasksParams {
on_demand: None,
remote_blockchain: None,
- backend, network_status_sinks, system_rpc_tx, config, telemetry: telemetry.as_mut(),
+ rpc_extensions_builder,
+ client: client.clone(),
+ transaction_pool: transaction_pool.clone(),
+ task_manager: &mut task_manager,
+ config: parachain_config,
+ keystore: params.keystore_container.sync_keystore(),
+ backend: backend.clone(),
+ network: network.clone(),
+ network_status_sinks,
+ system_rpc_tx,
+ telemetry: telemetry.as_mut(),
})?;
- // Spawn Frontier EthFilterApi maintenance task.
- if let Some(filter_pool) = filter_pool {
- // Each filter is allowed to stay in the pool for 100 blocks.
- const FILTER_RETAIN_THRESHOLD: u64 = 100;
- task_manager.spawn_essential_handle().spawn(
- "frontier-filter-pool",
- EthTask::filter_pool_task(
- Arc::clone(&client),
- filter_pool,
- FILTER_RETAIN_THRESHOLD,
- )
- );
- }
-
- // Spawn Frontier pending transactions maintenance task (as essential, otherwise we leak).
- if let Some(pending_transactions) = pending_transactions {
- const TRANSACTION_RETAIN_THRESHOLD: u64 = 5;
- task_manager.spawn_essential_handle().spawn(
- "frontier-pending-transactions",
- EthTask::pending_transaction_task(
- Arc::clone(&client),
- pending_transactions,
- TRANSACTION_RETAIN_THRESHOLD,
- )
- );
- }
+ let announce_block = {
+ let network = network.clone();
+ Arc::new(move |hash, data| network.announce_block(hash, data))
+ };
- let (aura_block_import, grandpa_link) = consensus_result;
-
- if role.is_authority() {
- let proposer = sc_basic_authorship::ProposerFactory::new(
- task_manager.spawn_handle(),
- Arc::clone(&client),
- Arc::clone(&transaction_pool),
+ if validator {
+ let parachain_consensus = build_consensus(
+ client.clone(),
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, _, _, _, _, _, _, _, _, _>(
- StartAuraParams {
- slot_duration: sc_consensus_aura::slot_duration(&*client)?,
- client: Arc::clone(&client),
- select_chain,
- block_import: aura_block_import,
- proposer_factory: proposer,
- sync_oracle: network.clone(),
- inherent_data_providers: inherent_data_providers.clone(),
- force_authoring,
- backoff_authoring_blocks,
- keystore: keystore_container.sync_keystore(),
- can_author_with,
- block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32),
- telemetry: telemetry.as_ref().map(|x| x.handle()),
- }
+ telemetry.as_ref().map(|t| t.handle()),
+ &task_manager,
+ &relay_chain_full_node,
+ transaction_pool,
+ network,
+ params.keystore_container.sync_keystore(),
+ force_authoring,
)?;
- // the AURA authoring task is considered essential, i.e. if it
- // fails we take down the service with it.
- task_manager.spawn_essential_handle().spawn_blocking("aura", aura);
+ let spawner = task_manager.spawn_handle();
- // 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 params = StartCollatorParams {
+ para_id: id,
+ block_status: client.clone(),
+ announce_block,
+ client: client.clone(),
+ task_manager: &mut task_manager,
+ collator_key,
+ relay_chain_full_node,
+ spawner,
+ parachain_consensus,
+ import_queue,
};
- let grandpa_config = sc_finality_grandpa::Config {
- // FIXME #1578 make this available through chainspec
- gossip_duration: Duration::from_millis(333),
- justification_period: 512,
- name: Some(name),
- observer_enabled: false,
- keystore,
- is_authority: role.is_authority(),
- telemetry: telemetry.as_ref().map(|x| x.handle()),
+ start_collator(params).await?;
+ } else {
+ let params = StartFullNodeParams {
+ client: client.clone(),
+ announce_block,
+ task_manager: &mut task_manager,
+ para_id: id,
+ relay_chain_full_node,
};
- if enable_grandpa {
- // start the full GRANDPA voter
- // NOTE: non-authorities could run the GRANDPA observer protocol, but at
- // this point the full voter should provide better guarantees of block
- // and vote data availability than the observer. The observer has not
- // been tested extensively yet and having most nodes in a network run it
- // could lead to finality stalls.
- let grandpa_config = sc_finality_grandpa::GrandpaParams {
- config: grandpa_config,
- link: grandpa_link,
- network,
- telemetry: telemetry.as_ref().map(|x| x.handle()),
- voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),
- prometheus_registry,
- shared_voter_state: SharedVoterState::empty(),
- };
+ start_full_node(params)?;
+ }
- // 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)?
- );
- }
- }
+ start_network.start_network();
- network_starter.start_network();
- Ok(task_manager)
+ Ok((task_manager, client))
}
-/// Builds a new service for a light client.
-pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {
- 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 (client, backend, keystore_container, mut task_manager, on_demand) =
- sc_service::new_light_parts::<Block, RuntimeApi, Executor>(
- &config,
- telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
- )?;
-
- let mut telemetry = telemetry
- .map(|(worker, telemetry)| {
- task_manager.spawn_handle().spawn("telemetry", worker.run());
- telemetry
- });
-
- let select_chain = sc_consensus::LongestChain::new(backend.clone());
+/// Build the import queue for the the parachain runtime.
+pub fn parachain_build_import_queue(
+ client: Arc<TFullClient<Block, RuntimeApi, ParachainRuntimeExecutor>>,
+ config: &Configuration,
+ telemetry: Option<TelemetryHandle>,
+ task_manager: &TaskManager,
+) -> Result<
+ sp_consensus::DefaultImportQueue<
+ Block,
+ TFullClient<Block, RuntimeApi, ParachainRuntimeExecutor>,
+ >,
+ sc_service::Error,
+> {
+ let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;
- let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(
- config.transaction_pool.clone(),
- config.prometheus_registry(),
- task_manager.spawn_handle(),
- client.clone(),
- on_demand.clone(),
- ));
- let (grandpa_block_import, _) = sc_finality_grandpa::block_import(
- client.clone(),
- &(client.clone() as Arc<_>),
- select_chain.clone(),
- telemetry.as_ref().map(|x| x.handle()),
- )?;
-
- let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _>(
- ImportQueueParams {
- slot_duration: sc_consensus_aura::slot_duration(&*client)?,
- block_import: grandpa_block_import.clone(),
- justification_import: Some(Box::new(grandpa_block_import)),
- client: client.clone(),
- inherent_data_providers: InherentDataProviders::new(),
- spawner: &task_manager.spawn_essential_handle(),
- registry: config.prometheus_registry(),
- can_author_with: sp_consensus::NeverCanAuthor,
- check_for_equivocation: Default::default(),
- telemetry: telemetry.as_ref().map(|x| x.handle()),
- }
- )?;
-
- let light_deps = crate::rpc::LightDeps {
- remote_blockchain: backend.remote_blockchain(),
- fetcher: on_demand.clone(),
+ cumulus_client_consensus_aura::import_queue::<
+ sp_consensus_aura::sr25519::AuthorityPair,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ >(cumulus_client_consensus_aura::ImportQueueParams {
+ block_import: client.clone(),
client: client.clone(),
- pool: transaction_pool.clone(),
- };
+ create_inherent_data_providers: move |_, _| async move {
+ let time = sp_timestamp::InherentDataProvider::from_system_time();
- let rpc_extensions = crate::rpc::create_light(light_deps);
+ let slot =
+ sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
+ *time,
+ slot_duration.slot_duration(),
+ );
- let (network, network_status_sinks, system_rpc_tx, network_starter) =
- sc_service::build_network(sc_service::BuildNetworkParams {
- config: &config,
- client: client.clone(),
- transaction_pool: transaction_pool.clone(),
- spawn_handle: task_manager.spawn_handle(),
- import_queue,
- on_demand: Some(on_demand.clone()),
- block_announce_validator_builder: None,
- })?;
+ Ok((time, slot))
+ },
+ registry: config.prometheus_registry().clone(),
+ can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
+ spawner: &task_manager.spawn_essential_handle(),
+ telemetry,
+ })
+ .map_err(Into::into)
+}
- if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config, task_manager.spawn_handle(), client.clone(), network.clone(),
- );
- }
+/// Start a normal parachain node.
+pub async fn start_node(
+ parachain_config: Configuration,
+ collator_key: CollatorPair,
+ polkadot_config: Configuration,
+ id: ParaId,
+) -> sc_service::error::Result<(TaskManager, Arc<TFullClient<Block, RuntimeApi, ParachainRuntimeExecutor>>)> {
+ start_node_impl::<RuntimeApi, ParachainRuntimeExecutor, _, _, _>(
+ parachain_config,
+ collator_key,
+ polkadot_config,
+ id,
+ |_| Default::default(),
+ parachain_build_import_queue,
+ |client,
+ prometheus_registry,
+ telemetry,
+ task_manager,
+ relay_chain_node,
+ transaction_pool,
+ sync_oracle,
+ keystore,
+ force_authoring| {
+ let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;
+
+ let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording(
+ task_manager.spawn_handle(),
+ client.clone(),
+ transaction_pool,
+ prometheus_registry.clone(),
+ telemetry.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(sc_service::NoopRpcExtensionBuilder(rpc_extensions)),
- config,
- client,
- keystore: keystore_container.sync_keystore(),
- backend,
- network,
- network_status_sinks,
- system_rpc_tx,
- telemetry: telemetry.as_mut(),
- })?;
+ let relay_chain_backend = relay_chain_node.backend.clone();
+ let relay_chain_client = relay_chain_node.client.clone();
+ Ok(build_aura_consensus::<
+ sp_consensus_aura::sr25519::AuthorityPair,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ >(BuildAuraConsensusParams {
+ proposer_factory,
+ create_inherent_data_providers: move |_, (relay_parent, validation_data)| {
+ let parachain_inherent =
+ cumulus_primitives_parachain_inherent::ParachainInherentData::create_at_with_client(
+ relay_parent,
+ &relay_chain_client,
+ &*relay_chain_backend,
+ &validation_data,
+ id,
+ );
+ async move {
+ let time = sp_timestamp::InherentDataProvider::from_system_time();
- network_starter.start_network();
+ let slot =
+ sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
+ *time,
+ slot_duration.slot_duration(),
+ );
- Ok(task_manager)
-}
+ let parachain_inherent = parachain_inherent.ok_or_else(|| {
+ Box::<dyn std::error::Error + Send + Sync>::from(
+ "Failed to create parachain inherent",
+ )
+ })?;
+ Ok((time, slot, parachain_inherent))
+ }
+ },
+ block_import: client.clone(),
+ relay_chain_client: relay_chain_node.client.clone(),
+ relay_chain_backend: relay_chain_node.backend.clone(),
+ para_client: client.clone(),
+ backoff_authoring_blocks: Option::<()>::None,
+ sync_oracle,
+ keystore,
+ force_authoring,
+ slot_duration,
+ // We got around 500ms for proposing
+ block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32),
+ telemetry,
+ }))
+ },
+ )
+ .await
+}
\ No newline at end of file
pallets/inflation/Cargo.tomldiffbeforeafterboth--- a/pallets/inflation/Cargo.toml
+++ b/pallets/inflation/Cargo.toml
@@ -1,38 +1,22 @@
+################################################################################
+# Package
+
[package]
-authors = ['Substrate DevHub <https://github.com/substrate-developer-hub>']
-description = 'Unqiue pallet inflation'
+authors = ['Unique Network <support@uniquenetwork.io>']
+description = 'Substrate node nft'
edition = '2018'
-homepage = 'https://substrate.io'
-license = 'Unlicense'
+homepage = 'https://unique.network'
+license = 'All Rights Reserved'
name = 'pallet-inflation'
repository = 'https://github.com/usetech-llc/nft_private/'
version = '3.0.0'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
-
-# alias "parity-scale-code" to "codec"
-[dependencies.codec]
-default-features = false
-features = ['derive']
-package = 'parity-scale-codec'
-version = '2.0.0'
-[dependencies]
-serde = { default-features = false, version = "1.0.119", features = ["derive"] }
-frame-support = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-system = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-balances = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-timestamp = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-randomness-collective-flip = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-std = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-benchmarking = { default-features = false, version = "3.0.0", optional = true, git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-core = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-io = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-runtime = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-
[features]
default = ['std']
+runtime-benchmarks = ['frame-benchmarking']
std = [
'codec/std',
'serde/std',
@@ -45,4 +29,79 @@
'sp-runtime/std',
'frame-benchmarking/std',
]
-runtime-benchmarks = ["frame-benchmarking"]
+
+################################################################################
+# Substrate Dependencies
+
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies.frame-benchmarking]
+default-features = false
+optional = true
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-support]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-system]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-balances]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-timestamp]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-randomness-collective-flip]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-std]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.serde]
+default-features = false
+features = ['derive']
+version = '1.0.119'
+
+[dependencies.sp-runtime]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-core]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-io]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
pallets/inflation/src/lib.rsdiffbeforeafterboth--- a/pallets/inflation/src/lib.rs
+++ b/pallets/inflation/src/lib.rs
@@ -94,14 +94,14 @@
let one_percent = Perbill::from_percent(1);
if current_year <= TOTAL_YEARS_UNTIL_FLAT {
- let amount: BalanceOf<T> = Perbill::from_rational_approximation(
+ let amount: BalanceOf<T> = Perbill::from_rational(
block_interval * (START_INFLATION_PERCENT * TOTAL_YEARS_UNTIL_FLAT - current_year * (START_INFLATION_PERCENT - END_INFLATION_PERCENT)),
YEAR * TOTAL_YEARS_UNTIL_FLAT
) * ( one_percent * T::Currency::total_issuance() );
<BlockInflation<T>>::put(amount);
}
else {
- let amount: BalanceOf<T> = Perbill::from_rational_approximation(
+ let amount: BalanceOf<T> = Perbill::from_rational(
block_interval * END_INFLATION_PERCENT,
YEAR
) * (one_percent * T::Currency::total_issuance());
pallets/nft-charge-transaction/Cargo.tomldiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-charge-transaction/Cargo.toml
@@ -0,0 +1,59 @@
+[package]
+authors = ['Substrate DevHub <https://github.com/substrate-developer-hub>']
+description = 'Unqiue pallet nft specific transaction payment'
+edition = '2018'
+homepage = 'https://substrate.io'
+license = 'Unlicense'
+name = 'pallet-nft-charge-transaction'
+repository = 'https://github.com/usetech-llc/nft_private/'
+version = '3.0.0'
+
+[package.metadata.docs.rs]
+targets = ['x86_64-unknown-linux-gnu']
+
+# alias "parity-scale-code" to "codec"
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies]
+serde = { version = "1.0.119" }
+frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-balances = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-contracts = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-timestamp = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-transaction-payment = { default-features = false, version = "3.0.0", git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-randomness-collective-flip = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-std = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-benchmarking = { default-features = false, version = "3.0.0", optional = true, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-core = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-io = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-runtime = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+
+pallet-nft = { default-features = false, path="../nft" }
+pallet-nft-transaction-payment = { default-features = false, path="../nft-transaction-payment" }
+nft-data-structs = { default-features = false, path="../../primitives", version = "0.9.0" }
+
+[features]
+default = ['std']
+std = [
+ 'codec/std',
+ 'serde/std',
+ 'frame-support/std',
+ 'frame-system/std',
+ 'pallet-balances/std',
+ 'pallet-timestamp/std',
+ 'pallet-randomness-collective-flip/std',
+ 'pallet-contracts/std',
+ 'pallet-nft/std',
+ 'pallet-transaction-payment/std',
+ 'pallet-nft-transaction-payment/std',
+ 'sp-std/std',
+ 'sp-runtime/std',
+ 'nft-data-structs/std',
+ 'frame-benchmarking/std',
+]
+runtime-benchmarks = ["frame-benchmarking"]
pallets/nft-charge-transaction/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-charge-transaction/src/lib.rs
@@ -0,0 +1,221 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+#[cfg(feature = "std")]
+pub use std::*;
+
+#[cfg(feature = "std")]
+pub use serde::*;
+
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
+
+#[cfg(test)]
+mod tests;
+
+use codec::{Decode, Encode};
+use frame_support::traits::{ Get};
+use frame_support::{
+ decl_module, decl_storage,
+ traits::{
+ IsSubType,
+ },
+ weights::{
+ DispatchInfo, PostDispatchInfo, DispatchClass
+ }
+};
+use sp_runtime::{
+ traits::{
+ DispatchInfoOf, Dispatchable, PostDispatchInfoOf, Saturating, SaturatedConversion, SignedExtension, Zero,
+ },
+ transaction_validity::{
+ TransactionPriority, TransactionValidity, TransactionValidityError, ValidTransaction,
+ },
+ FixedPointOperand, DispatchResult
+};
+use pallet_contracts::chain_extension::UncheckedFrom;
+use pallet_transaction_payment::OnChargeTransaction;
+use sp_std::prelude::*;
+
+
+pub trait Config: frame_system::Config +
+ pallet_nft_transaction_payment::Config
+{
+
+}
+
+decl_storage! {
+ trait Store for Module<T: Config> as NftTransactionPayment
+ {}
+}
+
+decl_module! {
+
+ pub struct Module<T: Config> for enum Call
+ where
+ origin: T::Origin,
+ {}
+}
+
+type BalanceOf<T> = <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::Balance;
+
+/// Require the transactor pay for themselves and maybe include a tip to gain additional priority
+/// in the queue.
+#[derive(Encode, Decode, Clone, Eq, PartialEq)]
+pub struct ChargeTransactionPayment<T: Config>(#[codec(compact)] BalanceOf<T>);
+
+impl<T: Config + Send + Sync> sp_std::fmt::Debug
+ for ChargeTransactionPayment<T>
+{
+ #[cfg(feature = "std")]
+ fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
+ write!(f, "ChargeTransactionPayment<{:?}>", self.0)
+ }
+ #[cfg(not(feature = "std"))]
+ fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
+ Ok(())
+ }
+}
+
+impl<T: Config> ChargeTransactionPayment<T>
+where
+ T::Call: Dispatchable<Info=DispatchInfo, PostInfo=PostDispatchInfo> + IsSubType<pallet_nft::Call<T>> + IsSubType<pallet_contracts::Call<T>>,
+ BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
+ T::AccountId: AsRef<[u8]>,
+ T::AccountId: UncheckedFrom<T::Hash>,
+{
+ fn traditional_fee(
+ len: usize,
+ info: &DispatchInfoOf<T::Call>,
+ tip: BalanceOf<T>,
+ ) -> BalanceOf<T>
+ where
+ T::Call: Dispatchable<Info = DispatchInfo>,
+ {
+ <pallet_transaction_payment::Module<T>>::compute_fee(len as u32, info, tip)
+ }
+
+ fn get_priority(len: usize, info: &DispatchInfoOf<T::Call>, final_fee: BalanceOf<T>) -> TransactionPriority {
+ let weight_saturation = T::BlockWeights::get().max_block / info.weight.max(1);
+ let max_block_length = *T::BlockLength::get().max.get(DispatchClass::Normal);
+ let len_saturation = max_block_length as u64 / (len as u64).max(1);
+ let coefficient: BalanceOf<T> = weight_saturation
+ .min(len_saturation)
+ .saturated_into::<BalanceOf<T>>();
+ final_fee
+ .saturating_mul(coefficient)
+ .saturated_into::<TransactionPriority>()
+ }
+
+ fn withdraw_fee(
+ &self,
+ who: &T::AccountId,
+ call: &T::Call,
+ info: &DispatchInfoOf<T::Call>,
+ len: usize,
+ ) -> Result<
+ (
+ BalanceOf<T>,
+ <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
+ ),
+ TransactionValidityError,
+ > {
+ let tip = self.0;
+
+ let fee = Self::traditional_fee(len, info, tip);
+
+ // Only mess with balances if fee is not zero.
+ if fee.is_zero() {
+ return <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::withdraw_fee(who, call, info, fee, tip)
+ .map(|i| (fee, i));
+ }
+
+ // check errors
+ let _error = <pallet_nft_transaction_payment::Module<T>>::check_error(who, call);
+ match _error {
+ Err(_error) => return Err(_error),
+ Ok(_error) => {}
+ };
+
+ // Determine who is paying transaction fee based on ecnomic model
+ // Parse call to extract collection ID and access collection sponsor
+ let sponsor = <pallet_nft_transaction_payment::Module<T>>::withdraw_type(who, call);
+
+ let who_pays_fee = sponsor.unwrap_or_else(|| who.clone());
+
+ <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::withdraw_fee(&who_pays_fee, call, info, fee, tip)
+ .map(|i| (fee, i))
+ }
+}
+
+impl<T: Config + Send + Sync> SignedExtension
+ for ChargeTransactionPayment<T>
+where
+ BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
+ T::Call: Dispatchable<Info=DispatchInfo, PostInfo=PostDispatchInfo> + IsSubType<pallet_nft::Call<T>> + IsSubType<pallet_contracts::Call<T>>,
+ T::AccountId: AsRef<[u8]>,
+ T::AccountId: UncheckedFrom<T::Hash>,
+{
+ const IDENTIFIER: &'static str = "ChargeTransactionPayment";
+ type AccountId = T::AccountId;
+ type Call = T::Call;
+ type AdditionalSigned = ();
+ type Pre = (
+ // tip
+ BalanceOf<T>,
+ // who pays fee
+ Self::AccountId,
+ // imbalance resulting from withdrawing the fee
+ <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
+ );
+ fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
+ Ok(())
+ }
+
+ fn validate(
+ &self,
+ who: &Self::AccountId,
+ call: &Self::Call,
+ info: &DispatchInfoOf<Self::Call>,
+ len: usize,
+ ) -> TransactionValidity {
+ let (fee, _) = self.withdraw_fee(who, call, info, len)?;
+ Ok(ValidTransaction {
+ priority: Self::get_priority(len, info, fee),
+ ..Default::default()
+ })
+ }
+
+ fn pre_dispatch(
+ self,
+ who: &Self::AccountId,
+ call: &Self::Call,
+ info: &DispatchInfoOf<Self::Call>,
+ len: usize,
+ ) -> Result<Self::Pre, TransactionValidityError> {
+ let (_fee, imbalance) = self.withdraw_fee(who, call, info, len)?;
+ Ok((self.0, who.clone(), imbalance))
+ }
+
+ fn post_dispatch(
+ pre: Self::Pre,
+ info: &DispatchInfoOf<Self::Call>,
+ post_info: &PostDispatchInfoOf<Self::Call>,
+ len: usize,
+ _result: &DispatchResult,
+ ) -> Result<(), TransactionValidityError> {
+ let (tip, who, imbalance) = pre;
+ let actual_fee = pallet_transaction_payment::Module::<T>::compute_actual_fee(
+ len as u32,
+ info,
+ post_info,
+ tip,
+ );
+ <T as pallet_transaction_payment::Config>::OnChargeTransaction::correct_and_deposit_fee(&who, info, post_info, actual_fee, tip, imbalance)?;
+ Ok(())
+ }
+}
\ No newline at end of file
pallets/nft-transaction-payment/Cargo.tomldiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-transaction-payment/Cargo.toml
@@ -0,0 +1,57 @@
+[package]
+authors = ['Substrate DevHub <https://github.com/substrate-developer-hub>']
+description = 'Unqiue pallet nft specific transaction payment'
+edition = '2018'
+homepage = 'https://substrate.io'
+license = 'Unlicense'
+name = 'pallet-nft-transaction-payment'
+repository = 'https://github.com/usetech-llc/nft_private/'
+version = '3.0.0'
+
+[package.metadata.docs.rs]
+targets = ['x86_64-unknown-linux-gnu']
+
+# alias "parity-scale-code" to "codec"
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies]
+serde = { version = "1.0.119" }
+frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-balances = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-contracts = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-timestamp = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-transaction-payment = { default-features = false, version = "3.0.0", git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-randomness-collective-flip = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-std = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-benchmarking = { default-features = false, version = "3.0.0", optional = true, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-core = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-io = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-runtime = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+
+pallet-nft = { default-features = false, path="../nft" }
+nft-data-structs = { default-features = false, path="../../primitives", version = "0.9.0" }
+
+[features]
+default = ['std']
+std = [
+ 'codec/std',
+ 'serde/std',
+ 'frame-support/std',
+ 'frame-system/std',
+ 'pallet-balances/std',
+ 'pallet-timestamp/std',
+ 'pallet-randomness-collective-flip/std',
+ 'pallet-contracts/std',
+ 'pallet-nft/std',
+ 'pallet-transaction-payment/std',
+ 'sp-std/std',
+ 'sp-runtime/std',
+ 'nft-data-structs/std',
+ 'frame-benchmarking/std',
+]
+runtime-benchmarks = ["frame-benchmarking"]
pallets/nft-transaction-payment/README.mddiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-transaction-payment/README.md
@@ -0,0 +1,13 @@
+# Nft Transaction Payment
+
+## Overview
+
+A module containing the sponsoring logic for paying for sponsored collections
+
+**NOTE:** The scheduled calls will be dispatched with the default filter
+for the origin: namely `frame_system::Config::BaseCallFilter` for all origin
+except root which will get no filter. And not the filter contained in origin
+use to call `fn schedule`.
+
+If a call is scheduled using proxy or whatever mecanism which adds filter,
+then those filter will not be used when dispatching the schedule call.
pallets/nft-transaction-payment/src/benchmarking.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-transaction-payment/src/benchmarking.rs
@@ -0,0 +1,19 @@
+#![cfg(feature = "runtime-benchmarks")]
+
+use super::*;
+use crate::Module as NftTransactionPayment;
+
+use sp_std::prelude::*;
+use frame_system::RawOrigin;
+use frame_benchmarking::{benchmarks};
+use frame_support::traits::OnInitialize;
+
+benchmarks! {
+
+ // on_initialize {
+ // let block1: T::BlockNumber = T::BlockNumber::from(1u32);
+ // let block2: T::BlockNumber = T::BlockNumber::from(2u32);
+ // Inflation::<T>::on_initialize(block1); // Create Treasury account
+ // }: { Inflation::<T>::on_initialize(block2); } // Benchmark deposit_into_existing path
+
+}
pallets/nft-transaction-payment/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-transaction-payment/src/lib.rs
@@ -0,0 +1,401 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+#[cfg(feature = "std")]
+pub use std::*;
+
+#[cfg(feature = "std")]
+pub use serde::*;
+
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
+
+#[cfg(test)]
+mod tests;
+
+use frame_support::{
+ decl_error, decl_module, decl_storage,
+ traits::{
+ IsSubType,
+ },
+ weights::{
+ DispatchInfo
+ }
+};
+use sp_runtime::traits::StaticLookup;
+use sp_runtime::{
+ traits::{
+ Hash, Dispatchable,
+ },
+ transaction_validity::{
+ InvalidTransaction, TransactionValidityError,
+ },
+};
+use pallet_contracts::chain_extension::UncheckedFrom;
+use sp_std::prelude::*;
+use nft_data_structs::{
+ CreateItemData,
+ CollectionId, CollectionMode, TokenId
+};
+
+type CodeHash<T> = <T as frame_system::Config>::Hash;
+
+ pub trait Config: frame_system::Config + pallet_contracts::Config + pallet_transaction_payment::Config + pallet_nft::Config {
+ }
+
+ // Error for non-fungible-token module.
+
+ decl_error! {
+ /// Error for non-fungible-token module.
+ pub enum Error for Module<T: Config> {
+ /// No available class ID
+ NoAvailableClassId,
+ /// No available token ID
+ NoAvailableTokenId,
+ /// Token(ClassId, TokenId) not found
+ TokenNotFound,
+ /// Class not found
+ CollectionNotFound,
+ /// The operator is not the owner of the token and has no permission
+ NoPermission,
+ /// Arithmetic calculation overflow
+ NumOverflow,
+ /// Can not destroy class
+ /// Total issuance is not 0
+ CannotDestroyClass,
+ }
+}
+
+ decl_storage! {
+ trait Store for Module<T: Config> as NftTransactionPayment{
+
+ }
+}
+
+decl_module! {
+
+ pub struct Module<T: Config> for enum Call
+ where
+ origin: T::Origin,
+ {
+ }
+}
+
+impl<T: Config> Module<T>
+{
+
+ pub fn check_error(
+ who: &T::AccountId,
+ call: &T::Call
+ ) -> Result<bool, TransactionValidityError> where
+ T::Call: Dispatchable<Info=DispatchInfo>,
+ T::Call: IsSubType<pallet_nft::Call<T>>,
+ T::Call: IsSubType<pallet_contracts::Call<T>>,
+ T::AccountId: AsRef<[u8]>,
+ T::AccountId: UncheckedFrom<T::Hash>
+ {
+
+ match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {
+ Some(pallet_contracts::Call::call(dest, _value, _gas_limit, _data)) => {
+
+ let called_contract: T::AccountId = T::Lookup::lookup((*dest).clone()).unwrap_or(T::AccountId::default());
+
+ let owned_contract = pallet_nft::ContractOwner::<T>::get(called_contract.clone()).as_ref() == Some(who);
+ let white_list_enabled = pallet_nft::ContractWhiteListEnabled::<T>::contains_key(called_contract.clone());
+
+ if !owned_contract && white_list_enabled {
+ if !pallet_nft::ContractWhiteList::<T>::contains_key(called_contract.clone(), who) {
+ return Err(InvalidTransaction::Call.into());
+ }
+ }
+ Ok(true)
+ },
+ _ => { Ok(true) },
+ }
+ }
+
+ pub fn withdraw_type(
+ who: &T::AccountId,
+ call: &T::Call
+ ) -> Option<T::AccountId> where
+ T::Call: Dispatchable<Info=DispatchInfo>,
+ T::Call: IsSubType<pallet_nft::Call<T>>,
+ T::Call: IsSubType<pallet_contracts::Call<T>>,
+ T::AccountId: AsRef<[u8]>,
+ T::AccountId: UncheckedFrom<T::Hash>
+ {
+
+ let mut sponsor: Option<T::AccountId> = match IsSubType::<pallet_nft::Call<T>>::is_sub_type(call) {
+ Some(pallet_nft::Call::create_item(collection_id, _owner, _properties)) => {
+
+ Self::withdraw_create_item(who, collection_id, &_properties)
+ },
+ Some(pallet_nft::Call::transfer(_new_owner, collection_id, item_id, _value)) => {
+
+ Self::withdraw_transfer(who, collection_id, item_id)
+ },
+ Some(pallet_nft::Call::set_variable_meta_data(collection_id, item_id, data)) => {
+
+ Self::withdraw_set_variable_meta_data(collection_id, item_id, &data)
+ },
+ _ => None,
+ };
+
+ sponsor = sponsor.or_else(|| match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {
+ Some(pallet_contracts::Call::call(dest, _value, _gas_limit, _data)) => {
+
+ Self::withdraw_contract_call(who, dest)
+ },
+ Some(pallet_contracts::Call::instantiate(_endowment, _gas_limit, code_hash, _data, salt)) => {
+
+ Self::withdraw_contract_instantiate(&who, code_hash, salt)
+ },
+ Some(pallet_contracts::Call::instantiate_with_code(_endowment, _gas_limit, _code, _data, _salt)) => {
+
+ Self::withdraw_contract_instantiate(&who, &T::Hashing::hash(&_code), _salt)
+ },
+ _ => None,
+ });
+
+ sponsor
+ }
+
+
+
+ pub fn withdraw_create_item(
+ who: &T::AccountId,
+ collection_id: &CollectionId,
+ _properties: &CreateItemData,
+ ) -> Option<T::AccountId> {
+
+ let collection = pallet_nft::CollectionById::<T>::get(collection_id)?;
+
+ // sponsor timeout
+ let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
+
+ let limit = collection.limits.sponsor_transfer_timeout;
+ if pallet_nft::CreateItemBasket::<T>::contains_key((collection_id, &who)) {
+ let last_tx_block = pallet_nft::CreateItemBasket::<T>::get((collection_id, &who));
+ let limit_time = last_tx_block + limit.into();
+ if block_number <= limit_time {
+ return None;
+ }
+ }
+ pallet_nft::CreateItemBasket::<T>::insert((collection_id, who.clone()), block_number);
+
+ // check free create limit
+ if collection.limits.sponsored_data_size >= (_properties.len() as u32) {
+ collection.sponsorship.sponsor()
+ .cloned()
+ } else {
+ None
+ }
+ }
+
+ pub fn withdraw_transfer(
+ who: &T::AccountId,
+ collection_id: &CollectionId,
+ item_id: &TokenId,
+ ) -> Option<T::AccountId> {
+
+ let collection = pallet_nft::CollectionById::<T>::get(collection_id)?;
+ let limits = pallet_nft::ChainLimit::get();
+
+ let mut sponsor_transfer = false;
+ if collection.sponsorship.confirmed() {
+
+ let collection_limits = collection.limits.clone();
+ let collection_mode = collection.mode.clone();
+
+ // sponsor timeout
+ let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
+ sponsor_transfer = match collection_mode {
+ CollectionMode::NFT => {
+
+ // get correct limit
+ let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
+ collection_limits.sponsor_transfer_timeout
+ } else {
+ limits.nft_sponsor_transfer_timeout
+ };
+
+ let mut sponsored = true;
+ if pallet_nft::NftTransferBasket::<T>::contains_key(collection_id, item_id) {
+ let last_tx_block = pallet_nft::NftTransferBasket::<T>::get(collection_id, item_id);
+ let limit_time = last_tx_block + limit.into();
+ if block_number <= limit_time {
+ sponsored = false;
+ }
+ }
+ if sponsored {
+ pallet_nft::NftTransferBasket::<T>::insert(collection_id, item_id, block_number);
+ }
+
+ sponsored
+ }
+ CollectionMode::Fungible(_) => {
+
+ // get correct limit
+ let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
+ collection_limits.sponsor_transfer_timeout
+ } else {
+ limits.fungible_sponsor_transfer_timeout
+ };
+
+ let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
+ let mut sponsored = true;
+ if pallet_nft::FungibleTransferBasket::<T>::contains_key(collection_id, who) {
+ let last_tx_block = pallet_nft::FungibleTransferBasket::<T>::get(collection_id, who);
+ let limit_time = last_tx_block + limit.into();
+ if block_number <= limit_time {
+ sponsored = false;
+ }
+ }
+ if sponsored {
+ pallet_nft::FungibleTransferBasket::<T>::insert(collection_id, who, block_number);
+ }
+
+ sponsored
+ }
+ CollectionMode::ReFungible => {
+
+ // get correct limit
+ let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
+ collection_limits.sponsor_transfer_timeout
+ } else {
+ limits.refungible_sponsor_transfer_timeout
+ };
+
+ let mut sponsored = true;
+ if pallet_nft::ReFungibleTransferBasket::<T>::contains_key(collection_id, item_id) {
+ let last_tx_block = pallet_nft::ReFungibleTransferBasket::<T>::get(collection_id, item_id);
+ let limit_time = last_tx_block + limit.into();
+ if block_number <= limit_time {
+ sponsored = false;
+ }
+ }
+ if sponsored {
+ pallet_nft::ReFungibleTransferBasket::<T>::insert(collection_id, item_id, block_number);
+ }
+
+ sponsored
+ }
+ _ => {
+ false
+ },
+ };
+ }
+
+ if !sponsor_transfer {
+ None
+ } else {
+ collection.sponsorship.sponsor()
+ .cloned()
+ }
+ }
+
+ pub fn withdraw_set_variable_meta_data(
+ collection_id: &CollectionId,
+ item_id: &TokenId,
+ data: &Vec<u8>,
+ ) -> Option<T::AccountId> {
+
+ let mut sponsor_metadata_changes = false;
+
+ let collection = pallet_nft::CollectionById::<T>::get(collection_id)?;
+
+ if
+ collection.sponsorship.confirmed() &&
+ // Can't sponsor fungible collection, this tx will be rejected
+ // as invalid
+ !matches!(collection.mode, CollectionMode::Fungible(_)) &&
+ data.len() <= collection.limits.sponsored_data_size as usize
+ {
+ if let Some(rate_limit) = collection.limits.sponsored_data_rate_limit {
+ let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
+
+ if pallet_nft::VariableMetaDataBasket::<T>::get(collection_id, item_id)
+ .map(|last_block| block_number - last_block > rate_limit)
+ .unwrap_or(true)
+ {
+ sponsor_metadata_changes = true;
+ pallet_nft::VariableMetaDataBasket::<T>::insert(collection_id, item_id, block_number);
+ }
+ }
+ }
+
+ if !sponsor_metadata_changes {
+ None
+ } else {
+ collection.sponsorship.sponsor().cloned()
+ }
+
+ }
+
+ pub fn withdraw_contract_call(
+ who: &T::AccountId,
+ dest: &<T::Lookup as StaticLookup>::Source
+ ) -> Option<T::AccountId> {
+
+ let called_contract: T::AccountId = T::Lookup::lookup((dest).clone()).unwrap_or(T::AccountId::default());
+
+ let owned_contract = pallet_nft::ContractOwner::<T>::get(called_contract.clone()).as_ref() == Some(who);
+ let white_list_enabled = pallet_nft::ContractWhiteListEnabled::<T>::contains_key(called_contract.clone());
+
+ // ???
+ if !owned_contract && white_list_enabled {
+ if !pallet_nft::ContractWhiteList::<T>::contains_key(called_contract.clone(), who) {
+ return Some(who.clone())
+ // return Err(InvalidTransaction::Call.into());
+ }
+ }
+
+ let mut sponsor_transfer = false;
+ if pallet_nft::ContractSponsoringRateLimit::<T>::contains_key(called_contract.clone()) {
+ let last_tx_block = pallet_nft::ContractSponsorBasket::<T>::get((&called_contract, &who));
+ let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
+ let rate_limit = pallet_nft::ContractSponsoringRateLimit::<T>::get(&called_contract);
+ let limit_time = last_tx_block + rate_limit;
+
+ if block_number >= limit_time {
+ pallet_nft::ContractSponsorBasket::<T>::insert((called_contract.clone(), who.clone()), block_number);
+ sponsor_transfer = true;
+ }
+ } else {
+ sponsor_transfer = false;
+ }
+
+ if sponsor_transfer {
+ if pallet_nft::ContractSelfSponsoring::<T>::contains_key(called_contract.clone()) {
+ if pallet_nft::ContractSelfSponsoring::<T>::get(called_contract.clone()) {
+ return Some(called_contract);
+ }
+ }
+ }
+
+ None
+ }
+
+ pub fn withdraw_contract_instantiate(
+ who: &T::AccountId,
+ code_hash: &CodeHash<T>,
+ salt: &[u8],
+ ) -> Option<T::AccountId> where
+ T::AccountId: AsRef<[u8]>,
+ T::AccountId: UncheckedFrom<T::Hash>
+ {
+
+ let new_contract_address = <pallet_contracts::Pallet<T>>::contract_address(
+ &who,
+ code_hash,
+ salt,
+ );
+ pallet_nft::ContractOwner::<T>::insert(new_contract_address.clone(), who.clone());
+
+ None
+ }
+}
\ No newline at end of file
pallets/nft-transaction-payment/src/tests.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/nft-transaction-payment/src/tests.rs
@@ -0,0 +1,241 @@
+#[cfg(test)]
+mod tests {
+ use crate as pallet_inflation;
+
+ use frame_system;
+ use frame_support::{traits::{Currency}, parameter_types};
+ use frame_support::{traits::OnInitialize};
+ use sp_core::H256;
+ use sp_runtime::{traits::{BlakeTwo256, IdentityLookup}, testing::Header};
+
+ type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
+ type Block = frame_system::mocking::MockBlock<Test>;
+
+ const YEAR: u64 = 5_259_600;
+
+ parameter_types! {
+ pub const ExistentialDeposit: u64 = 1;
+ pub const MaxLocks: u32 = 50;
+ }
+
+ impl pallet_balances::Config for Test {
+ type AccountStore = System;
+ type Balance = u64;
+ type DustRemoval = ();
+ type Event = ();
+ type ExistentialDeposit = ExistentialDeposit;
+ type WeightInfo = ();
+ type MaxLocks = MaxLocks;
+ }
+
+ frame_support::construct_runtime!(
+ pub enum Test where
+ Block = Block,
+ NodeBlock = Block,
+ UncheckedExtrinsic = UncheckedExtrinsic,
+ {
+ Balances: pallet_balances::{Module, Call, Storage},
+ System: frame_system::{Module, Call, Config, Storage, Event<T>},
+ Inflation: pallet_inflation::{Module, Call, Storage},
+ }
+ );
+
+ parameter_types! {
+ pub const BlockHashCount: u64 = 250;
+ pub BlockWeights: frame_system::limits::BlockWeights =
+ frame_system::limits::BlockWeights::simple_max(1024);
+ pub const SS58Prefix: u8 = 42;
+ }
+
+ impl frame_system::Config for Test {
+ type BaseCallFilter = ();
+ type BlockWeights = ();
+ type BlockLength = ();
+ type DbWeight = ();
+ type Origin = Origin;
+ type Call = Call;
+ type Index = u64;
+ type BlockNumber = u64;
+ type Hash = H256;
+ type Hashing = BlakeTwo256;
+ type AccountId = u64;
+ type Lookup = IdentityLookup<Self::AccountId>;
+ type Header = Header;
+ type Event = ();
+ type BlockHashCount = BlockHashCount;
+ type Version = ();
+ type PalletInfo = PalletInfo;
+ type AccountData = pallet_balances::AccountData<u64>;
+ type OnNewAccount = ();
+ type OnKilledAccount = ();
+ type SystemWeightInfo = ();
+ type SS58Prefix = SS58Prefix;
+ }
+
+ parameter_types! {
+ pub TreasuryAccountId: u64 = 1234;
+ pub const InflationBlockInterval: u32 = 100; // every time per how many blocks inflation is applied
+ }
+
+ impl pallet_inflation::Config for Test {
+ type Currency = Balances;
+ type TreasuryAccountId = TreasuryAccountId;
+ type InflationBlockInterval = InflationBlockInterval;
+ }
+
+ // Build genesis storage according to the mock runtime.
+ pub fn new_test_ext() -> sp_io::TestExternalities {
+ frame_system::GenesisConfig::default().build_storage::<Test>().unwrap().into()
+ }
+
+ #[test]
+ fn inflation_works() {
+ new_test_ext().execute_with(|| {
+ // Total issuance = 1_000_000_000
+ let initial_issuance: u64 = 1_000_000_000;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+
+ // BlockInflation should be set after 1st block and
+ // first inflation deposit should be equal to BlockInflation
+ Inflation::on_initialize(1);
+ assert!(Inflation::block_inflation() > 0);
+ assert_eq!(Balances::free_balance(1234) - initial_issuance, Inflation::block_inflation());
+ });
+ }
+
+ #[test]
+ fn inflation_second_deposit() {
+ new_test_ext().execute_with(|| {
+ // Total issuance = 1_000_000_000
+ let initial_issuance: u64 = 1_000_000_000;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+ Inflation::on_initialize(1);
+
+ // Next inflation deposit happens when block is multiple of InflationBlockInterval
+ let mut block: u32 = 2;
+ let balance_before: u64 = Balances::free_balance(1234);
+ while block % InflationBlockInterval::get() != 0 {
+ Inflation::on_initialize(block as u64);
+ block += 1;
+ }
+ let balance_just_before: u64 = Balances::free_balance(1234);
+ assert_eq!(balance_before, balance_just_before);
+
+ // The block with inflation
+ Inflation::on_initialize(block as u64);
+ let balance_after: u64 = Balances::free_balance(1234);
+ assert_eq!(balance_after - balance_just_before, Inflation::block_inflation());
+ });
+ }
+
+ #[test]
+ fn inflation_in_1_year() {
+ new_test_ext().execute_with(|| {
+ // Total issuance = 1_000_000_000
+ let initial_issuance: u64 = 1_000_000_000;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+ Inflation::on_initialize(1);
+ let block_inflation_year_0 = Inflation::block_inflation();
+
+ Inflation::on_initialize(YEAR);
+ let block_inflation_year_1 = Inflation::block_inflation();
+
+ // Assert that year 1 inflation is less than year 0
+ assert!(block_inflation_year_0 > block_inflation_year_1);
+ });
+ }
+
+ #[test]
+ fn inflation_in_1_to_9_years() {
+ new_test_ext().execute_with(|| {
+ // Total issuance = 1_000_000_000
+ let initial_issuance: u64 = 1_000_000_000;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+ Inflation::on_initialize(1);
+
+ for year in 1..=9 {
+ let block_inflation_year_before = Inflation::block_inflation();
+ Inflation::on_initialize(YEAR * year);
+ let block_inflation_year_after = Inflation::block_inflation();
+
+ // Assert that next year inflation is less than previous year inflation
+ assert!(block_inflation_year_before > block_inflation_year_after);
+ }
+
+ });
+ }
+
+ #[test]
+ fn inflation_after_year_10_is_flat() {
+ new_test_ext().execute_with(|| {
+ // Total issuance = 1_000_000_000
+ let initial_issuance: u64 = 1_000_000_000;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+ Inflation::on_initialize(YEAR * 9);
+
+ for year in 10..=20 {
+ let block_inflation_year_before = Inflation::block_inflation();
+ Inflation::on_initialize(YEAR * year);
+ let block_inflation_year_after = Inflation::block_inflation();
+
+ // Assert that next year inflation is equal to previous year inflation
+ assert_eq!(block_inflation_year_before, block_inflation_year_after);
+ }
+ });
+ }
+
+ #[test]
+ fn inflation_rate_by_year() {
+ new_test_ext().execute_with(|| {
+ let payouts: u64 = YEAR / InflationBlockInterval::get() as u64;
+
+ // Inflation starts at 10% and does down by 2/3% every year until year 9 (included),
+ // then it is flat.
+ let payout_by_year: [u64; 11] = [
+ 1000,
+ 933,
+ 867,
+ 800,
+ 733,
+ 667,
+ 600,
+ 533,
+ 467,
+ 400,
+ 400
+ ];
+
+ // For accuracy total issuance = payout0 * payouts * 10;
+ let initial_issuance: u64 = payout_by_year[0] * payouts * 10;
+ let _ = <Balances as Currency<_>>::deposit_creating(&1234, initial_issuance);
+ assert_eq!(Balances::free_balance(1234), initial_issuance);
+
+ for year in 0..=10 {
+ // Year first block
+ Inflation::on_initialize(year*YEAR);
+ let mut actual_payout = Inflation::block_inflation();
+ assert_eq!(actual_payout, payout_by_year[year as usize]);
+
+ // Year second block
+ Inflation::on_initialize(year*YEAR+1);
+ actual_payout = Inflation::block_inflation();
+ assert_eq!(actual_payout, payout_by_year[year as usize]);
+
+ // Year middle block
+ Inflation::on_initialize(year*YEAR + YEAR/2);
+ actual_payout = Inflation::block_inflation();
+ assert_eq!(actual_payout, payout_by_year[year as usize]);
+
+ // Year last block
+ Inflation::on_initialize((year + 1)*YEAR-1);
+ actual_payout = Inflation::block_inflation();
+ assert_eq!(actual_payout, payout_by_year[year as usize]);
+ }
+ });
+ }
+}
pallets/nft/Cargo.tomldiffbeforeafterboth--- a/pallets/nft/Cargo.toml
+++ b/pallets/nft/Cargo.toml
@@ -1,53 +1,22 @@
+################################################################################
+# Package
+
[package]
-authors = ['Substrate DevHub <https://github.com/substrate-developer-hub>']
-description = 'FRAME pallet nft'
+authors = ['Unique Network <support@uniquenetwork.io>']
+description = 'Substrate node nft'
edition = '2018'
-homepage = 'https://substrate.io'
-license = 'Unlicense'
+homepage = 'https://unique.network'
+license = 'All Rights Reserved'
name = 'pallet-nft'
-repository = 'https://github.com/substrate-developer-hub/nft/'
+repository = 'https://github.com/usetech-llc/nft_private/'
version = '3.0.0'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
-
-# alias "parity-scale-code" to "codec"
-[dependencies.codec]
-default-features = false
-features = ['derive']
-package = 'parity-scale-codec'
-version = '2.0.0'
-[dependencies]
-serde = { default-features = false, version = "1.0.119", features = ["derive"] }
-frame-support = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-system = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-balances = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-evm = { default-features = false, version = "4.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-pallet-ethereum = { default-features = false, version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-pallet-timestamp = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-randomness-collective-flip = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-std = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-benchmarking = { default-features = false, version = '3.0.0', optional = true, git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-fp-evm = { default-features = false, version = '2.0.0', git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-sp-core = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-io = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-api = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-runtime = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-contracts = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-transaction-payment = { default-features = false, version = "3.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-
-ethereum-tx-sign = { version = "3.0.4", optional = true }
-ethereum = { default-features = false, version = "0.7.1" }
-rlp = { default-features = false, version = "0.5.0" }
-
-evm-coder = { default-features = false, path = "../../crates/evm-coder" }
-primitive-types = { version = "0.9.0", default-features = false, features = ["serde_no_std"] }
-
-hex-literal = "0.3.1"
-
[features]
default = ['std']
+runtime-benchmarks = ['frame-benchmarking']
std = [
'codec/std',
'serde/std',
@@ -60,6 +29,7 @@
'pallet-randomness-collective-flip/std',
'pallet-transaction-payment/std',
'fp-evm/std',
+ 'nft-data-structs/std',
'sp-std/std',
'sp-runtime/std',
'frame-benchmarking/std',
@@ -70,4 +40,109 @@
'primitive-types/std',
'evm-coder/std',
]
-runtime-benchmarks = ["frame-benchmarking"]
+
+################################################################################
+# Substrate Dependencies
+
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies.frame-benchmarking]
+default-features = false
+optional = true
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-support]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-system]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-balances]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-timestamp]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-randomness-collective-flip]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-std]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-contracts]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-transaction-payment]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.serde]
+features = ['derive']
+version = '1.0.119'
+
+[dependencies.sp-runtime]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-core]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-io]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+
+################################################################################
+# Local Dependencies
+
+[dependencies.nft-data-structs]
+default-features = false
+path = '../../primitives'
+version = '0.9.0'
+
+
+[dependencies]
+ethereum-tx-sign = { version = "3.0.4", optional = true }
+ethereum = { default-features = false, version = "0.7.1" }
+rlp = { default-features = false, version = "0.5.0" }
+
+evm-coder = { default-features = false, path = "../../crates/evm-coder" }
+primitive-types = { version = "0.9.0", default-features = false, features = ["serde_no_std"] }
+
+hex-literal = "0.3.1"
\ No newline at end of file
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -11,9 +11,6 @@
pub use serde::{Serialize, Deserialize};
-use core::ops::{Deref, DerefMut};
-use core::cell::RefCell;
-use codec::{Decode, Encode};
pub use frame_support::{
construct_runtime, decl_event, decl_module, decl_storage, decl_error,
dispatch::DispatchResult,
@@ -34,19 +31,14 @@
use frame_system::{self as system, ensure_signed, ensure_root};
use sp_core::H160;
use sp_runtime::sp_std::prelude::Vec;
-use sp_runtime::{
- traits::{
- Hash, DispatchInfoOf, Dispatchable, PostDispatchInfoOf, Saturating, SaturatedConversion, SignedExtension, Zero,
- },
- transaction_validity::{
- TransactionPriority, InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
- },
- FixedPointOperand, FixedU128,
+use core::ops::{Deref, DerefMut};
+use nft_data_structs::{
+ MAX_DECIMAL_POINTS, MAX_SPONSOR_TIMEOUT, MAX_TOKEN_OWNERSHIP, MAX_REFUNGIBLE_PIECES,
+ AccessMode, ChainLimits, Collection, CreateItemData, CollectionLimits,
+ CollectionId, CollectionMode, TokenId,
+ SchemaVersion, SponsorshipState, Ownership,
+ NftItemType, FungibleItemType, ReFungibleItemType
};
-use sp_runtime::traits::StaticLookup;
-use pallet_contracts::chain_extension::UncheckedFrom;
-use pallet_ethereum::EthereumTransactionSender;
-use pallet_transaction_payment::OnChargeTransaction;
#[cfg(test)]
mod mock;
@@ -60,269 +52,10 @@
pub use eth::NftErcSupport;
pub use eth::account::*;
use eth::erc::{ERC20Events, ERC721Events};
-
-pub const MAX_DECIMAL_POINTS: DecimalPoints = 30;
-pub const MAX_REFUNGIBLE_PIECES: u128 = 1_000_000_000_000_000_000_000;
-pub const MAX_SPONSOR_TIMEOUT: u32 = 10_368_000;
-pub const MAX_TOKEN_OWNERSHIP: u32 = 10_000_000;
-
-// Structs
-// #region
-
-pub type CollectionId = u32;
-pub type TokenId = u32;
-pub type DecimalPoints = u8;
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[derive(Serialize, Deserialize)]
-pub enum CollectionMode {
- Invalid,
- NFT,
- // decimal points
- Fungible(DecimalPoints),
- ReFungible,
-}
-
-impl Default for CollectionMode {
- fn default() -> Self {
- Self::Invalid
- }
-}
-
-impl Into<u8> for CollectionMode {
- fn into(self) -> u8 {
- match self {
- CollectionMode::Invalid => 0,
- CollectionMode::NFT => 1,
- CollectionMode::Fungible(_) => 2,
- CollectionMode::ReFungible => 3,
- }
- }
-}
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum AccessMode {
- Normal,
- WhiteList,
-}
-impl Default for AccessMode {
- fn default() -> Self {
- Self::Normal
- }
-}
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum SchemaVersion {
- ImageURL,
- Unique,
-}
-impl Default for SchemaVersion {
- fn default() -> Self {
- Self::ImageURL
- }
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct Ownership<AccountId> {
- pub owner: AccountId,
- pub fraction: u128,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum SponsorshipState<AccountId> {
- /// The fees are applied to the transaction sender
- Disabled,
- Unconfirmed(AccountId),
- /// Transactions are sponsored by specified account
- Confirmed(AccountId),
-}
-
-impl<AccountId> SponsorshipState<AccountId> {
- fn sponsor(&self) -> Option<&AccountId> {
- match self {
- Self::Confirmed(sponsor) => Some(sponsor),
- _ => None,
- }
- }
-
- fn pending_sponsor(&self) -> Option<&AccountId> {
- match self {
- Self::Unconfirmed(sponsor) | Self::Confirmed(sponsor) => Some(sponsor),
- _ => None,
- }
- }
-
- fn confirmed(&self) -> bool {
- matches!(self, Self::Confirmed(_))
- }
-}
-
-impl<T> Default for SponsorshipState<T> {
- fn default() -> Self {
- Self::Disabled
- }
-}
-
-#[derive(Encode, Decode, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct Collection<T: Config> {
- pub owner: T::AccountId,
- pub mode: CollectionMode,
- pub access: AccessMode,
- pub decimal_points: DecimalPoints,
- pub name: Vec<u16>, // 64 include null escape char
- pub description: Vec<u16>, // 256 include null escape char
- pub token_prefix: Vec<u8>, // 16 include null escape char
- pub mint_mode: bool,
- pub offchain_schema: Vec<u8>,
- pub schema_version: SchemaVersion,
- pub sponsorship: SponsorshipState<T::AccountId>,
- pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions
- pub variable_on_chain_schema: Vec<u8>, //
- pub const_on_chain_schema: Vec<u8>, //
-}
-pub struct CollectionHandle<T: Config> {
- pub id: CollectionId,
- collection: Collection<T>,
- logs: eth::log::LogRecorder,
- evm_address: H160,
- gas_limit: RefCell<u64>,
-}
-impl<T: Config> CollectionHandle<T> {
- pub fn get_with_gas_limit(id: CollectionId, gas_limit: u64) -> Option<Self> {
- <CollectionById<T>>::get(id)
- .map(|collection| Self {
- id,
- collection,
- logs: eth::log::LogRecorder::default(),
- evm_address: eth::collection_id_to_address(id),
- gas_limit: RefCell::new(gas_limit),
- })
- }
- pub fn get(id: CollectionId) -> Option<Self> {
- Self::get_with_gas_limit(id, u64::MAX)
- }
- pub fn gas_left(&self) -> u64 {
- *self.gas_limit.borrow()
- }
- pub fn consume_gas(&self, gas: u64) -> DispatchResult {
- let mut gas_limit = self.gas_limit.borrow_mut();
- if *gas_limit < gas {
- fail!(Error::<T>::OutOfGas);
- }
- *gas_limit -= gas;
- Ok(())
- }
- pub fn log(&self, log: impl evm_coder::ToLog) {
- self.logs.log(log.to_log(self.evm_address))
- }
- pub fn into_inner(self) -> Collection<T> {
- self.collection.clone()
- }
-}
-
-impl<T: Config> Deref for CollectionHandle<T> {
- type Target = Collection<T>;
-
- fn deref(&self) -> &Self::Target {
- &self.collection
- }
-}
-
-impl<T: Config> DerefMut for CollectionHandle<T> {
- fn deref_mut(&mut self) -> &mut Self::Target {
- &mut self.collection
- }
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct NftItemType<AccountId> {
- pub owner: AccountId,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct FungibleItemType {
- pub value: u128,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct ReFungibleItemType<AccountId> {
- pub owner: Vec<Ownership<AccountId>>,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-// #[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-// #[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-// pub struct VestingItem<AccountId, Moment> {
-// pub sender: AccountId,
-// pub recipient: AccountId,
-// pub collection_id: CollectionId,
-// pub item_id: TokenId,
-// pub amount: u64,
-// pub vesting_date: Moment,
-// }
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CollectionLimits<BlockNumber: Encode + Decode> {
- pub account_token_ownership_limit: u32,
- pub sponsored_data_size: u32,
- /// None - setVariableMetadata is not sponsored
- /// Some(v) - setVariableMetadata is sponsored
- /// if there is v block between txs
- pub sponsored_data_rate_limit: Option<BlockNumber>,
- pub token_limit: u32,
-
- // Timeouts for item types in passed blocks
- pub sponsor_transfer_timeout: u32,
- pub owner_can_transfer: bool,
- pub owner_can_destroy: bool,
-}
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
-impl<BlockNumber: Encode + Decode> Default for CollectionLimits<BlockNumber> {
- fn default() -> Self {
- Self {
- account_token_ownership_limit: 10_000_000,
- token_limit: u32::max_value(),
- sponsored_data_size: u32::MAX,
- sponsored_data_rate_limit: None,
- sponsor_transfer_timeout: 14400,
- owner_can_transfer: true,
- owner_can_destroy: true
- }
- }
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct ChainLimits {
- pub collection_numbers_limit: u32,
- pub account_token_ownership_limit: u32,
- pub collections_admins_limit: u64,
- pub custom_data_limit: u32,
-
- // Timeouts for item types in passed blocks
- pub nft_sponsor_transfer_timeout: u32,
- pub fungible_sponsor_transfer_timeout: u32,
- pub refungible_sponsor_transfer_timeout: u32,
-
- // Schema limits
- pub offchain_schema_limit: u32,
- pub variable_on_chain_schema_limit: u32,
- pub const_on_chain_schema_limit: u32,
-}
-
pub trait WeightInfo {
fn create_collection() -> Weight;
fn destroy_collection() -> Weight;
@@ -354,68 +87,8 @@
fn add_to_contract_white_list() -> Weight;
fn remove_from_contract_white_list() -> Weight;
fn set_collection_limits() -> Weight;
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateNftData {
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
}
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateFungibleData {
- pub value: u128,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateReFungibleData {
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
- pub pieces: u128,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum CreateItemData {
- NFT(CreateNftData),
- Fungible(CreateFungibleData),
- ReFungible(CreateReFungibleData),
-}
-
-impl CreateItemData {
- pub fn len(&self) -> usize {
- let len = match self {
- CreateItemData::NFT(data) => data.variable_data.len() + data.const_data.len(),
- CreateItemData::ReFungible(data) => data.variable_data.len() + data.const_data.len(),
- _ => 0
- };
-
- return len;
- }
-}
-
-impl From<CreateNftData> for CreateItemData {
- fn from(item: CreateNftData) -> Self {
- CreateItemData::NFT(item)
- }
-}
-
-impl From<CreateReFungibleData> for CreateItemData {
- fn from(item: CreateReFungibleData) -> Self {
- CreateItemData::ReFungible(item)
- }
-}
-
-impl From<CreateFungibleData> for CreateItemData {
- fn from(item: CreateFungibleData) -> Self {
- CreateItemData::Fungible(item)
- }
-}
-
-
decl_error! {
/// Error for non-fungible-token module.
pub enum Error for Module<T: Config> {
@@ -498,7 +171,26 @@
}
}
-pub trait Config: system::Config + Sized + pallet_transaction_payment::Config + pallet_contracts::Config {
+pub struct CollectionHandle<T: system::Config> {
+ pub id: CollectionId,
+ pub collection: Collection<T>,
+}
+
+impl<T: frame_system::Config> Deref for CollectionHandle<T> {
+ type Target = Collection<T>;
+
+ fn deref(&self) -> &Self::Target {
+ &self.collection
+ }
+}
+
+impl<T: frame_system::Config> DerefMut for CollectionHandle<T> {
+ fn deref_mut(&mut self) -> &mut Self::Target {
+ &mut self.collection
+ }
+}
+
+pub trait Config: system::Config + Sized {
type Event: From<Event<Self>> + Into<<Self as system::Config>::Event>;
/// Weight information for extrinsics in this pallet.
@@ -516,11 +208,6 @@
type EthereumChainId: Get<u64>;
type EthereumTransactionSender: pallet_ethereum::EthereumTransactionSender;
}
-
-#[cfg(feature = "runtime-benchmarks")]
-mod benchmarking;
-
-// #endregion
// # Used definitions
//
@@ -729,7 +416,7 @@
fn deposit_event() = default;
type Error = Error<T>;
- fn on_initialize(now: T::BlockNumber) -> Weight {
+ fn on_initialize(_now: T::BlockNumber) -> Weight {
0
}
@@ -2524,6 +2211,7 @@
Ok(())
}
+ #[allow(dead_code)]
fn init_collection(item: &Collection<T>) {
// check params
assert!(
@@ -2551,6 +2239,7 @@
CreatedCollectionCount::put(next_id);
}
+ #[allow(dead_code)]
fn init_nft_token(collection_id: CollectionId, item: &NftItemType<T::CrossAccountId>) {
let current_index = <ItemListIndex>::get(collection_id)
.checked_add(1)
@@ -2567,6 +2256,7 @@
<Balance<T>>::insert(collection_id, item.owner.as_sub(), new_balance);
}
+ #[allow(dead_code)]
fn init_fungible_token(collection_id: CollectionId, owner: &T::CrossAccountId, item: &FungibleItemType) {
let current_index = <ItemListIndex>::get(collection_id)
.checked_add(1)
@@ -2583,6 +2273,7 @@
<Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);
}
+ #[allow(dead_code)]
fn init_refungible_token(collection_id: CollectionId, item: &ReFungibleItemType<T::CrossAccountId>) {
let current_index = <ItemListIndex>::get(collection_id)
.checked_add(1)
@@ -2680,409 +2371,5 @@
ensure!(<ContractOwner<T>>::get(contract) == Some(account), Error::<T>::NoPermission);
Ok(())
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Economic models
-// #region
-
-/// Fee multiplier.
-pub type Multiplier = FixedU128;
-
-type BalanceOf<T> = <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::Balance;
-
-/// Require the transactor pay for themselves and maybe include a tip to gain additional priority
-/// in the queue.
-#[derive(Encode, Decode, Clone, Eq, PartialEq)]
-pub struct ChargeTransactionPayment<T: Config>(#[codec(compact)] BalanceOf<T>);
-
-impl<T: Config + Send + Sync> sp_std::fmt::Debug
- for ChargeTransactionPayment<T>
-{
- #[cfg(feature = "std")]
- fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
- write!(f, "ChargeTransactionPayment<{:?}>", self.0)
- }
- #[cfg(not(feature = "std"))]
- fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
- Ok(())
- }
-}
-
-impl<T: Config> ChargeTransactionPayment<T>
-where
- T::Call: Dispatchable<Info=DispatchInfo, PostInfo=PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,
- BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
- T::AccountId: AsRef<[u8]>,
- T::AccountId: UncheckedFrom<T::Hash>,
-{
- fn traditional_fee(
- len: usize,
- info: &DispatchInfoOf<T::Call>,
- tip: BalanceOf<T>,
- ) -> BalanceOf<T>
- where
- T::Call: Dispatchable<Info = DispatchInfo>,
- {
- <pallet_transaction_payment::Module<T>>::compute_fee(len as u32, info, tip)
- }
-
- fn get_priority(len: usize, info: &DispatchInfoOf<T::Call>, final_fee: BalanceOf<T>) -> TransactionPriority {
- let weight_saturation = T::BlockWeights::get().max_block / info.weight.max(1);
- let max_block_length = *T::BlockLength::get().max.get(DispatchClass::Normal);
- let len_saturation = max_block_length as u64 / (len as u64).max(1);
- let coefficient: BalanceOf<T> = weight_saturation
- .min(len_saturation)
- .saturated_into::<BalanceOf<T>>();
- final_fee
- .saturating_mul(coefficient)
- .saturated_into::<TransactionPriority>()
- }
-
- fn withdraw_fee(
- &self,
- who: &T::AccountId,
- call: &T::Call,
- info: &DispatchInfoOf<T::Call>,
- len: usize,
- ) -> Result<
- (
- BalanceOf<T>,
- <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
- ),
- TransactionValidityError,
- > {
- let tip = self.0;
-
- let fee = Self::traditional_fee(len, info, tip);
-
- // Only mess with balances if fee is not zero.
- if fee.is_zero() {
- return <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::withdraw_fee(who, call, info, fee, tip)
- .map(|i| (fee, i));
- }
-
- // Determine who is paying transaction fee based on ecnomic model
- // Parse call to extract collection ID and access collection sponsor
- let mut sponsor: Option<T::AccountId> = (|| match IsSubType::<Call<T>>::is_sub_type(call) {
- Some(Call::create_item(collection_id, _owner, _properties)) => {
- let collection = <CollectionById<T>>::get(collection_id)?;
-
- // sponsor timeout
- let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
-
- let limit = collection.limits.sponsor_transfer_timeout;
- if <CreateItemBasket<T>>::contains_key((collection_id, &who)) {
- let last_tx_block = <CreateItemBasket<T>>::get((collection_id, &who));
- let limit_time = last_tx_block + limit.into();
- if block_number <= limit_time {
- return None;
- }
- }
- <CreateItemBasket<T>>::insert((collection_id, who.clone()), block_number);
-
- // check free create limit
- if collection.limits.sponsored_data_size >= (_properties.len() as u32) {
- collection.sponsorship.sponsor()
- .cloned()
- } else {
- None
- }
- }
- Some(Call::transfer(_new_owner, collection_id, item_id, _value)) => {
- let collection = <CollectionById<T>>::get(collection_id)?;
-
- let mut sponsor_transfer = false;
- if collection.sponsorship.confirmed() {
-
- let collection_limits = collection.limits;
- let collection_mode = collection.mode;
-
- // sponsor timeout
- let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
- sponsor_transfer = match collection_mode {
- CollectionMode::NFT => {
-
- // get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- ChainLimit::get().nft_sponsor_transfer_timeout
- };
-
- let mut sponsored = true;
- if <NftTransferBasket<T>>::contains_key(collection_id, item_id) {
- let last_tx_block = <NftTransferBasket<T>>::get(collection_id, item_id);
- let limit_time = last_tx_block + limit.into();
- if block_number <= limit_time {
- sponsored = false;
- }
- }
- if sponsored {
- <NftTransferBasket<T>>::insert(collection_id, item_id, block_number);
- }
-
- sponsored
- }
- CollectionMode::Fungible(_) => {
-
- // get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- ChainLimit::get().fungible_sponsor_transfer_timeout
- };
-
- let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
- let mut sponsored = true;
- if <FungibleTransferBasket<T>>::contains_key(collection_id, who) {
- let last_tx_block = <FungibleTransferBasket<T>>::get(collection_id, who);
- let limit_time = last_tx_block + limit.into();
- if block_number <= limit_time {
- sponsored = false;
- }
- }
- if sponsored {
- <FungibleTransferBasket<T>>::insert(collection_id, who, block_number);
- }
-
- sponsored
- }
- CollectionMode::ReFungible => {
-
- // get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- ChainLimit::get().refungible_sponsor_transfer_timeout
- };
-
- let mut sponsored = true;
- if <ReFungibleTransferBasket<T>>::contains_key(collection_id, item_id) {
- let last_tx_block = <ReFungibleTransferBasket<T>>::get(collection_id, item_id);
- let limit_time = last_tx_block + limit.into();
- if block_number <= limit_time {
- sponsored = false;
- }
- }
- if sponsored {
- <ReFungibleTransferBasket<T>>::insert(collection_id, item_id, block_number);
- }
-
- sponsored
- }
- _ => {
- false
- },
- };
- }
-
- if !sponsor_transfer {
- None
- } else {
- collection.sponsorship.sponsor()
- .cloned()
- }
- }
-
- Some(Call::set_variable_meta_data(collection_id, item_id, data)) => {
- let mut sponsor_metadata_changes = false;
-
- let collection = <CollectionById<T>>::get(collection_id)?;
-
- if
- collection.sponsorship.confirmed() &&
- // Can't sponsor fungible collection, this tx will be rejected
- // as invalid
- !matches!(collection.mode, CollectionMode::Fungible(_)) &&
- data.len() <= collection.limits.sponsored_data_size as usize
- {
- if let Some(rate_limit) = collection.limits.sponsored_data_rate_limit {
- let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
-
- if <VariableMetaDataBasket<T>>::get(collection_id, item_id)
- .map(|last_block| block_number - last_block > rate_limit)
- .unwrap_or(true)
- {
- sponsor_metadata_changes = true;
- <VariableMetaDataBasket<T>>::insert(collection_id, item_id, block_number);
- }
- }
- }
-
- if !sponsor_metadata_changes {
- None
- } else {
- collection.sponsorship.sponsor().cloned()
- }
- }
-
- _ => None,
- })();
-
- match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {
- Some(pallet_contracts::Call::call(dest, _value, _gas_limit, _data)) => {
-
- let called_contract: T::AccountId = T::Lookup::lookup((*dest).clone()).unwrap_or(T::AccountId::default());
-
- let owned_contract = <ContractOwner<T>>::get(called_contract.clone()).as_ref() == Some(who);
- let white_list_enabled = <ContractWhiteListEnabled<T>>::contains_key(called_contract.clone());
-
- if !owned_contract && white_list_enabled {
- if !<ContractWhiteList<T>>::contains_key(called_contract.clone(), who) {
- return Err(InvalidTransaction::Call.into());
- }
- }
- },
- _ => {},
- }
-
- // Sponsor smart contracts
- sponsor = sponsor.or_else(|| match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {
-
- // On instantiation: set the contract owner
- Some(pallet_contracts::Call::instantiate(_endowment, _gas_limit, code_hash, _data, salt)) => {
-
- let new_contract_address = <pallet_contracts::Module<T>>::contract_address(
- &who,
- code_hash,
- salt,
- );
- <ContractOwner<T>>::insert(new_contract_address.clone(), who.clone());
-
- None
- },
-
- // On instantiation with code: set the contract owner
- Some(pallet_contracts::Call::instantiate_with_code(_endowment, _gas_limit, _code, _data, _salt)) => {
-
- let new_contract_address = <pallet_contracts::Module<T>>::contract_address(
- &who,
- &T::Hashing::hash(&_code),
- _salt,
- );
-
- <ContractOwner<T>>::insert(new_contract_address.clone(), who.clone());
-
- None
- }
-
- // When the contract is called, check if the sponsoring is enabled and pay fees from contract endowment if it is
- Some(pallet_contracts::Call::call(dest, _value, _gas_limit, _data)) => {
-
- let called_contract: T::AccountId = T::Lookup::lookup((*dest).clone()).unwrap_or(T::AccountId::default());
-
- let mut sponsor_transfer = false;
- if <ContractSponsoringRateLimit<T>>::contains_key(called_contract.clone()) {
- let last_tx_block = <ContractSponsorBasket<T>>::get((&called_contract, &who));
- let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
- let rate_limit = <ContractSponsoringRateLimit<T>>::get(&called_contract);
- let limit_time = last_tx_block + rate_limit;
-
- if block_number >= limit_time {
- <ContractSponsorBasket<T>>::insert((called_contract.clone(), who.clone()), block_number);
- sponsor_transfer = true;
- }
- } else {
- sponsor_transfer = false;
- }
-
- if sponsor_transfer {
- if <ContractSelfSponsoring<T>>::contains_key(called_contract.clone()) {
- if <ContractSelfSponsoring<T>>::get(called_contract.clone()) {
- return Some(called_contract);
- }
- }
- }
-
- None
- },
-
- _ => None,
- });
-
- let who_pays_fee = sponsor.unwrap_or_else(|| who.clone());
-
- <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::withdraw_fee(&who_pays_fee, call, info, fee, tip)
- .map(|i| (fee, i))
- }
-}
-
-
-impl<T: Config + Send + Sync> SignedExtension
- for ChargeTransactionPayment<T>
-where
- BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
- T::Call: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,
- T::AccountId: AsRef<[u8]>,
- T::AccountId: UncheckedFrom<T::Hash>,
-{
- const IDENTIFIER: &'static str = "ChargeTransactionPayment";
- type AccountId = T::AccountId;
- type Call = T::Call;
- type AdditionalSigned = ();
- type Pre = (
- // tip
- BalanceOf<T>,
- // who pays fee
- Self::AccountId,
- // imbalance resulting from withdrawing the fee
- <<T as pallet_transaction_payment::Config>::OnChargeTransaction as pallet_transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
- );
- fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
- Ok(())
- }
-
- fn validate(
- &self,
- who: &Self::AccountId,
- call: &Self::Call,
- info: &DispatchInfoOf<Self::Call>,
- len: usize,
- ) -> TransactionValidity {
- let (fee, _) = self.withdraw_fee(who, call, info, len)?;
- Ok(ValidTransaction {
- priority: Self::get_priority(len, info, fee),
- ..Default::default()
- })
- }
-
- fn pre_dispatch(
- self,
- who: &Self::AccountId,
- call: &Self::Call,
- info: &DispatchInfoOf<Self::Call>,
- len: usize,
- ) -> Result<Self::Pre, TransactionValidityError> {
- let (_fee, imbalance) = self.withdraw_fee(who, call, info, len)?;
- Ok((self.0, who.clone(), imbalance))
- }
-
- fn post_dispatch(
- pre: Self::Pre,
- info: &DispatchInfoOf<Self::Call>,
- post_info: &PostDispatchInfoOf<Self::Call>,
- len: usize,
- _result: &DispatchResult,
- ) -> Result<(), TransactionValidityError> {
- let (tip, who, imbalance) = pre;
- let actual_fee = pallet_transaction_payment::Module::<T>::compute_actual_fee(
- len as u32,
- info,
- post_info,
- tip,
- );
- <T as pallet_transaction_payment::Config>::OnChargeTransaction::correct_and_deposit_fee(&who, info, post_info, actual_fee, tip, imbalance)?;
- Ok(())
- }
-}
-
-// #endregion
-
-sp_api::decl_runtime_apis! {
- pub trait NftApi {
- /// Used for ethereum integration
- fn eth_contract_code(account: H160) -> Option<Vec<u8>>;
}
}
pallets/nft/src/types.rsdiffbeforeafterboth--- a/pallets/nft/src/types.rs
+++ /dev/null
@@ -1,233 +0,0 @@
-#[cfg(feature = "std")]
-pub use std::*;
-
-pub use serde::{Serealize, Deserialize};
-
-use codec::{Decode, Encode};
-
-pub type CollectionId = u32;
-pub type TokenId = u32;
-pub type DecimalPoints = u8;
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum CollectionMode {
- Invalid,
- NFT,
- // decimal points
- Fungible(DecimalPoints),
- // decimal points
- ReFungible(DecimalPoints),
-}
-
-impl Into<u8> for CollectionMode {
- fn into(self) -> u8 {
- match self {
- CollectionMode::Invalid => 0,
- CollectionMode::NFT => 1,
- CollectionMode::Fungible(_) => 2,
- CollectionMode::ReFungible(_) => 3,
- }
- }
-}
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum AccessMode {
- Normal,
- WhiteList,
-}
-impl Default for AccessMode {
- fn default() -> Self {
- Self::Normal
- }
-}
-
-impl Default for CollectionMode {
- fn default() -> Self {
- Self::Invalid
- }
-}
-
-#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum SchemaVersion {
- ImageURL,
- Unique,
-}
-impl Default for SchemaVersion {
- fn default() -> Self {
- Self::ImageURL
- }
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct Ownership<AccountId> {
- pub owner: AccountId,
- pub fraction: u128,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CollectionType<AccountId> {
- pub owner: AccountId,
- pub mode: CollectionMode,
- pub access: AccessMode,
- pub decimal_points: DecimalPoints,
- pub name: Vec<u16>, // 64 include null escape char
- pub description: Vec<u16>, // 256 include null escape char
- pub token_prefix: Vec<u8>, // 16 include null escape char
- pub mint_mode: bool,
- pub offchain_schema: Vec<u8>,
- pub schema_version: SchemaVersion,
- pub sponsor: AccountId, // Who pays fees. If set to default address, the fees are applied to the transaction sender
- pub unconfirmed_sponsor: AccountId, // Sponsor address that has not yet confirmed sponsorship
- pub limits: CollectionLimits, // Collection private restrictions
- pub variable_on_chain_schema: Vec<u8>, //
- pub const_on_chain_schema: Vec<u8>, //
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct NftItemType<AccountId> {
- pub collection: CollectionId,
- pub owner: AccountId,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct FungibleItemType<AccountId> {
- pub collection: CollectionId,
- pub owner: AccountId,
- pub value: u128,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct ReFungibleItemType<AccountId> {
- pub collection: CollectionId,
- pub owner: Vec<Ownership<AccountId>>,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct ApprovePermissions<AccountId> {
- pub approved: AccountId,
- pub amount: u128,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct VestingItem<AccountId, Moment> {
- pub sender: AccountId,
- pub recipient: AccountId,
- pub collection_id: CollectionId,
- pub item_id: TokenId,
- pub amount: u64,
- pub vesting_date: Moment,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct BasketItem<AccountId, BlockNumber> {
- pub address: AccountId,
- pub start_block: BlockNumber,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CollectionLimits {
- pub account_token_ownership_limit: u32,
- pub sponsored_data_size: u32,
- pub token_limit: u32,
-
- // Timeouts for item types in passed blocks
- pub sponsor_transfer_timeout: u32,
-}
-
-impl Default for CollectionLimits {
- fn default() -> CollectionLimits {
- CollectionLimits {
- account_token_ownership_limit: 10_000_000,
- token_limit: u32::max_value(),
- sponsored_data_size: u32::max_value(),
- sponsor_transfer_timeout: 14400 }
- }
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct ChainLimits {
- pub collection_numbers_limit: u32,
- pub account_token_ownership_limit: u32,
- pub collections_admins_limit: u64,
- pub custom_data_limit: u32,
-
- // Timeouts for item types in passed blocks
- pub nft_sponsor_transfer_timeout: u32,
- pub fungible_sponsor_transfer_timeout: u32,
- pub refungible_sponsor_transfer_timeout: u32,
-}
-
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateNftData {
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateFungibleData {
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub struct CreateReFungibleData {
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
-pub enum CreateItemData {
- NFT(CreateNftData),
- Fungible(CreateFungibleData),
- ReFungible(CreateReFungibleData),
-}
-
-impl CreateItemData {
- pub fn len(&self) -> usize {
- let len = match self {
- CreateItemData::NFT(data) => data.variable_data.len() + data.const_data.len(),
- CreateItemData::ReFungible(data) => data.variable_data.len() + data.const_data.len(),
- _ => 0
- };
-
- return len;
- }
-}
-
-impl From<CreateNftData> for CreateItemData {
- fn from(item: CreateNftData) -> Self {
- CreateItemData::NFT(item)
- }
-}
-
-impl From<CreateReFungibleData> for CreateItemData {
- fn from(item: CreateReFungibleData) -> Self {
- CreateItemData::ReFungible(item)
- }
-}
-
-impl From<CreateFungibleData> for CreateItemData {
- fn from(item: CreateFungibleData) -> Self {
- CreateItemData::Fungible(item)
- }
-}
pallets/scheduler/Cargo.tomldiffbeforeafterboth--- /dev/null
+++ b/pallets/scheduler/Cargo.toml
@@ -0,0 +1,53 @@
+[package]
+name = "pallet-scheduler"
+version = "3.0.0"
+authors = ["Parity Technologies <admin@parity.io>"]
+edition = "2018"
+license = "Unlicense"
+homepage = "https://substrate.dev"
+repository = "https://github.com/paritytech/substrate/"
+description = "FRAME example pallet"
+readme = "README.md"
+
+[dependencies]
+serde = { version = "1.0.119" }
+codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
+frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-contracts = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-runtime = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-std = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-io = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-benchmarking = { default-features = false, version = '3.0.0', optional = true, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+
+pallet-nft-transaction-payment = { default-features = false, path = "../nft-transaction-payment" }
+pallet-nft = { default-features = false, path = "../nft" }
+nft-data-structs = { path = '../../primitives', default-features = false }
+log = { version = "0.4.14", default-features = false }
+
+[dev-dependencies]
+sp-core = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+substrate-test-utils = { version = "3.0.0", git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+
+[features]
+default = ["std"]
+std = [
+ "codec/std",
+ "sp-runtime/std",
+ "frame-benchmarking/std",
+ "frame-support/std",
+ "frame-system/std",
+ "pallet-nft-transaction-payment/std",
+ "pallet-nft/std",
+ "pallet-contracts/std",
+ "nft-data-structs/std",
+ "sp-io/std",
+ "sp-std/std",
+ "log/std",
+]
+runtime-benchmarks = [
+ "frame-benchmarking",
+ "frame-support/runtime-benchmarks",
+ "frame-system/runtime-benchmarks",
+]
+#try-runtime = ["frame-support/try-runtime"]
pallets/scheduler/README.mddiffbeforeafterboth--- /dev/null
+++ b/pallets/scheduler/README.md
@@ -0,0 +1,34 @@
+# Scheduler
+A module for scheduling dispatches.
+
+- [`scheduler::Trait`](https://docs.rs/pallet-scheduler/latest/pallet_scheduler/trait.Trait.html)
+- [`Call`](https://docs.rs/pallet-scheduler/latest/pallet_scheduler/enum.Call.html)
+- [`Module`](https://docs.rs/pallet-scheduler/latest/pallet_scheduler/struct.Module.html)
+
+## Overview
+
+This module exposes capabilities for scheduling dispatches to occur at a
+specified block number or at a specified period. These scheduled dispatches
+may be named or anonymous and may be canceled.
+
+**NOTE:** The scheduled calls will be dispatched with the default filter
+for the origin: namely `frame_system::Config::BaseCallFilter` for all origin
+except root which will get no filter. And not the filter contained in origin
+use to call `fn schedule`.
+
+If a call is scheduled using proxy or whatever mecanism which adds filter,
+then those filter will not be used when dispatching the schedule call.
+
+## Interface
+
+### Dispatchable Functions
+
+* `schedule` - schedule a dispatch, which may be periodic, to occur at a
+ specified block and with a specified priority.
+* `cancel` - cancel a scheduled dispatch, specified by block number and
+ index.
+* `schedule_named` - augments the `schedule` interface with an additional
+ `Vec<u8>` parameter that can be used for identification.
+* `cancel_named` - the named complement to the cancel function.
+
+License: Unlicense
pallets/scheduler/src/benchmarking.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/scheduler/src/benchmarking.rs
@@ -0,0 +1,148 @@
+// This file is part of Substrate.
+
+// Copyright (C) 2020-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.
+
+//! Scheduler pallet benchmarking.
+
+#![cfg(feature = "runtime-benchmarks")]
+
+use super::*;
+use sp_std::{vec, prelude::*};
+use frame_system::RawOrigin;
+use frame_support::{ensure, traits::OnInitialize};
+use frame_benchmarking::{benchmarks, impl_benchmark_test_suite};
+
+use crate::Module as Scheduler;
+use frame_system::Pallet as System;
+
+const BLOCK_NUMBER: u32 = 2;
+
+// Add `n` named items to the schedule
+fn fill_schedule<T: Config> (when: T::BlockNumber, n: u32) -> Result<(), &'static str> {
+ // Essentially a no-op call.
+ let call = frame_system::Call::set_storage(vec![]);
+ for i in 0..n {
+ // Named schedule is strictly heavier than anonymous
+ Scheduler::<T>::do_schedule_named(
+ i.encode(),
+ DispatchTime::At(when),
+ // Add periodicity
+ Some((T::BlockNumber::one(), 100)),
+ // HARD_DEADLINE priority means it gets executed no matter what
+ 0,
+ frame_system::RawOrigin::Root.into(),
+ call.clone().into(),
+ )?;
+ }
+ ensure!(Agenda::<T>::get(when).len() == n as usize, "didn't fill schedule");
+ Ok(())
+}
+
+benchmarks! {
+ schedule {
+ let s in 0 .. T::MaxScheduledPerBlock::get();
+ let when = BLOCK_NUMBER.into();
+ let periodic = Some((T::BlockNumber::one(), 100));
+ let priority = 0;
+ // Essentially a no-op call.
+ let call = Box::new(frame_system::Call::set_storage(vec![]).into());
+
+ fill_schedule::<T>(when, s)?;
+ }: _(RawOrigin::Root, when, periodic, priority, call)
+ verify {
+ ensure!(
+ Agenda::<T>::get(when).len() == (s + 1) as usize,
+ "didn't add to schedule"
+ );
+ }
+
+ cancel {
+ let s in 1 .. T::MaxScheduledPerBlock::get();
+ let when = BLOCK_NUMBER.into();
+
+ fill_schedule::<T>(when, s)?;
+ assert_eq!(Agenda::<T>::get(when).len(), s as usize);
+ }: _(RawOrigin::Root, when, 0)
+ verify {
+ ensure!(
+ Lookup::<T>::get(0.encode()).is_none(),
+ "didn't remove from lookup"
+ );
+ // Removed schedule is NONE
+ ensure!(
+ Agenda::<T>::get(when)[0].is_none(),
+ "didn't remove from schedule"
+ );
+ }
+
+ schedule_named {
+ let s in 0 .. T::MaxScheduledPerBlock::get();
+ let id = s.encode();
+ let when = BLOCK_NUMBER.into();
+ let periodic = Some((T::BlockNumber::one(), 100));
+ let priority = 0;
+ // Essentially a no-op call.
+ let call = Box::new(frame_system::Call::set_storage(vec![]).into());
+
+ fill_schedule::<T>(when, s)?;
+ }: _(RawOrigin::Root, id, when, periodic, priority, call)
+ verify {
+ ensure!(
+ Agenda::<T>::get(when).len() == (s + 1) as usize,
+ "didn't add to schedule"
+ );
+ }
+
+ cancel_named {
+ let s in 1 .. T::MaxScheduledPerBlock::get();
+ let when = BLOCK_NUMBER.into();
+
+ fill_schedule::<T>(when, s)?;
+ }: _(RawOrigin::Root, 0.encode())
+ verify {
+ ensure!(
+ Lookup::<T>::get(0.encode()).is_none(),
+ "didn't remove from lookup"
+ );
+ // Removed schedule is NONE
+ ensure!(
+ Agenda::<T>::get(when)[0].is_none(),
+ "didn't remove from schedule"
+ );
+ }
+
+ // TODO [#7141]: Make this more complex and flexible so it can be used in automation.
+ #[extra]
+ on_initialize {
+ let s in 0 .. T::MaxScheduledPerBlock::get();
+ let when = BLOCK_NUMBER.into();
+ fill_schedule::<T>(when, s)?;
+ }: { Scheduler::<T>::on_initialize(BLOCK_NUMBER.into()); }
+ verify {
+ assert_eq!(System::<T>::event_count(), s);
+ // Next block should have all the schedules again
+ ensure!(
+ Agenda::<T>::get(when + T::BlockNumber::one()).len() == s as usize,
+ "didn't append schedule"
+ );
+ }
+}
+
+impl_benchmark_test_suite!(
+ Scheduler,
+ crate::tests::new_test_ext(),
+ crate::tests::Test,
+);
pallets/scheduler/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/scheduler/src/lib.rs
@@ -0,0 +1,1610 @@
+// This file is part of Substrate.
+
+// Copyright (C) 2017-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.
+
+//! # Scheduler
+//! A module for scheduling dispatches.
+//!
+//! - [`Config`]
+//! - [`Call`]
+//! - [`Module`]
+//!
+//! ## Overview
+//!
+//! This module exposes capabilities for scheduling dispatches to occur at a
+//! specified block number or at a specified period. These scheduled dispatches
+//! may be named or anonymous and may be canceled.
+//!
+//! **NOTE:** The scheduled calls will be dispatched with the default filter
+//! for the origin: namely `frame_system::Config::BaseCallFilter` for all origin
+//! except root which will get no filter. And not the filter contained in origin
+//! use to call `fn schedule`.
+//!
+//! If a call is scheduled using proxy or whatever mecanism which adds filter,
+//! then those filter will not be used when dispatching the schedule call.
+//!
+//! ## Interface
+//!
+//! ### Dispatchable Functions
+//!
+//! * `schedule` - schedule a dispatch, which may be periodic, to occur at a
+//! specified block and with a specified priority.
+//! * `cancel` - cancel a scheduled dispatch, specified by block number and
+//! index.
+//! * `schedule_named` - augments the `schedule` interface with an additional
+//! `Vec<u8>` parameter that can be used for identification.
+//! * `cancel_named` - the named complement to the cancel function.
+
+// Ensure we're `no_std` when compiling for Wasm.
+#![cfg_attr(not(feature = "std"), no_std)]
+
+mod benchmarking;
+pub mod weights;
+
+use sp_std::{prelude::*, marker::PhantomData, borrow::Borrow};
+use codec::{Encode, Decode, Codec};
+use sp_runtime::{RuntimeDebug, traits::{Zero, One, BadOrigin, Saturating}};
+use frame_support::{
+ decl_module, decl_storage, decl_event, decl_error, IterableStorageMap,
+ dispatch::{Dispatchable, DispatchError, DispatchResult, Parameter},
+ traits::{Get, schedule::{self, DispatchTime}, OriginTrait, EnsureOrigin, IsType},
+ weights::{GetDispatchInfo, Weight},
+};
+use frame_system::{self as system, ensure_signed};
+use pallet_nft::*;
+// use pallet_nft_transaction_payment::{self as nft_transaction_payment};
+use nft_data_structs::*;
+pub use weights::WeightInfo;
+
+/// Our pallet's configuration trait. All our types and constants go in here. If the
+/// pallet is dependent on specific other pallets, then their configuration traits
+/// should be added to our implied traits list.
+///
+/// `system::Config` should always be included in our implied traits.
+/// //
+pub trait Config: system::Config
+{
+
+ /// The overarching event type.
+ type Event: From<Event<Self>> + Into<<Self as system::Config>::Event>;
+
+ /// The aggregated origin which the dispatch will take.
+ type Origin: OriginTrait<PalletsOrigin = Self::PalletsOrigin>
+ + From<Self::PalletsOrigin> + IsType<<Self as system::Config>::Origin>;
+
+ /// The caller origin, overarching type of all pallets origins.
+ type PalletsOrigin: From<system::RawOrigin<Self::AccountId>> + Codec + Clone + Eq;
+
+ /// The aggregated call type.
+ type Call: Parameter + Dispatchable<Origin=<Self as Config>::Origin> + GetDispatchInfo + From<system::Call<Self>>;
+
+ /// The maximum weight that may be scheduled per block for any dispatchables of less priority
+ /// than `schedule::HARD_DEADLINE`.
+ type MaximumWeight: Get<Weight>;
+
+ /// Required origin to schedule or cancel calls.
+ type ScheduleOrigin: EnsureOrigin<<Self as system::Config>::Origin>;
+
+ /// The maximum number of scheduled calls in the queue for a single block.
+ /// Not strictly enforced, but used for weight estimation.
+ type MaxScheduledPerBlock: Get<u32>;
+
+ /// Sponsoring function
+ type Sponsoring: SponsoringResolve<Self::AccountId, <Self as Config>::Call>;
+
+ /// Weight information for extrinsics in this pallet.
+ type WeightInfo: WeightInfo;
+}
+
+// pub type SelfWeightInfo<T> = <T as system::Config>::WeightInfo;
+
+/// Just a simple index for naming period tasks.
+pub type PeriodicIndex = u32;
+/// The location of a scheduled task that can be used to remove it.
+pub type TaskAddress<BlockNumber> = (BlockNumber, u32);
+
+#[cfg_attr(any(feature = "std", test), derive(PartialEq, Eq))]
+#[derive(Clone, RuntimeDebug, Encode, Decode)]
+struct ScheduledV1<Call, BlockNumber> {
+ maybe_id: Option<Vec<u8>>,
+ priority: schedule::Priority,
+ call: Call,
+ maybe_periodic: Option<schedule::Period<BlockNumber>>,
+}
+
+/// Information regarding an item to be executed in the future.
+#[cfg_attr(any(feature = "std", test), derive(PartialEq, Eq))]
+#[derive(Clone, RuntimeDebug, Encode, Decode)]
+pub struct ScheduledV2<Call, BlockNumber, PalletsOrigin, AccountId> {
+ /// The unique identity for this task, if there is one.
+ maybe_id: Option<Vec<u8>>,
+ /// This task's priority.
+ priority: schedule::Priority,
+ /// The call to be dispatched.
+ call: Call,
+ /// If the call is periodic, then this points to the information concerning that.
+ maybe_periodic: Option<schedule::Period<BlockNumber>>,
+ /// The origin to dispatch the call.
+ origin: PalletsOrigin,
+ _phantom: PhantomData<AccountId>,
+}
+
+/// The current version of Scheduled struct.
+pub type Scheduled<Call, BlockNumber, PalletsOrigin, AccountId> = ScheduledV2<Call, BlockNumber, PalletsOrigin, AccountId>;
+
+// A value placed in storage that represents the current version of the Scheduler storage.
+// This value is used by the `on_runtime_upgrade` logic to determine whether we run
+// storage migration logic.
+#[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug)]
+enum Releases {
+ V1,
+ V2,
+}
+
+impl Default for Releases {
+ fn default() -> Self {
+ Releases::V1
+ }
+}
+
+#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug)]
+pub struct CallSpec {
+
+ module: u32,
+ method: u32,
+}
+
+decl_storage! {
+ trait Store for Module<T: Config> as Scheduler {
+ /// Items to be executed, indexed by the block number that they should be executed on.
+ pub Agenda: map hasher(twox_64_concat) T::BlockNumber
+ => Vec<Option<Scheduled<<T as Config>::Call, T::BlockNumber, T::PalletsOrigin, T::AccountId>>>;
+
+ pub SpecAgenda: map hasher(twox_64_concat) T::BlockNumber
+ => Vec<Option<CallSpec>>;
+
+ /// Lookup from identity to the block number and index of the task.
+ Lookup: map hasher(twox_64_concat) Vec<u8> => Option<TaskAddress<T::BlockNumber>>;
+
+ /// Storage version of the pallet.
+ ///
+ /// New networks start with last version.
+ StorageVersion build(|_| Releases::V2): Releases;
+ }
+}
+
+decl_event!(
+ pub enum Event<T> where <T as system::Config>::BlockNumber {
+ /// Scheduled some task. \[when, index\]
+ Scheduled(BlockNumber, u32),
+ /// Canceled some task. \[when, index\]
+ Canceled(BlockNumber, u32),
+ /// Dispatched some task. \[task, id, result\]
+ Dispatched(TaskAddress<BlockNumber>, Option<Vec<u8>>, DispatchResult),
+ }
+);
+
+decl_error! {
+ pub enum Error for Module<T: Config> {
+ /// Failed to schedule a call
+ FailedToSchedule,
+ /// Cannot find the scheduled call.
+ NotFound,
+ /// Given target block number is in the past.
+ TargetBlockNumberInPast,
+ /// Reschedule failed because it does not change scheduled time.
+ RescheduleNoChange,
+ }
+}
+
+decl_module! {
+ /// Scheduler module declaration.
+ pub struct Module<T: Config> for enum Call
+ where
+ origin: <T as system::Config>::Origin
+ {
+ type Error = Error<T>;
+ fn deposit_event() = default;
+
+
+ /// Anonymously schedule a task.
+ ///
+ /// # <weight>
+ /// - S = Number of already scheduled calls
+ /// - Base Weight: 22.29 + .126 * S µs
+ /// - DB Weight:
+ /// - Read: Agenda
+ /// - Write: Agenda
+ /// - Will use base weight of 25 which should be good for up to 30 scheduled calls
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get())]
+ fn schedule(origin,
+ when: T::BlockNumber,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ call: Box<<T as Config>::Call>,
+ )
+ {
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_schedule(DispatchTime::At(when), maybe_periodic, priority, origin.caller().clone(), *call)?;
+ }
+
+ /// Cancel an anonymously scheduled task.
+ ///
+ /// # <weight>
+ /// - S = Number of already scheduled calls
+ /// - Base Weight: 22.15 + 2.869 * S µs
+ /// - DB Weight:
+ /// - Read: Agenda
+ /// - Write: Agenda, Lookup
+ /// - Will use base weight of 100 which should be good for up to 30 scheduled calls
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::cancel(T::MaxScheduledPerBlock::get())]
+ fn cancel(origin, when: T::BlockNumber, index: u32) {
+ T::ScheduleOrigin::ensure_origin(origin.clone())?;
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_cancel(Some(origin.caller().clone()), (when, index))?;
+ }
+
+ /// Schedule a named task.
+ ///
+ /// # <weight>
+ /// - S = Number of already scheduled calls
+ /// - Base Weight: 29.6 + .159 * S µs
+ /// - DB Weight:
+ /// - Read: Agenda, Lookup
+ /// - Write: Agenda, Lookup
+ /// - Will use base weight of 35 which should be good for more than 30 scheduled calls
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get())]
+ fn schedule_named(origin,
+ id: Vec<u8>,
+ when: T::BlockNumber,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ call: Box<<T as Config>::Call>,
+ ) {
+ T::ScheduleOrigin::ensure_origin(origin.clone())?;
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_schedule_named(
+ id, DispatchTime::At(when), maybe_periodic, priority, origin.caller().clone(), *call
+ )?;
+ }
+
+ /// Cancel a named scheduled task.
+ ///
+ /// # <weight>
+ /// - S = Number of already scheduled calls
+ /// - Base Weight: 24.91 + 2.907 * S µs
+ /// - DB Weight:
+ /// - Read: Agenda, Lookup
+ /// - Write: Agenda, Lookup
+ /// - Will use base weight of 100 which should be good for up to 30 scheduled calls
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::cancel_named(T::MaxScheduledPerBlock::get())]
+ fn cancel_named(origin, id: Vec<u8>) {
+ T::ScheduleOrigin::ensure_origin(origin.clone())?;
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_cancel_named(Some(origin.caller().clone()), id)?;
+ }
+
+ /// Anonymously schedule a task after a delay.
+ ///
+ /// # <weight>
+ /// Same as [`schedule`].
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get())]
+ fn schedule_after(origin,
+ after: T::BlockNumber,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ call: Box<<T as Config>::Call>,
+ ) {
+ T::ScheduleOrigin::ensure_origin(origin.clone())?;
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_schedule(
+ DispatchTime::After(after), maybe_periodic, priority, origin.caller().clone(), *call
+ )?;
+ }
+
+ /// Schedule a named task after a delay.
+ ///
+ /// # <weight>
+ /// Same as [`schedule_named`].
+ /// # </weight>
+ #[weight = <T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get())]
+ fn schedule_named_after(origin,
+ id: Vec<u8>,
+ after: T::BlockNumber,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ call: Box<<T as Config>::Call>,
+ ) {
+ T::ScheduleOrigin::ensure_origin(origin.clone())?;
+ let origin = <T as Config>::Origin::from(origin);
+ Self::do_schedule_named(
+ id, DispatchTime::After(after), maybe_periodic, priority, origin.caller().clone(), *call
+ )?;
+ }
+
+ /// Execute the scheduled calls
+ ///
+ /// # <weight>
+ /// - S = Number of already scheduled calls
+ /// - N = Named scheduled calls
+ /// - P = Periodic Calls
+ /// - Base Weight: 9.243 + 23.45 * S µs
+ /// - DB Weight:
+ /// - Read: Agenda + Lookup * N + Agenda(Future) * P
+ /// - Write: Agenda + Lookup * N + Agenda(future) * P
+ /// # </weight>
+ fn on_initialize(now: T::BlockNumber) -> Weight {
+ let limit = T::MaximumWeight::get();
+ let mut queued = Agenda::<T>::take(now).into_iter()
+ .enumerate()
+ .filter_map(|(index, s)| s.map(|inner| (index as u32, inner)))
+ .collect::<Vec<_>>();
+ if queued.len() as u32 > T::MaxScheduledPerBlock::get() {
+ log::warn!(
+ target: "runtime::scheduler",
+ "Warning: This block has more items queued in Scheduler than \
+ expected from the runtime configuration. An update might be needed."
+ );
+ }
+ queued.sort_by_key(|(_, s)| s.priority);
+ let base_weight: Weight = T::DbWeight::get().reads_writes(1, 2); // Agenda + Agenda(next)
+ let mut total_weight: Weight = 0;
+ queued.into_iter()
+ .enumerate()
+ .scan(base_weight, |cumulative_weight, (order, (index, s))| {
+ *cumulative_weight = cumulative_weight
+ .saturating_add(s.call.get_dispatch_info().weight);
+
+ let origin = <<T as Config>::Origin as From<T::PalletsOrigin>>::from(
+ s.origin.clone()
+ ).into();
+
+ if ensure_signed(origin).is_ok() {
+ // AccountData for inner call origin accountdata.
+ *cumulative_weight = cumulative_weight
+ .saturating_add(T::DbWeight::get().reads_writes(1, 1));
+ }
+
+ if s.maybe_id.is_some() {
+ // Remove/Modify Lookup
+ *cumulative_weight = cumulative_weight.saturating_add(T::DbWeight::get().writes(1));
+ }
+ if s.maybe_periodic.is_some() {
+ // Read/Write Agenda for future block
+ *cumulative_weight = cumulative_weight.saturating_add(T::DbWeight::get().reads_writes(1, 1));
+ }
+
+ Some((order, index, *cumulative_weight, s))
+ })
+ .filter_map(|(order, index, cumulative_weight, mut s)| {
+ // We allow a scheduled call if any is true:
+ // - It's priority is `HARD_DEADLINE`
+ // - It does not push the weight past the limit.
+ // - It is the first item in the schedule
+ if s.priority <= schedule::HARD_DEADLINE || cumulative_weight <= limit || order == 0 {
+
+ let origin = <<T as Config>::Origin as From<T::PalletsOrigin>>::from(
+ s.origin.clone()
+ ).into();
+ let sender = ensure_signed(origin).unwrap_or(T::AccountId::default());
+ let who_will_pay = T::Sponsoring::resolve(&sender, &s.call.clone()).unwrap_or(
+ sender);
+ let sponsor = T::PalletsOrigin::from(system::RawOrigin::Signed(who_will_pay));
+ let r = s.call.clone().dispatch(sponsor.into());
+ let maybe_id = s.maybe_id.clone();
+ if let &Some((period, count)) = &s.maybe_periodic {
+ if count > 1 {
+ s.maybe_periodic = Some((period, count - 1));
+ } else {
+ s.maybe_periodic = None;
+ }
+ let next = now + period;
+ // If scheduled is named, place it's information in `Lookup`
+ if let Some(ref id) = s.maybe_id {
+ let next_index = Agenda::<T>::decode_len(now + period).unwrap_or(0);
+ Lookup::<T>::insert(id, (next, next_index as u32));
+ }
+ Agenda::<T>::append(next, Some(s));
+ } else {
+ if let Some(ref id) = s.maybe_id {
+ Lookup::<T>::remove(id);
+ }
+ }
+ Self::deposit_event(RawEvent::Dispatched(
+ (now, index),
+ maybe_id,
+ r.map(|_| ()).map_err(|e| e.error)
+ ));
+ total_weight = cumulative_weight;
+ None
+ } else {
+ Some(Some(s))
+ }
+ })
+ .for_each(|unused| {
+ let next = now + One::one();
+ Agenda::<T>::append(next, unused);
+ });
+
+ total_weight
+ }
+ }
+}
+
+impl<T: Config> Module<T> {
+ /// Migrate storage format from V1 to V2.
+ /// Return true if migration is performed.
+ pub fn migrate_v1_to_t2() -> bool {
+ if StorageVersion::get() == Releases::V1 {
+ StorageVersion::put(Releases::V2);
+
+ Agenda::<T>::translate::<
+ Vec<Option<ScheduledV1<<T as Config>::Call, T::BlockNumber>>>, _
+ >(|_, agenda| Some(
+ agenda
+ .into_iter()
+ .map(|schedule| schedule.map(|schedule| ScheduledV2 {
+ maybe_id: schedule.maybe_id,
+ priority: schedule.priority,
+ call: schedule.call,
+ maybe_periodic: schedule.maybe_periodic,
+ origin: system::RawOrigin::Root.into(),
+ _phantom: Default::default(),
+ }))
+ .collect::<Vec<_>>()
+ ));
+
+ true
+ } else {
+ false
+ }
+ }
+
+ /// Helper to migrate scheduler when the pallet origin type has changed.
+ pub fn migrate_origin<OldOrigin: Into<T::PalletsOrigin> + codec::Decode>() {
+ Agenda::<T>::translate::<
+ Vec<Option<Scheduled<<T as Config>::Call, T::BlockNumber, OldOrigin, T::AccountId>>>, _
+ >(|_, agenda| Some(
+ agenda
+ .into_iter()
+ .map(|schedule| schedule.map(|schedule| Scheduled {
+ maybe_id: schedule.maybe_id,
+ priority: schedule.priority,
+ call: schedule.call,
+ maybe_periodic: schedule.maybe_periodic,
+ origin: schedule.origin.into(),
+ _phantom: Default::default(),
+ }))
+ .collect::<Vec<_>>()
+ ));
+ }
+
+ fn resolve_time(when: DispatchTime<T::BlockNumber>) -> Result<T::BlockNumber, DispatchError> {
+ let now = frame_system::Pallet::<T>::block_number();
+
+ let when = match when {
+ DispatchTime::At(x) => x,
+ // The current block has already completed it's scheduled tasks, so
+ // Schedule the task at lest one block after this current block.
+ DispatchTime::After(x) => now.saturating_add(x).saturating_add(One::one())
+ };
+
+ if when <= now {
+ return Err(Error::<T>::TargetBlockNumberInPast.into())
+ }
+
+ Ok(when)
+ }
+
+ fn do_schedule(
+ when: DispatchTime<T::BlockNumber>,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ origin: T::PalletsOrigin,
+ call: <T as Config>::Call
+ ) -> Result<TaskAddress<T::BlockNumber>, DispatchError> {
+ let when = Self::resolve_time(when)?;
+
+ // sanitize maybe_periodic
+ let maybe_periodic = maybe_periodic
+ .filter(|p| p.1 > 1 && !p.0.is_zero())
+ // Remove one from the number of repetitions since we will schedule one now.
+ .map(|(p, c)| (p, c - 1));
+ let s = Some(Scheduled {
+ maybe_id: None, priority, call, maybe_periodic, origin, _phantom: PhantomData::<T::AccountId>::default(),
+ });
+ Agenda::<T>::append(when, s);
+ let index = Agenda::<T>::decode_len(when).unwrap_or(1) as u32 - 1;
+ if index > T::MaxScheduledPerBlock::get() {
+ log::warn!(
+ target: "runtime::scheduler",
+ "Warning: There are more items queued in the Scheduler than \
+ expected from the runtime configuration. An update might be needed.",
+ );
+ }
+ Self::deposit_event(RawEvent::Scheduled(when, index));
+
+ Ok((when, index))
+ }
+
+ fn do_cancel(
+ origin: Option<T::PalletsOrigin>,
+ (when, index): TaskAddress<T::BlockNumber>
+ ) -> Result<(), DispatchError> {
+ let scheduled = Agenda::<T>::try_mutate(
+ when,
+ |agenda| {
+ agenda.get_mut(index as usize)
+ .map_or(Ok(None), |s| -> Result<Option<Scheduled<_, _, _, _>>, DispatchError> {
+ if let (Some(ref o), Some(ref s)) = (origin, s.borrow()) {
+ if *o != s.origin {
+ return Err(BadOrigin.into());
+ }
+ };
+ Ok(s.take())
+ })
+ },
+ )?;
+ if let Some(s) = scheduled {
+ if let Some(id) = s.maybe_id {
+ Lookup::<T>::remove(id);
+ }
+ Self::deposit_event(RawEvent::Canceled(when, index));
+ Ok(())
+ } else {
+ Err(Error::<T>::NotFound)?
+ }
+ }
+
+ fn do_reschedule(
+ (when, index): TaskAddress<T::BlockNumber>,
+ new_time: DispatchTime<T::BlockNumber>,
+ ) -> Result<TaskAddress<T::BlockNumber>, DispatchError> {
+ let new_time = Self::resolve_time(new_time)?;
+
+ if new_time == when {
+ return Err(Error::<T>::RescheduleNoChange.into());
+ }
+
+ Agenda::<T>::try_mutate(when, |agenda| -> DispatchResult {
+ let task = agenda.get_mut(index as usize).ok_or(Error::<T>::NotFound)?;
+ let task = task.take().ok_or(Error::<T>::NotFound)?;
+ Agenda::<T>::append(new_time, Some(task));
+ Ok(())
+ })?;
+
+ let new_index = Agenda::<T>::decode_len(new_time).unwrap_or(1) as u32 - 1;
+ Self::deposit_event(RawEvent::Canceled(when, index));
+ Self::deposit_event(RawEvent::Scheduled(new_time, new_index));
+
+ Ok((new_time, new_index))
+ }
+
+ fn do_schedule_named(
+ id: Vec<u8>,
+ when: DispatchTime<T::BlockNumber>,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ origin: T::PalletsOrigin,
+ call: <T as Config>::Call,
+ ) -> Result<TaskAddress<T::BlockNumber>, DispatchError> {
+ // ensure id it is unique
+ if Lookup::<T>::contains_key(&id) {
+ return Err(Error::<T>::FailedToSchedule)?
+ }
+
+ let when = Self::resolve_time(when)?;
+
+ // sanitize maybe_periodic
+ let maybe_periodic = maybe_periodic
+ .filter(|p| p.1 > 1 && !p.0.is_zero())
+ // Remove one from the number of repetitions since we will schedule one now.
+ .map(|(p, c)| (p, c - 1));
+
+ let s = Scheduled {
+ maybe_id: Some(id.clone()), priority, call, maybe_periodic, origin, _phantom: Default::default()
+ };
+ Agenda::<T>::append(when, Some(s));
+ let index = Agenda::<T>::decode_len(when).unwrap_or(1) as u32 - 1;
+ if index > T::MaxScheduledPerBlock::get() {
+ log::warn!(
+ target: "runtime::scheduler",
+ "Warning: There are more items queued in the Scheduler than \
+ expected from the runtime configuration. An update might be needed.",
+ );
+ }
+ let address = (when, index);
+ Lookup::<T>::insert(&id, &address);
+ Self::deposit_event(RawEvent::Scheduled(when, index));
+
+ Ok(address)
+ }
+
+ fn do_cancel_named(origin: Option<T::PalletsOrigin>, id: Vec<u8>) -> DispatchResult {
+ Lookup::<T>::try_mutate_exists(id, |lookup| -> DispatchResult {
+ if let Some((when, index)) = lookup.take() {
+ let i = index as usize;
+ Agenda::<T>::try_mutate(when, |agenda| -> DispatchResult {
+ if let Some(s) = agenda.get_mut(i) {
+ if let (Some(ref o), Some(ref s)) = (origin, s.borrow()) {
+ if *o != s.origin {
+ return Err(BadOrigin.into());
+ }
+ }
+ *s = None;
+ }
+ Ok(())
+ })?;
+ Self::deposit_event(RawEvent::Canceled(when, index));
+ Ok(())
+ } else {
+ Err(Error::<T>::NotFound)?
+ }
+ })
+ }
+
+ fn do_reschedule_named(
+ id: Vec<u8>,
+ new_time: DispatchTime<T::BlockNumber>,
+ ) -> Result<TaskAddress<T::BlockNumber>, DispatchError> {
+ let new_time = Self::resolve_time(new_time)?;
+
+ Lookup::<T>::try_mutate_exists(id, |lookup| -> Result<TaskAddress<T::BlockNumber>, DispatchError> {
+ let (when, index) = lookup.ok_or(Error::<T>::NotFound)?;
+
+ if new_time == when {
+ return Err(Error::<T>::RescheduleNoChange.into());
+ }
+
+ Agenda::<T>::try_mutate(when, |agenda| -> DispatchResult {
+ let task = agenda.get_mut(index as usize).ok_or(Error::<T>::NotFound)?;
+ let task = task.take().ok_or(Error::<T>::NotFound)?;
+ Agenda::<T>::append(new_time, Some(task));
+
+ Ok(())
+ })?;
+
+ let new_index = Agenda::<T>::decode_len(new_time).unwrap_or(1) as u32 - 1;
+ Self::deposit_event(RawEvent::Canceled(when, index));
+ Self::deposit_event(RawEvent::Scheduled(new_time, new_index));
+
+ *lookup = Some((new_time, new_index));
+
+ Ok((new_time, new_index))
+ })
+ }
+}
+
+impl<T: Config> schedule::Anon<T::BlockNumber, <T as Config>::Call, T::PalletsOrigin> for Module<T> {
+ type Address = TaskAddress<T::BlockNumber>;
+
+ fn schedule(
+ when: DispatchTime<T::BlockNumber>,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ origin: T::PalletsOrigin,
+ call: <T as Config>::Call
+ ) -> Result<Self::Address, DispatchError> {
+ Self::do_schedule(when, maybe_periodic, priority, origin, call)
+ }
+
+ fn cancel((when, index): Self::Address) -> Result<(), ()> {
+ Self::do_cancel(None, (when, index)).map_err(|_| ())
+ }
+
+ fn reschedule(
+ address: Self::Address,
+ when: DispatchTime<T::BlockNumber>,
+ ) -> Result<Self::Address, DispatchError> {
+ Self::do_reschedule(address, when)
+ }
+
+ fn next_dispatch_time((when, index): Self::Address) -> Result<T::BlockNumber, ()> {
+ Agenda::<T>::get(when).get(index as usize).ok_or(()).map(|_| when)
+ }
+}
+
+impl<T: Config> schedule::Named<T::BlockNumber, <T as Config>::Call, T::PalletsOrigin> for Module<T> {
+ type Address = TaskAddress<T::BlockNumber>;
+
+ fn schedule_named(
+ id: Vec<u8>,
+ when: DispatchTime<T::BlockNumber>,
+ maybe_periodic: Option<schedule::Period<T::BlockNumber>>,
+ priority: schedule::Priority,
+ origin: T::PalletsOrigin,
+ call: <T as Config>::Call,
+ ) -> Result<Self::Address, ()> {
+ Self::do_schedule_named(id, when, maybe_periodic, priority, origin, call).map_err(|_| ())
+ }
+
+ fn cancel_named(id: Vec<u8>) -> Result<(), ()> {
+ Self::do_cancel_named(None, id).map_err(|_| ())
+ }
+
+ fn reschedule_named(
+ id: Vec<u8>,
+ when: DispatchTime<T::BlockNumber>,
+ ) -> Result<Self::Address, DispatchError> {
+ Self::do_reschedule_named(id, when)
+ }
+
+ fn next_dispatch_time(id: Vec<u8>) -> Result<T::BlockNumber, ()> {
+ Lookup::<T>::get(id).and_then(|(when, index)| Agenda::<T>::get(when).get(index as usize).map(|_| when)).ok_or(())
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ use frame_support::{
+ parameter_types, assert_ok, ord_parameter_types,
+ assert_noop, assert_err, Hashable,
+ traits::{OnInitialize, OnFinalize, Filter},
+ weights::constants::RocksDbWeight,
+ };
+ use sp_core::H256;
+ use sp_runtime::{
+ Perbill,
+ testing::Header,
+ traits::{BlakeTwo256, IdentityLookup},
+ };
+ use frame_system::{EnsureOneOf, EnsureRoot, EnsureSignedBy};
+ use substrate_test_utils::assert_eq_uvec;
+ use crate as scheduler;
+
+ mod logger {
+ use super::*;
+ use std::cell::RefCell;
+
+ thread_local! {
+ static LOG: RefCell<Vec<(OriginCaller, u32)>> = RefCell::new(Vec::new());
+ }
+ pub fn log() -> Vec<(OriginCaller, u32)> {
+ LOG.with(|log| log.borrow().clone())
+ }
+ pub trait Config: system::Config {
+ type Event: From<Event> + Into<<Self as system::Config>::Event>;
+ }
+ decl_event! {
+ pub enum Event {
+ Logged(u32, Weight),
+ }
+ }
+ decl_module! {
+ pub struct Module<T: Config> for enum Call
+ where
+ origin: <T as system::Config>::Origin,
+ <T as system::Config>::Origin: OriginTrait<PalletsOrigin = OriginCaller>
+ {
+ fn deposit_event() = default;
+
+ #[weight = *weight]
+ fn log(origin, i: u32, weight: Weight) {
+ Self::deposit_event(Event::Logged(i, weight));
+ LOG.with(|log| {
+ log.borrow_mut().push((origin.caller().clone(), i));
+ })
+ }
+
+ #[weight = *weight]
+ fn log_without_filter(origin, i: u32, weight: Weight) {
+ Self::deposit_event(Event::Logged(i, weight));
+ LOG.with(|log| {
+ log.borrow_mut().push((origin.caller().clone(), i));
+ })
+ }
+ }
+ }
+ }
+
+ type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
+ type Block = frame_system::mocking::MockBlock<Test>;
+
+ frame_support::construct_runtime!(
+ pub enum Test where
+ Block = Block,
+ NodeBlock = Block,
+ UncheckedExtrinsic = UncheckedExtrinsic,
+ {
+ System: frame_system::{Pallet, Call, Config, Storage, Event<T>},
+ Logger: logger::{Pallet, Call, Event},
+ Scheduler: scheduler::{Pallet, Call, Storage, Event<T>},
+ }
+ );
+
+ // Scheduler must dispatch with root and no filter, this tests base filter is indeed not used.
+ pub struct BaseFilter;
+ impl Filter<Call> for BaseFilter {
+ fn filter(call: &Call) -> bool {
+ !matches!(call, Call::Logger(logger::Call::log(_, _)))
+ }
+ }
+
+ parameter_types! {
+ pub const BlockHashCount: u64 = 250;
+ pub BlockWeights: frame_system::limits::BlockWeights =
+ frame_system::limits::BlockWeights::simple_max(2_000_000_000_000);
+ }
+ impl system::Config for Test {
+ type BaseCallFilter = BaseFilter;
+ type BlockWeights = ();
+ type BlockLength = ();
+ type DbWeight = RocksDbWeight;
+ type Origin = Origin;
+ type Call = Call;
+ type Index = u64;
+ type BlockNumber = u64;
+ type Hash = H256;
+ type Hashing = BlakeTwo256;
+ type AccountId = u64;
+ type Lookup = IdentityLookup<Self::AccountId>;
+ type Header = Header;
+ type Event = Event;
+ type BlockHashCount = BlockHashCount;
+ type Version = ();
+ type PalletInfo = PalletInfo;
+ type AccountData = ();
+ type OnNewAccount = ();
+ type OnKilledAccount = ();
+ type SystemWeightInfo = ();
+ type SS58Prefix = ();
+ type OnSetCode = ();
+ }
+ impl logger::Config for Test {
+ type Event = Event;
+ }
+ parameter_types! {
+ pub MaximumSchedulerWeight: Weight = Perbill::from_percent(80) * BlockWeights::get().max_block;
+ pub const MaxScheduledPerBlock: u32 = 10;
+ }
+ ord_parameter_types! {
+ pub const One: u64 = 1;
+ }
+
+ impl Config for Test {
+ type Event = Event;
+ type Origin = Origin;
+ type PalletsOrigin = OriginCaller;
+ type Call = Call;
+ type MaximumWeight = MaximumSchedulerWeight;
+ type ScheduleOrigin = EnsureOneOf<u64, EnsureRoot<u64>, EnsureSignedBy<One, u64>>;
+ type MaxScheduledPerBlock = MaxScheduledPerBlock;
+ type WeightInfo = ();
+ }
+
+ pub fn new_test_ext() -> sp_io::TestExternalities {
+ let t = system::GenesisConfig::default().build_storage::<Test>().unwrap();
+ t.into()
+ }
+
+ fn run_to_block(n: u64) {
+ while System::block_number() < n {
+ Scheduler::on_finalize(System::block_number());
+ System::set_block_number(System::block_number() + 1);
+ Scheduler::on_initialize(System::block_number());
+ }
+ }
+
+ fn root() -> OriginCaller {
+ system::RawOrigin::Root.into()
+ }
+
+ #[test]
+ fn basic_scheduling_works() {
+ new_test_ext().execute_with(|| {
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ assert_ok!(Scheduler::do_schedule(DispatchTime::At(4), None, 127, root(), call));
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn schedule_after_works() {
+ new_test_ext().execute_with(|| {
+ run_to_block(2);
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ // This will schedule the call 3 blocks after the next block... so block 3 + 3 = 6
+ assert_ok!(Scheduler::do_schedule(DispatchTime::After(3), None, 127, root(), call));
+ run_to_block(5);
+ assert!(logger::log().is_empty());
+ run_to_block(6);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn schedule_after_zero_works() {
+ new_test_ext().execute_with(|| {
+ run_to_block(2);
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ assert_ok!(Scheduler::do_schedule(DispatchTime::After(0), None, 127, root(), call));
+ // Will trigger on the next block.
+ run_to_block(3);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn periodic_scheduling_works() {
+ new_test_ext().execute_with(|| {
+ // at #4, every 3 blocks, 3 times.
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4), Some((3, 3)), 127, root(), Call::Logger(logger::Call::log(42, 1000))
+ ));
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(6);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(7);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32)]);
+ run_to_block(9);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32)]);
+ run_to_block(10);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32), (root(), 42u32)]);
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32), (root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn reschedule_works() {
+ new_test_ext().execute_with(|| {
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ assert_eq!(Scheduler::do_schedule(DispatchTime::At(4), None, 127, root(), call).unwrap(), (4, 0));
+
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+
+ assert_eq!(Scheduler::do_reschedule((4, 0), DispatchTime::At(6)).unwrap(), (6, 0));
+
+ assert_noop!(Scheduler::do_reschedule((6, 0), DispatchTime::At(6)), Error::<Test>::RescheduleNoChange);
+
+ run_to_block(4);
+ assert!(logger::log().is_empty());
+
+ run_to_block(6);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn reschedule_named_works() {
+ new_test_ext().execute_with(|| {
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ assert_eq!(Scheduler::do_schedule_named(
+ 1u32.encode(), DispatchTime::At(4), None, 127, root(), call
+ ).unwrap(), (4, 0));
+
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+
+ assert_eq!(Scheduler::do_reschedule_named(1u32.encode(), DispatchTime::At(6)).unwrap(), (6, 0));
+
+ assert_noop!(Scheduler::do_reschedule_named(1u32.encode(), DispatchTime::At(6)), Error::<Test>::RescheduleNoChange);
+
+ run_to_block(4);
+ assert!(logger::log().is_empty());
+
+ run_to_block(6);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn reschedule_named_perodic_works() {
+ new_test_ext().execute_with(|| {
+ let call = Call::Logger(logger::Call::log(42, 1000));
+ assert!(!<Test as frame_system::Config>::BaseCallFilter::filter(&call));
+ assert_eq!(Scheduler::do_schedule_named(
+ 1u32.encode(), DispatchTime::At(4), Some((3, 3)), 127, root(), call
+ ).unwrap(), (4, 0));
+
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+
+ assert_eq!(Scheduler::do_reschedule_named(1u32.encode(), DispatchTime::At(5)).unwrap(), (5, 0));
+ assert_eq!(Scheduler::do_reschedule_named(1u32.encode(), DispatchTime::At(6)).unwrap(), (6, 0));
+
+ run_to_block(5);
+ assert!(logger::log().is_empty());
+
+ run_to_block(6);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+
+ assert_eq!(Scheduler::do_reschedule_named(1u32.encode(), DispatchTime::At(10)).unwrap(), (10, 0));
+
+ run_to_block(9);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+
+ run_to_block(10);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32)]);
+
+ run_to_block(13);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32), (root(), 42u32)]);
+
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 42u32), (root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn cancel_named_scheduling_works_with_normal_cancel() {
+ new_test_ext().execute_with(|| {
+ // at #4.
+ Scheduler::do_schedule_named(
+ 1u32.encode(), DispatchTime::At(4), None, 127, root(), Call::Logger(logger::Call::log(69, 1000))
+ ).unwrap();
+ let i = Scheduler::do_schedule(
+ DispatchTime::At(4), None, 127, root(), Call::Logger(logger::Call::log(42, 1000))
+ ).unwrap();
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+ assert_ok!(Scheduler::do_cancel_named(None, 1u32.encode()));
+ assert_ok!(Scheduler::do_cancel(None, i));
+ run_to_block(100);
+ assert!(logger::log().is_empty());
+ });
+ }
+
+ #[test]
+ fn cancel_named_periodic_scheduling_works() {
+ new_test_ext().execute_with(|| {
+ // at #4, every 3 blocks, 3 times.
+ Scheduler::do_schedule_named(
+ 1u32.encode(),
+ DispatchTime::At(4),
+ Some((3, 3)),
+ 127,
+ root(),
+ Call::Logger(logger::Call::log(42, 1000))
+ ).unwrap();
+ // same id results in error.
+ assert!(Scheduler::do_schedule_named(
+ 1u32.encode(),
+ DispatchTime::At(4),
+ None,
+ 127,
+ root(),
+ Call::Logger(logger::Call::log(69, 1000))
+ ).is_err());
+ // different id is ok.
+ Scheduler::do_schedule_named(
+ 2u32.encode(), DispatchTime::At(8), None, 127, root(), Call::Logger(logger::Call::log(69, 1000))
+ ).unwrap();
+ run_to_block(3);
+ assert!(logger::log().is_empty());
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(6);
+ assert_ok!(Scheduler::do_cancel_named(None, 1u32.encode()));
+ run_to_block(100);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 69u32)]);
+ });
+ }
+
+ #[test]
+ fn scheduler_respects_weight_limits() {
+ new_test_ext().execute_with(|| {
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 127,
+ root(),
+ Call::Logger(logger::Call::log(42, MaximumSchedulerWeight::get() / 2))
+ ));
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 127,
+ root(), Call::Logger(logger::Call::log(69, MaximumSchedulerWeight::get() / 2))
+ ));
+ // 69 and 42 do not fit together
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 42u32)]);
+ run_to_block(5);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 69u32)]);
+ });
+ }
+
+ #[test]
+ fn scheduler_respects_hard_deadlines_more() {
+ new_test_ext().execute_with(|| {
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 0,
+ root(),
+ Call::Logger(logger::Call::log(42, MaximumSchedulerWeight::get() / 2))
+ ));
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 0,
+ root(),
+ Call::Logger(logger::Call::log(69, MaximumSchedulerWeight::get() / 2))
+ ));
+ // With base weights, 69 and 42 should not fit together, but do because of hard deadlines
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 42u32), (root(), 69u32)]);
+ });
+ }
+
+ #[test]
+ fn scheduler_respects_priority_ordering() {
+ new_test_ext().execute_with(|| {
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 1,
+ root(),
+ Call::Logger(logger::Call::log(42, MaximumSchedulerWeight::get() / 2))
+ ));
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 0,
+ root(),
+ Call::Logger(logger::Call::log(69, MaximumSchedulerWeight::get() / 2))
+ ));
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 69u32), (root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn scheduler_respects_priority_ordering_with_soft_deadlines() {
+ new_test_ext().execute_with(|| {
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 255,
+ root(), Call::Logger(logger::Call::log(42, MaximumSchedulerWeight::get() / 3))
+ ));
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 127,
+ root(), Call::Logger(logger::Call::log(69, MaximumSchedulerWeight::get() / 2))
+ ));
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(4),
+ None,
+ 126,
+ root(), Call::Logger(logger::Call::log(2600, MaximumSchedulerWeight::get() / 2))
+ ));
+
+ // 2600 does not fit with 69 or 42, but has higher priority, so will go through
+ run_to_block(4);
+ assert_eq!(logger::log(), vec![(root(), 2600u32)]);
+ // 69 and 42 fit together
+ run_to_block(5);
+ assert_eq!(logger::log(), vec![(root(), 2600u32), (root(), 69u32), (root(), 42u32)]);
+ });
+ }
+
+ #[test]
+ fn on_initialize_weight_is_correct() {
+ new_test_ext().execute_with(|| {
+ let base_weight: Weight = <Test as frame_system::Config>::DbWeight::get().reads_writes(1, 2);
+ let base_multiplier = 0;
+ let named_multiplier = <Test as frame_system::Config>::DbWeight::get().writes(1);
+ let periodic_multiplier = <Test as frame_system::Config>::DbWeight::get().reads_writes(1, 1);
+
+ // Named
+ assert_ok!(
+ Scheduler::do_schedule_named(
+ 1u32.encode(), DispatchTime::At(1), None, 255, root(),
+ Call::Logger(logger::Call::log(3, MaximumSchedulerWeight::get() / 3))
+ )
+ );
+ // Anon Periodic
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(1),
+ Some((1000, 3)),
+ 128,
+ root(),
+ Call::Logger(logger::Call::log(42, MaximumSchedulerWeight::get() / 3))
+ ));
+ // Anon
+ assert_ok!(Scheduler::do_schedule(
+ DispatchTime::At(1),
+ None,
+ 127,
+ root(),
+ Call::Logger(logger::Call::log(69, MaximumSchedulerWeight::get() / 2))
+ ));
+ // Named Periodic
+ assert_ok!(Scheduler::do_schedule_named(
+ 2u32.encode(), DispatchTime::At(1), Some((1000, 3)), 126, root(),
+ Call::Logger(logger::Call::log(2600, MaximumSchedulerWeight::get() / 2)))
+ );
+
+ // Will include the named periodic only
+ let actual_weight = Scheduler::on_initialize(1);
+ let call_weight = MaximumSchedulerWeight::get() / 2;
+ assert_eq!(
+ actual_weight, call_weight + base_weight + base_multiplier + named_multiplier + periodic_multiplier
+ );
+ assert_eq!(logger::log(), vec![(root(), 2600u32)]);
+
+ // Will include anon and anon periodic
+ let actual_weight = Scheduler::on_initialize(2);
+ let call_weight = MaximumSchedulerWeight::get() / 2 + MaximumSchedulerWeight::get() / 3;
+ assert_eq!(actual_weight, call_weight + base_weight + base_multiplier * 2 + periodic_multiplier);
+ assert_eq!(logger::log(), vec![(root(), 2600u32), (root(), 69u32), (root(), 42u32)]);
+
+ // Will include named only
+ let actual_weight = Scheduler::on_initialize(3);
+ let call_weight = MaximumSchedulerWeight::get() / 3;
+ assert_eq!(actual_weight, call_weight + base_weight + base_multiplier + named_multiplier);
+ assert_eq!(logger::log(), vec![(root(), 2600u32), (root(), 69u32), (root(), 42u32), (root(), 3u32)]);
+
+ // Will contain none
+ let actual_weight = Scheduler::on_initialize(4);
+ assert_eq!(actual_weight, 0);
+ });
+ }
+
+ #[test]
+ fn root_calls_works() {
+ new_test_ext().execute_with(|| {
+ let call = Box::new(Call::Logger(logger::Call::log(69, 1000)));
+ let call2 = Box::new(Call::Logger(logger::Call::log(42, 1000)));
+ assert_ok!(Scheduler::schedule_named(Origin::root(), 1u32.encode(), 4, None, 127, call));
+ assert_ok!(Scheduler::schedule(Origin::root(), 4, None, 127, call2));
+ run_to_block(3);
+ // Scheduled calls are in the agenda.
+ assert_eq!(Agenda::<Test>::get(4).len(), 2);
+ assert!(logger::log().is_empty());
+ assert_ok!(Scheduler::cancel_named(Origin::root(), 1u32.encode()));
+ assert_ok!(Scheduler::cancel(Origin::root(), 4, 1));
+ // Scheduled calls are made NONE, so should not effect state
+ run_to_block(100);
+ assert!(logger::log().is_empty());
+ });
+ }
+
+ #[test]
+ fn fails_to_schedule_task_in_the_past() {
+ new_test_ext().execute_with(|| {
+ run_to_block(3);
+
+ let call = Box::new(Call::Logger(logger::Call::log(69, 1000)));
+ let call2 = Box::new(Call::Logger(logger::Call::log(42, 1000)));
+
+ assert_err!(
+ Scheduler::schedule_named(Origin::root(), 1u32.encode(), 2, None, 127, call),
+ Error::<Test>::TargetBlockNumberInPast,
+ );
+
+ assert_err!(
+ Scheduler::schedule(Origin::root(), 2, None, 127, call2.clone()),
+ Error::<Test>::TargetBlockNumberInPast,
+ );
+
+ assert_err!(
+ Scheduler::schedule(Origin::root(), 3, None, 127, call2),
+ Error::<Test>::TargetBlockNumberInPast,
+ );
+ });
+ }
+
+ #[test]
+ fn should_use_orign() {
+ new_test_ext().execute_with(|| {
+ let call = Box::new(Call::Logger(logger::Call::log(69, 1000)));
+ let call2 = Box::new(Call::Logger(logger::Call::log(42, 1000)));
+ assert_ok!(
+ Scheduler::schedule_named(system::RawOrigin::Signed(1).into(), 1u32.encode(), 4, None, 127, call)
+ );
+ assert_ok!(Scheduler::schedule(system::RawOrigin::Signed(1).into(), 4, None, 127, call2));
+ run_to_block(3);
+ // Scheduled calls are in the agenda.
+ assert_eq!(Agenda::<Test>::get(4).len(), 2);
+ assert!(logger::log().is_empty());
+ assert_ok!(Scheduler::cancel_named(system::RawOrigin::Signed(1).into(), 1u32.encode()));
+ assert_ok!(Scheduler::cancel(system::RawOrigin::Signed(1).into(), 4, 1));
+ // Scheduled calls are made NONE, so should not effect state
+ run_to_block(100);
+ assert!(logger::log().is_empty());
+ });
+ }
+
+ #[test]
+ fn should_check_orign() {
+ new_test_ext().execute_with(|| {
+ let call = Box::new(Call::Logger(logger::Call::log(69, 1000)));
+ let call2 = Box::new(Call::Logger(logger::Call::log(42, 1000)));
+ assert_noop!(
+ Scheduler::schedule_named(system::RawOrigin::Signed(2).into(), 1u32.encode(), 4, None, 127, call),
+ BadOrigin
+ );
+ assert_noop!(Scheduler::schedule(system::RawOrigin::Signed(2).into(), 4, None, 127, call2), BadOrigin);
+ });
+ }
+
+ #[test]
+ fn should_check_orign_for_cancel() {
+ new_test_ext().execute_with(|| {
+ let call = Box::new(Call::Logger(logger::Call::log_without_filter(69, 1000)));
+ let call2 = Box::new(Call::Logger(logger::Call::log_without_filter(42, 1000)));
+ assert_ok!(
+ Scheduler::schedule_named(system::RawOrigin::Signed(1).into(), 1u32.encode(), 4, None, 127, call)
+ );
+ assert_ok!(Scheduler::schedule(system::RawOrigin::Signed(1).into(), 4, None, 127, call2));
+ run_to_block(3);
+ // Scheduled calls are in the agenda.
+ assert_eq!(Agenda::<Test>::get(4).len(), 2);
+ assert!(logger::log().is_empty());
+ assert_noop!(Scheduler::cancel_named(system::RawOrigin::Signed(2).into(), 1u32.encode()), BadOrigin);
+ assert_noop!(Scheduler::cancel(system::RawOrigin::Signed(2).into(), 4, 1), BadOrigin);
+ assert_noop!(Scheduler::cancel_named(system::RawOrigin::Root.into(), 1u32.encode()), BadOrigin);
+ assert_noop!(Scheduler::cancel(system::RawOrigin::Root.into(), 4, 1), BadOrigin);
+ run_to_block(5);
+ assert_eq!(
+ logger::log(),
+ vec![(system::RawOrigin::Signed(1).into(), 69u32), (system::RawOrigin::Signed(1).into(), 42u32)]
+ );
+ });
+ }
+
+ #[test]
+ fn migration_to_v2_works() {
+ new_test_ext().execute_with(|| {
+ for i in 0..3u64 {
+ let k = i.twox_64_concat();
+ let old = vec![
+ Some(ScheduledV1 {
+ maybe_id: None,
+ priority: i as u8 + 10,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ }),
+ None,
+ Some(ScheduledV1 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ }),
+ ];
+ frame_support::migration::put_storage_value(
+ b"Scheduler",
+ b"Agenda",
+ &k,
+ old,
+ );
+ }
+
+ assert_eq!(StorageVersion::get(), Releases::V1);
+
+ assert!(Scheduler::migrate_v1_to_t2());
+
+ assert_eq_uvec!(Agenda::<Test>::iter().collect::<Vec<_>>(), vec![
+ (
+ 0,
+ vec![
+ Some(ScheduledV2 {
+ maybe_id: None,
+ priority: 10,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]),
+ (
+ 1,
+ vec![
+ Some(ScheduledV2 {
+ maybe_id: None,
+ priority: 11,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]
+ ),
+ (
+ 2,
+ vec![
+ Some(ScheduledV2 {
+ maybe_id: None,
+ priority: 12,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: root(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]
+ )
+ ]);
+
+ assert_eq!(StorageVersion::get(), Releases::V2);
+ });
+ }
+
+ #[test]
+ fn test_migrate_origin() {
+ new_test_ext().execute_with(|| {
+ for i in 0..3u64 {
+ let k = i.twox_64_concat();
+ let old: Vec<Option<Scheduled<_, _, u32, u64>>> = vec![
+ Some(Scheduled {
+ maybe_id: None,
+ priority: i as u8 + 10,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ origin: 3u32,
+ maybe_periodic: None,
+ _phantom: Default::default(),
+ }),
+ None,
+ Some(Scheduled {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ origin: 2u32,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ _phantom: Default::default(),
+ }),
+ ];
+ frame_support::migration::put_storage_value(
+ b"Scheduler",
+ b"Agenda",
+ &k,
+ old,
+ );
+ }
+
+ impl Into<OriginCaller> for u32 {
+ fn into(self) -> OriginCaller {
+ match self {
+ 3u32 => system::RawOrigin::Root.into(),
+ 2u32 => system::RawOrigin::None.into(),
+ _ => unreachable!("test make no use of it"),
+ }
+ }
+ }
+
+ Scheduler::migrate_origin::<u32>();
+
+ assert_eq_uvec!(Agenda::<Test>::iter().collect::<Vec<_>>(), vec![
+ (
+ 0,
+ vec![
+ Some(ScheduledV2::<_, _, OriginCaller, u64> {
+ maybe_id: None,
+ priority: 10,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: system::RawOrigin::Root.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: system::RawOrigin::None.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]),
+ (
+ 1,
+ vec![
+ Some(ScheduledV2 {
+ maybe_id: None,
+ priority: 11,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: system::RawOrigin::Root.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: system::RawOrigin::None.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]
+ ),
+ (
+ 2,
+ vec![
+ Some(ScheduledV2 {
+ maybe_id: None,
+ priority: 12,
+ call: Call::Logger(logger::Call::log(96, 100)),
+ maybe_periodic: None,
+ origin: system::RawOrigin::Root.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ None,
+ Some(ScheduledV2 {
+ maybe_id: Some(b"test".to_vec()),
+ priority: 123,
+ call: Call::Logger(logger::Call::log(69, 1000)),
+ maybe_periodic: Some((456u64, 10)),
+ origin: system::RawOrigin::None.into(),
+ _phantom: PhantomData::<u64>::default(),
+ }),
+ ]
+ )
+ ]);
+ });
+ }
+}
pallets/scheduler/src/weights.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/scheduler/src/weights.rs
@@ -0,0 +1,118 @@
+// This file is part of Substrate.
+
+// Copyright (C) 2020-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.
+
+//! Weights for pallet_scheduler
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 2.0.0
+//! DATE: 2020-10-27, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: [], HIGH RANGE: []
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
+
+// Executed Command:
+// target/release/substrate
+// benchmark
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=pallet_scheduler
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./frame/scheduler/src/weights.rs
+// --template=./.maintain/frame-weight-template.hbs
+
+
+#![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_scheduler.
+pub trait WeightInfo {
+ fn schedule(s: u32, ) -> Weight;
+ fn cancel(s: u32, ) -> Weight;
+ fn schedule_named(s: u32, ) -> Weight;
+ fn cancel_named(s: u32, ) -> Weight;
+
+}
+
+/// Weights for pallet_scheduler using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+ fn schedule(s: u32, ) -> Weight {
+ (35_029_000 as Weight)
+ .saturating_add((77_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(T::DbWeight::get().reads(1 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
+
+ }
+ fn cancel(s: u32, ) -> Weight {
+ (31_419_000 as Weight)
+ .saturating_add((4_015_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(T::DbWeight::get().reads(1 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
+
+ }
+ fn schedule_named(s: u32, ) -> Weight {
+ (44_752_000 as Weight)
+ .saturating_add((123_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(T::DbWeight::get().reads(2 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
+
+ }
+ fn cancel_named(s: u32, ) -> Weight {
+ (35_712_000 as Weight)
+ .saturating_add((4_008_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(T::DbWeight::get().reads(2 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
+
+ }
+
+}
+
+// For backwards compatibility and tests
+impl WeightInfo for () {
+ fn schedule(s: u32, ) -> Weight {
+ (35_029_000 as Weight)
+ .saturating_add((77_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(RocksDbWeight::get().reads(1 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
+
+ }
+ fn cancel(s: u32, ) -> Weight {
+ (31_419_000 as Weight)
+ .saturating_add((4_015_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(RocksDbWeight::get().reads(1 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
+
+ }
+ fn schedule_named(s: u32, ) -> Weight {
+ (44_752_000 as Weight)
+ .saturating_add((123_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(RocksDbWeight::get().reads(2 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
+
+ }
+ fn cancel_named(s: u32, ) -> Weight {
+ (35_712_000 as Weight)
+ .saturating_add((4_008_000 as Weight).saturating_mul(s as Weight))
+ .saturating_add(RocksDbWeight::get().reads(2 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
+
+ }
+
+}
primitives/Cargo.tomldiffbeforeafterboth--- /dev/null
+++ b/primitives/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "nft-data-structs"
+authors = ['Substrate DevHub <https://github.com/substrate-developer-hub>']
+description = "Nft data structs definitions"
+edition = "2018"
+license = 'GPL-3.0'
+homepage = "https://substrate.dev"
+repository = 'https://github.com/clover-network/clover'
+version = '0.9.0'
+
+[dependencies]
+codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ['derive'] }
+serde = { version = "1.0.119", optional = true, features = ['derive'] }
+frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+pallet-contracts = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-core = { version = "3.0.0", default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+sp-runtime = { version = "3.0.0", default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.3' }
+
+[features]
+default = ["std"]
+std = [
+ "serde",
+ "codec/std",
+ "frame-system/std",
+ "frame-support/std",
+ "sp-runtime/std",
+ "sp-core/std",
+ "pallet-contracts/std",
+]
\ No newline at end of file
primitives/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/primitives/src/lib.rs
@@ -0,0 +1,285 @@
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+pub use serde::{Serealize, Deserialize};
+
+use frame_system;
+use sp_runtime::sp_std::prelude::Vec;
+use codec::{Decode, Encode};
+pub use frame_support::{
+ construct_runtime, decl_event, decl_module, decl_storage, decl_error,
+ dispatch::DispatchResult,
+ ensure, fail, parameter_types,
+ traits::{
+ Currency, ExistenceRequirement, Get, Imbalance, KeyOwnerProofSystem, OnUnbalanced,
+ Randomness, IsSubType, WithdrawReasons,
+ },
+ weights::{
+ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
+ DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
+ WeightToFeePolynomial, DispatchClass,
+ },
+ StorageValue,
+ transactional,
+};
+
+pub const MAX_DECIMAL_POINTS: DecimalPoints = 30;
+pub const MAX_REFUNGIBLE_PIECES: u128 = 1_000_000_000_000_000_000_000;
+pub const MAX_SPONSOR_TIMEOUT: u32 = 10_368_000;
+pub const MAX_TOKEN_OWNERSHIP: u32 = 10_000_000;
+
+pub type CollectionId = u32;
+pub type TokenId = u32;
+pub type DecimalPoints = u8;
+
+#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum CollectionMode {
+ Invalid,
+ NFT,
+ // decimal points
+ Fungible(DecimalPoints),
+ ReFungible,
+}
+
+impl Default for CollectionMode {
+ fn default() -> Self {
+ Self::Invalid
+ }
+}
+
+impl Into<u8> for CollectionMode {
+ fn into(self) -> u8 {
+ match self {
+ CollectionMode::Invalid => 0,
+ CollectionMode::NFT => 1,
+ CollectionMode::Fungible(_) => 2,
+ CollectionMode::ReFungible => 3,
+ }
+ }
+}
+
+pub trait SponsoringResolve<AccountId, Call> {
+ fn resolve(
+ who: &AccountId,
+ call: &Call) -> Option<AccountId>;
+}
+
+#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum AccessMode {
+ Normal,
+ WhiteList,
+}
+impl Default for AccessMode {
+ fn default() -> Self {
+ Self::Normal
+ }
+}
+
+#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum SchemaVersion {
+ ImageURL,
+ Unique,
+}
+impl Default for SchemaVersion {
+ fn default() -> Self {
+ Self::ImageURL
+ }
+}
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct Ownership<AccountId> {
+ pub owner: AccountId,
+ pub fraction: u128,
+}
+
+#[derive(Encode, Decode, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum SponsorshipState<AccountId> {
+ /// The fees are applied to the transaction sender
+ Disabled,
+ Unconfirmed(AccountId),
+ /// Transactions are sponsored by specified account
+ Confirmed(AccountId),
+}
+
+impl<AccountId> SponsorshipState<AccountId> {
+ pub fn sponsor(&self) -> Option<&AccountId> {
+ match self {
+ Self::Confirmed(sponsor) => Some(sponsor),
+ _ => None,
+ }
+ }
+
+ pub fn pending_sponsor(&self) -> Option<&AccountId> {
+ match self {
+ Self::Unconfirmed(sponsor) | Self::Confirmed(sponsor) => Some(sponsor),
+ _ => None,
+ }
+ }
+
+ pub fn confirmed(&self) -> bool {
+ matches!(self, Self::Confirmed(_))
+ }
+}
+
+impl<T> Default for SponsorshipState<T> {
+ fn default() -> Self {
+ Self::Disabled
+ }
+}
+
+#[derive(Encode, Decode, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct Collection<T: frame_system::Config> {
+ pub owner: T::AccountId,
+ pub mode: CollectionMode,
+ pub access: AccessMode,
+ pub decimal_points: DecimalPoints,
+ pub name: Vec<u16>, // 64 include null escape char
+ pub description: Vec<u16>, // 256 include null escape char
+ pub token_prefix: Vec<u8>, // 16 include null escape char
+ pub mint_mode: bool,
+ pub offchain_schema: Vec<u8>,
+ pub schema_version: SchemaVersion,
+ pub sponsorship: SponsorshipState<T::AccountId>,
+ pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions
+ pub variable_on_chain_schema: Vec<u8>, //
+ pub const_on_chain_schema: Vec<u8>, //
+}
+
+#[derive(Encode, Decode, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct NftItemType<AccountId> {
+ pub owner: AccountId,
+ pub const_data: Vec<u8>,
+ pub variable_data: Vec<u8>,
+}
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct FungibleItemType {
+ pub value: u128,
+}
+
+#[derive(Encode, Decode, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct ReFungibleItemType<AccountId> {
+ pub owner: Vec<Ownership<AccountId>>,
+ pub const_data: Vec<u8>,
+ pub variable_data: Vec<u8>,
+}
+
+
+#[derive(Encode, Decode, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct CollectionLimits<BlockNumber: Encode + Decode> {
+ pub account_token_ownership_limit: u32,
+ pub sponsored_data_size: u32,
+ /// None - setVariableMetadata is not sponsored
+ /// Some(v) - setVariableMetadata is sponsored
+ /// if there is v block between txs
+ pub sponsored_data_rate_limit: Option<BlockNumber>,
+ pub token_limit: u32,
+
+ // Timeouts for item types in passed blocks
+ pub sponsor_transfer_timeout: u32,
+ pub owner_can_transfer: bool,
+ pub owner_can_destroy: bool,
+}
+
+impl<BlockNumber: Encode + Decode> Default for CollectionLimits<BlockNumber> {
+ fn default() -> Self {
+ Self {
+ account_token_ownership_limit: 10_000_000,
+ token_limit: u32::max_value(),
+ sponsored_data_size: u32::MAX,
+ sponsored_data_rate_limit: None,
+ sponsor_transfer_timeout: 14400,
+ owner_can_transfer: true,
+ owner_can_destroy: true
+ }
+ }
+}
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct ChainLimits {
+ pub collection_numbers_limit: u32,
+ pub account_token_ownership_limit: u32,
+ pub collections_admins_limit: u64,
+ pub custom_data_limit: u32,
+
+ // Timeouts for item types in passed blocks
+ pub nft_sponsor_transfer_timeout: u32,
+ pub fungible_sponsor_transfer_timeout: u32,
+ pub refungible_sponsor_transfer_timeout: u32,
+
+ // Schema limits
+ pub offchain_schema_limit: u32,
+ pub variable_on_chain_schema_limit: u32,
+ pub const_on_chain_schema_limit: u32,
+}
+
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct CreateNftData {
+ pub const_data: Vec<u8>,
+ pub variable_data: Vec<u8>,
+}
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct CreateFungibleData {
+ pub value: u128,
+}
+
+#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub struct CreateReFungibleData {
+ pub const_data: Vec<u8>,
+ pub variable_data: Vec<u8>,
+ pub pieces: u128,
+}
+
+#[derive(Encode, Decode, Debug, Clone, PartialEq)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum CreateItemData {
+ NFT(CreateNftData),
+ Fungible(CreateFungibleData),
+ ReFungible(CreateReFungibleData),
+}
+
+impl CreateItemData {
+ pub fn len(&self) -> usize {
+ let len = match self {
+ CreateItemData::NFT(data) => data.variable_data.len() + data.const_data.len(),
+ CreateItemData::ReFungible(data) => data.variable_data.len() + data.const_data.len(),
+ _ => 0
+ };
+
+ return len;
+ }
+}
+
+impl From<CreateNftData> for CreateItemData {
+ fn from(item: CreateNftData) -> Self {
+ CreateItemData::NFT(item)
+ }
+}
+
+impl From<CreateReFungibleData> for CreateItemData {
+ fn from(item: CreateReFungibleData) -> Self {
+ CreateItemData::ReFungible(item)
+ }
+}
+
+impl From<CreateFungibleData> for CreateItemData {
+ fn from(item: CreateFungibleData) -> Self {
+ CreateItemData::Fungible(item)
+ }
+}
\ No newline at end of file
runtime/Cargo.tomldiffbeforeafterboth--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -1,70 +1,20 @@
+################################################################################
+# Package
+
[package]
-authors = ['UseTech Professional <https://usetech.com/blockchain>']
+authors = ['Unique Network <support@uniquenetwork.io>']
+build = 'build.rs'
+description = 'Substrate node nft'
edition = '2018'
-homepage = 'https://substrate.io'
+homepage = 'https://unique.network'
license = 'All Rights Reserved'
name = 'nft-runtime'
-repository = 'https://github.com/usetech-llc/nft_parachain/'
+repository = 'https://github.com/usetech-llc/nft_private/'
version = '3.0.0'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
-
-[build-dependencies]
-substrate-wasm-builder = '4.0.0'
-
-# alias "parity-scale-code" to "codec"
-[dependencies.codec]
-default-features = false
-features = ['derive']
-package = 'parity-scale-codec'
-version = '2.0.0'
-
-[dependencies]
-hex-literal = { optional = true, version = '0.3.1' }
-serde = { features = ['derive'], optional = true, version = '1.0.119' }
-# local dependencies
-pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
-pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }
-
-# Substrate dependencies
-frame-benchmarking = { default-features = false, optional = true, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-executive = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-support = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-system = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-system-benchmarking = { default-features = false, optional = true, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-frame-system-rpc-runtime-api = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-aura = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-balances = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-contracts = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-contracts-primitives = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-contracts-rpc-runtime-api = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-evm = { default-features = false, version = "4.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-pallet-ethereum = { default-features = false, version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-pallet-grandpa = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-randomness-collective-flip = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-sudo = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-timestamp = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-transaction-payment = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-treasury = { default-features = false, version = "3.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-pallet-vesting = { default-features = false, version = "3.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-fp-rpc = { default-features = false, version = "2.0.0", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
-sp-arithmetic = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-api = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-block-builder = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-consensus-aura = { default-features = false, version = '0.9.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-core = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-inherents = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-offchain = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-runtime = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-session = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-std = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-transaction-pool = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-sp-version = { default-features = false, version = '3.0.0', git = "https://github.com/paritytech/substrate.git", branch = "frontier" }
-smallvec = "1.4.1"
-
[features]
default = ['std']
runtime-benchmarks = [
@@ -81,17 +31,21 @@
]
std = [
'codec/std',
- 'serde',
+ 'cumulus-pallet-aura-ext/std',
+ 'cumulus-pallet-parachain-system/std',
+ 'cumulus-pallet-xcm/std',
+ 'cumulus-pallet-xcmp-queue/std',
+ 'cumulus-primitives-core/std',
+ 'cumulus-primitives-utility/std',
'frame-executive/std',
'frame-support/std',
'frame-system/std',
'frame-system-rpc-runtime-api/std',
- 'pallet-aura/std',
+ 'pallet-aura/std',
'pallet-balances/std',
'pallet-contracts/std',
'pallet-contracts-primitives/std',
'pallet-contracts-rpc-runtime-api/std',
- 'pallet-grandpa/std',
'pallet-randomness-collective-flip/std',
'pallet-sudo/std',
'pallet-timestamp/std',
@@ -101,20 +55,332 @@
'pallet-vesting/std',
'pallet-evm/std',
'pallet-ethereum/std',
-
+ 'fp-rpc/std',
+ 'parachain-info/std',
+ 'serde',
'pallet-inflation/std',
'pallet-nft/std',
- 'fp-rpc/std',
+ 'pallet-scheduler/std',
+ 'pallet-nft-charge-transaction/std',
+ 'pallet-nft-transaction-payment/std',
+ 'nft-data-structs/std',
'sp-api/std',
'sp-block-builder/std',
- 'sp-consensus-aura/std',
+ "sp-consensus-aura/std",
'sp-core/std',
'sp-inherents/std',
+ 'sp-io/std',
'sp-offchain/std',
'sp-runtime/std',
'sp-session/std',
'sp-std/std',
'sp-transaction-pool/std',
'sp-version/std',
+ 'xcm/std',
+ 'xcm-builder/std',
+ 'xcm-executor/std',
+]
+
+################################################################################
+# Substrate Dependencies
+
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '2.0.0'
+
+[dependencies.frame-benchmarking]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+optional = true
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-executive]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-support]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-system]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-system-benchmarking]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+optional = true
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.frame-system-rpc-runtime-api]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.hex-literal]
+optional = true
+version = '0.3.1'
+
+[dependencies.serde]
+features = ['derive']
+optional = true
+version = '1.0.119'
+
+[dependencies.pallet-aura]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-balances]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+# Contracts specific packages
+[dependencies.pallet-contracts]
+git = 'https://github.com/paritytech/substrate.git'
+default-features = false
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-contracts-primitives]
+git = 'https://github.com/paritytech/substrate.git'
+default-features = false
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-contracts-rpc-runtime-api]
+git = 'https://github.com/paritytech/substrate.git'
+default-features = false
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-randomness-collective-flip]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-sudo]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-timestamp]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-transaction-payment]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-transaction-payment-rpc-runtime-api]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-treasury]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.pallet-vesting]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-arithmetic]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-api]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-block-builder]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-core]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-consensus-aura]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '0.9.0'
+
+[dependencies.sp-inherents]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-io]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-offchain]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-runtime]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-session]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-std]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-transaction-pool]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.sp-version]
+default-features = false
+git = 'https://github.com/paritytech/substrate.git'
+branch = 'polkadot-v0.9.3'
+version = '3.0.0'
+
+[dependencies.smallvec]
+version = '1.4.1'
+
+################################################################################
+# Cumulus dependencies
+
+[dependencies.parachain-info]
+default-features = false
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+version = '0.1.0'
+
+[dependencies.cumulus-pallet-aura-ext]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+[dependencies.cumulus-pallet-parachain-system]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+[dependencies.cumulus-primitives-core]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
-]
+[dependencies.cumulus-pallet-xcm]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+[dependencies.cumulus-pallet-dmp-queue]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+[dependencies.cumulus-pallet-xcmp-queue]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+[dependencies.cumulus-primitives-utility]
+git = 'https://github.com/paritytech/cumulus.git'
+branch = 'polkadot-v0.9.3'
+default-features = false
+
+################################################################################
+# Polkadot dependencies
+
+[dependencies.polkadot-parachain]
+git = 'https://github.com/paritytech/polkadot'
+branch = 'release-v0.9.3'
+default-features = false
+
+[dependencies.xcm]
+git = 'https://github.com/paritytech/polkadot'
+branch = 'release-v0.9.3'
+default-features = false
+
+[dependencies.xcm-builder]
+git = 'https://github.com/paritytech/polkadot'
+branch = 'release-v0.9.3'
+default-features = false
+
+[dependencies.xcm-executor]
+git = 'https://github.com/paritytech/polkadot'
+branch = 'release-v0.9.3'
+default-features = false
+
+[dependencies.pallet-xcm]
+git = 'https://github.com/paritytech/polkadot'
+branch = 'release-v0.9.3'
+default-features = false
+
+
+
+################################################################################
+# local dependencies
+
+[dependencies]
+pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
+pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }
+nft-data-structs = { path = '../primitives', default-features = false, version = '0.9.0' }
+pallet-scheduler = { path = '../pallets/scheduler', default-features = false, version = '3.0.0' }
+pallet-nft-transaction-payment = { path = '../pallets/nft-transaction-payment', default-features = false, version = '3.0.0' }
+pallet-nft-charge-transaction = { path = '../pallets/nft-charge-transaction', default-features = false, version = '3.0.0' }
+
+pallet-evm = { default-features = false, version = "4.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
+pallet-ethereum = { default-features = false, version = "2.0.0-dev", git = "https://github.com/usetech-llc/frontier.git", branch = "injected-transactions" }
+
+################################################################################
+# Build Dependencies
+
+[build-dependencies]
+substrate-wasm-builder = '4.0.0'
\ No newline at end of file
runtime/src/chain_extension.rsdiffbeforeafterboth--- a/runtime/src/chain_extension.rs
+++ b/runtime/src/chain_extension.rs
@@ -18,6 +18,8 @@
extern crate pallet_nft;
pub use pallet_nft::*;
use pallet_nft::CrossAccountId;
+use nft_data_structs::*;
+
use crate::Vec;
/// Create item parameters
@@ -80,7 +82,7 @@
pub type NftWeightInfoOf<C> = <C as pallet_nft::Config>::WeightInfo;
-impl<C: Config> ChainExtension<C> for NFTExtension {
+impl<C: Config + pallet_contracts::Config> ChainExtension<C> for NFTExtension {
fn call<E: Ext>(func_id: u32, env: Environment<E, InitState>) -> Result<RetVal, DispatchError>
where
E: Ext<T = C>,
runtime/src/lib.rsdiffbeforeafterboth--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -7,60 +7,61 @@
#![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 = "1024"]
// Make the WASM binary available.
#[cfg(feature = "std")]
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
-use pallet_grandpa::fg_primitives;
-use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};
use sp_api::impl_runtime_apis;
-use sp_consensus_aura::sr25519::AuthorityId as AuraId;
-use sp_core::{ crypto::KeyTypeId, crypto::Public, OpaqueMetadata, H160, U256 };
+use sp_core::{ crypto::KeyTypeId, OpaqueMetadata };
+// #[cfg(any(feature = "std", test))]
+// pub use sp_runtime::BuildStorage;
+
use sp_runtime::{
- Permill, Perbill, Percent,
- ModuleId,
- create_runtime_str, generic, impl_opaque_keys,
- traits::{
- Convert, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount,
- IdentityLookup, NumberFor, Verify, AccountIdConversion,
- },
- transaction_validity::{TransactionSource, TransactionValidity},
- ApplyExtrinsicResult, MultiSignature,
+ Permill, Perbill, Percent,
+ create_runtime_str, generic, impl_opaque_keys,
+ traits::{
+ AccountIdLookup, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount,
+ Verify, AccountIdConversion,
+ },
+ transaction_validity::{TransactionSource, TransactionValidity},
+ ApplyExtrinsicResult, MultiSignature,
};
+
+use sp_std::prelude::*;
+
#[cfg(feature = "std")]
use sp_version::NativeVersion;
use sp_version::RuntimeVersion;
-pub use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment, CurrencyAdapter, FeeDetails, RuntimeDispatchInfo};
+pub use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment, FeeDetails, RuntimeDispatchInfo};
// A few exports that help ease life for downstream crates.
pub use pallet_balances::Call as BalancesCall;
pub use pallet_evm::{EnsureAddressTruncated, HashedAddressMapping, Runner};
-pub use pallet_contracts::{Schedule as ContractsSchedule };
pub use frame_support::{
- construct_runtime,
- dispatch::DispatchResult,
- parameter_types,
- StorageValue,
- traits::{
- Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,
- LockIdentifier, FindAuthor,
- },
- weights::{
- constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
- DispatchClass, DispatchInfo, GetDispatchInfo, Pays, PostDispatchInfo, Weight,
- WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients
- },
- ConsensusEngineId,
+ construct_runtime,
+ match_type,
+ dispatch::DispatchResult,
+ PalletId,
+ parameter_types,
+ StorageValue,
+ traits::{
+ All, Currency, ExistenceRequirement, Get, IsInVec, KeyOwnerProofSystem, LockIdentifier, OnUnbalanced, Randomness
+ },
+ weights::{
+ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
+ DispatchClass, DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
+ WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients
+ },
};
+use nft_data_structs::*;
use pallet_contracts::weights::WeightInfo;
// #[cfg(any(feature = "std", test))]
use frame_system::{
- self as system,
- EnsureRoot,
+ self as system,
+ EnsureRoot, EnsureSigned,
limits::{BlockWeights, BlockLength},
};
-use sp_std::{prelude::*, marker::PhantomData};
use sp_arithmetic::{traits::{BaseArithmetic, Unsigned}};
use smallvec::smallvec;
use codec::{Encode, Decode};
@@ -68,38 +69,44 @@
use fp_rpc::TransactionStatus;
use sp_core::H256;
-pub use pallet_timestamp::Call as TimestampCall;
+use sp_runtime::{
+ traits::{
+ Dispatchable,
+ },
+};
+use pallet_contracts::chain_extension::UncheckedFrom;
-mod chain_extension;
-use crate::chain_extension::{ NFTExtension, Imbalance };
-/// Struct that handles the conversion of Balance -> `u64`. This is used for
-/// staking's election calculation.
-pub struct CurrencyToVoteHandler;
+pub use pallet_timestamp::Call as TimestampCall;
+pub use sp_consensus_aura::sr25519::AuthorityId as AuraId;
-impl CurrencyToVoteHandler {
- fn factor() -> Balance {
- (Balances::total_issuance() / u64::max_value() as Balance).max(1)
- }
-}
+// Polkadot imports
+use pallet_xcm::XcmPassthrough;
+use polkadot_parachain::primitives::Sibling;
+use xcm::v0::Xcm;
+use xcm::v0::{BodyId, Junction::*, MultiAsset, MultiLocation, MultiLocation::*, NetworkId};
+use xcm_builder::{
+ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter,
+ EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset,
+ ParentAsSuperuser, ParentIsDefault, RelayChainAsNative, SiblingParachainAsNative,
+ SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32,
+ SovereignSignedViaLocation, TakeWeightCredit, UsingComponents,
+};
+use xcm_executor::{Config, XcmExecutor};
-impl Convert<Balance, u64> for CurrencyToVoteHandler {
- fn convert(x: Balance) -> u64 {
- (x / Self::factor()) as u64
- }
-}
-impl Convert<u128, Balance> for CurrencyToVoteHandler {
- fn convert(x: u128) -> Balance {
- x * Self::factor()
- }
-}
+mod chain_extension;
+use crate::chain_extension::{ NFTExtension, Imbalance };
/// Re-export a nft pallet
/// TODO: Check this re-export. Is this safe and good style?
extern crate pallet_nft;
pub use pallet_nft::*;
+/// Reimport pallet inflation
+extern crate pallet_inflation;
+pub use pallet_inflation::*;
+
/// An index to a block.
pub type BlockNumber = u32;
@@ -137,19 +144,16 @@
pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic;
- /// Opaque block header type.
- pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
- /// Opaque block type.
- pub type Block = generic::Block<Header, UncheckedExtrinsic>;
- /// Opaque block identifier type.
- pub type BlockId = generic::BlockId<Block>;
+ /// Opaque block type.
+ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
+ pub type SessionHandlers = ();
+
impl_opaque_keys! {
- pub struct SessionKeys {
+ pub struct SessionKeys {
pub aura: Aura,
- pub grandpa: Grandpa,
}
- }
+ }
}
/// This runtime version.
@@ -163,7 +167,7 @@
transaction_version: 1,
};
-pub const MILLISECS_PER_BLOCK: u64 = 6000;
+pub const MILLISECS_PER_BLOCK: u64 = 12000;
pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;
@@ -172,52 +176,21 @@
pub const HOURS: BlockNumber = MINUTES * 60;
pub const DAYS: BlockNumber = HOURS * 24;
+#[derive(codec::Encode, codec::Decode)]
+pub enum XCMPMessage<XAccountId, XBalance> {
+ /// Transfer tokens to the given account from the Parachain account.
+ TransferToken(XAccountId, XBalance),
+}
+
/// 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(),
- }
-}
-
-/// Provides a membership set with only the configured aura users
-pub struct ValiudatorsOnly<Runtime: pallet_aura::Config>(PhantomData<Runtime>);
-impl frame_support::traits::Contains<AccountId> for ValiudatorsOnly<Runtime> {
- fn contains(t: &AccountId) -> bool {
- let arr: [u8; 32] = *t.as_ref();
- let raw_key: Vec<u8> = Vec::from(arr);
-
- match pallet_aura::Module::<Runtime>::authorities().iter().find(|auth| auth.to_raw_vec() == raw_key) {
- Some(_) => true,
- None => false,
- }
- }
- fn sorted_members() -> Vec<AccountId> {
- let mut members: Vec<AccountId> = Vec::new();
- for auth in pallet_aura::Module::<Runtime>::authorities() {
- let mut arr: [u8; 32] = Default::default();
- let bor_arr = auth.clone().to_raw_vec();
- let slice = bor_arr.as_slice();
- arr.copy_from_slice(slice);
- members.push(AccountId::from(arr));
- }
- members
- }
- fn count() -> usize {
- pallet_aura::Module::<Runtime>::authorities().len()
}
}
-impl frame_support::traits::ContainsLengthBound for ValiudatorsOnly<Runtime> {
- fn min_len() -> usize {
- 1
- }
- fn max_len() -> usize {
- 100
- }
-}
-
type NegativeImbalance = <Balances as Currency<AccountId>>::NegativeImbalance;
pub struct DealWithFees;
@@ -236,21 +209,6 @@
}
}
-// impl OnUnbalanced<NegativeImbalance> for DealWithFees {
-// fn on_unbalanceds<B>(mut fees_then_tips: impl Iterator<Item=NegativeImbalance>) {
-// if let Some(fees) = fees_then_tips.next() {
-// // for fees, 100% to treasury
-// let mut split = fees.ration(100, 0);
-// if let Some(tips) = fees_then_tips.next() {
-// // for tips, if any, 100% to treasury
-// tips.ration_merge_into(100, 0, &mut split);
-// }
-// Treasury::on_unbalanced(split.0);
-// // Author::on_unbalanced(split.1);
-// }
-// }
-// }
-
/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
/// This is used to limit the maximal weight of a single extrinsic.
const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10);
@@ -288,57 +246,7 @@
pub const SS58Prefix: u8 = 42;
}
-impl system::Config for Runtime {
- /// The basic call filter to use in dispatchable.
- type BaseCallFilter = ();
- /// 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<AccountId>;
- /// The index type for storing how many extrinsics an account has signed.
- type Index = Index;
- /// The index type for blocks.
- type BlockNumber = BlockNumber;
- /// The type for hashing blocks and tries.
- type Hash = Hash;
- /// The hashing algorithm used.
- type Hashing = BlakeTwo256;
- /// The header type.
- type Header = generic::Header<BlockNumber, BlakeTwo256>;
- /// The ubiquitous event type.
- type Event = Event;
- /// The ubiquitous origin type.
- type Origin = Origin;
- /// Maximum number of block number to block hash mappings to keep (oldest pruned first).
- type BlockHashCount = BlockHashCount;
- /// 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 BlockWeights = RuntimeBlockWeights;
- /// Version of the runtime.
- type Version = Version;
- /// This type is being generated by `construct_runtime!`.
- type PalletInfo = PalletInfo;
- /// What to do if a new account is created.
- type OnNewAccount = ();
- /// What to do if an account is fully reaped from the system.
- type OnKilledAccount = ();
- /// The data to be stored in an account.
- type AccountData = pallet_balances::AccountData<Balance>;
- /// Weight information for the extrinsics of this pallet.
- type SystemWeightInfo = system::weights::SubstrateWeight<Runtime>;
- type BlockLength = RuntimeBlockLength;
- type SS58Prefix = SS58Prefix;
-}
-
-impl pallet_aura::Config for Runtime {
- type AuthorityId = AuraId;
-}
-
parameter_types! {
pub const ChainId: u64 = 8888;
}
@@ -384,23 +292,52 @@
type EvmSubmitLog = pallet_evm::Module<Runtime>;
}
-impl pallet_grandpa::Config for Runtime {
- type Event = Event;
- type Call = Call;
-
- type KeyOwnerProofSystem = ();
-
- type KeyOwnerProof =
- <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof;
-
- type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(
- KeyTypeId,
- GrandpaId,
- )>>::IdentificationTuple;
-
- type HandleEquivocation = ();
-
- type WeightInfo = ();
+impl system::Config for Runtime {
+ /// The data to be stored in an account.
+ type AccountData = pallet_balances::AccountData<Balance>;
+ /// The identifier used to distinguish between accounts.
+ type AccountId = AccountId;
+ /// The basic call filter to use in dispatchable.
+ type BaseCallFilter = ();
+ /// Maximum number of block number to block hash mappings to keep (oldest pruned first).
+ type BlockHashCount = BlockHashCount;
+ /// The maximum length of a block (in bytes).
+ type BlockLength = RuntimeBlockLength;
+ /// The index type for blocks.
+ type BlockNumber = BlockNumber;
+ /// The weight of the overhead invoked on the block import process, independent of the extrinsics included in that block.
+ type BlockWeights = RuntimeBlockWeights;
+ /// The aggregated dispatch type that is available for extrinsics.
+ type Call = Call;
+ /// The weight of database operations that the runtime can invoke.
+ type DbWeight = RocksDbWeight;
+ /// The ubiquitous event type.
+ type Event = Event;
+ /// The type for hashing blocks and tries.
+ type Hash = Hash;
+ /// The hashing algorithm used.
+ type Hashing = BlakeTwo256;
+ /// The header type.
+ type Header = generic::Header<BlockNumber, BlakeTwo256>;
+ /// The index type for storing how many extrinsics an account has signed.
+ type Index = Index;
+ /// The lookup mechanism to get account ID from whatever is passed in dispatchers.
+ type Lookup = AccountIdLookup<AccountId, ()>;
+ /// What to do if an account is fully reaped from the system.
+ type OnKilledAccount = ();
+ /// What to do if a new account is created.
+ type OnNewAccount = ();
+ type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
+ /// The ubiquitous origin type.
+ type Origin = Origin;
+ /// This type is being generated by `construct_runtime!`.
+ type PalletInfo = PalletInfo;
+ /// This is used as an identifier of the chain. 42 is the generic substrate prefix.
+ type SS58Prefix = SS58Prefix;
+ /// Weight information for the extrinsics of this pallet.
+ type SystemWeightInfo = system::weights::SubstrateWeight<Runtime>;
+ /// Version of the runtime.
+ type Version = Version;
}
parameter_types! {
@@ -410,7 +347,7 @@
impl pallet_timestamp::Config for Runtime {
/// A timestamp: milliseconds since the unix epoch.
type Moment = u64;
- type OnTimestampSet = Aura;
+ type OnTimestampSet = ();
type MinimumPeriod = MinimumPeriod;
type WeightInfo = ();
}
@@ -430,7 +367,7 @@
type DustRemoval = Treasury;
type ExistentialDeposit = ExistentialDeposit;
type AccountStore = System;
- type WeightInfo = ();
+ type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
}
pub const MICROUNIQUE: Balance = 1_000_000_000;
@@ -443,11 +380,11 @@
}
parameter_types! {
- pub const TombstoneDeposit: Balance = deposit(
- 0,
- sp_std::mem::size_of::<pallet_contracts::ContractInfo<Runtime>>() as u32
+ pub TombstoneDeposit: Balance = deposit(
+ 1,
+ sp_std::mem::size_of::<pallet_contracts::Pallet<Runtime>> as u32,
);
- pub const DepositPerContract: Balance = TombstoneDeposit::get();
+ pub DepositPerContract: Balance = TombstoneDeposit::get();
pub const DepositPerStorageByte: Balance = deposit(0, 1);
pub const DepositPerStorageItem: Balance = deposit(1, 0);
pub RentFraction: Perbill = Perbill::from_rational(1u32, 30 * DAYS);
@@ -465,8 +402,8 @@
<Runtime as pallet_contracts::Config>::WeightInfo::on_initialize_per_queue_item(1) -
<Runtime as pallet_contracts::Config>::WeightInfo::on_initialize_per_queue_item(0)
)) / 5) as u32;
+ pub Schedule: pallet_contracts::Schedule<Runtime> = Default::default();
}
-
impl pallet_contracts::Config for Runtime {
type Time = Timestamp;
@@ -481,14 +418,16 @@
type DepositPerStorageItem = DepositPerStorageItem;
type RentFraction = RentFraction;
type SurchargeReward = SurchargeReward;
- type MaxDepth = MaxDepth;
- type MaxValueSize = MaxValueSize;
+ // type MaxDepth = MaxDepth;
+ // type MaxValueSize = MaxValueSize;
type WeightPrice = pallet_transaction_payment::Module<Self>;
type WeightInfo = pallet_contracts::weights::SubstrateWeight<Self>;
type ChainExtension = NFTExtension;
type DeletionQueueDepth = DeletionQueueDepth;
type DeletionWeightLimit = DeletionWeightLimit;
- type MaxCodeSize = MaxCodeSize;
+ // type MaxCodeSize = MaxCodeSize;
+ type Schedule = Schedule;
+ type CallStack = [pallet_contracts::Frame<Self>; 31];
}
parameter_types! {
@@ -514,7 +453,7 @@
}
impl pallet_transaction_payment::Config for Runtime {
- type OnChargeTransaction = CurrencyAdapter<Balances, DealWithFees>;
+ type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter<Balances, ()>;
type TransactionByteFee = TransactionByteFee;
type WeightToFee = LinearFee<Balance>;
type FeeMultiplierUpdate = ();
@@ -531,15 +470,16 @@
pub const DataDepositPerByte: Balance = 1 * CENTIUNIQUE;
pub const BountyDepositBase: Balance = 1 * UNIQUE;
pub const BountyDepositPayoutDelay: BlockNumber = 1 * DAYS;
- pub const TreasuryModuleId: ModuleId = ModuleId(*b"py/trsry");
+ pub const TreasuryModuleId: PalletId = PalletId(*b"py/trsry");
pub const BountyUpdatePeriod: BlockNumber = 14 * DAYS;
pub const MaximumReasonLength: u32 = 16384;
pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);
pub const BountyValueMinimum: Balance = 5 * UNIQUE;
+ pub const MaxApprovals: u32 = 100;
}
impl pallet_treasury::Config for Runtime {
- type ModuleId = TreasuryModuleId;
+ type PalletId = TreasuryModuleId;
type Currency = Balances;
type ApproveOrigin = EnsureRoot<AccountId>;
type RejectOrigin = EnsureRoot<AccountId>;
@@ -552,6 +492,7 @@
type BurnDestination = ();
type SpendFunds = ();
type WeightInfo = pallet_treasury::weights::SubstrateWeight<Runtime>;
+ type MaxApprovals = MaxApprovals;
}
impl pallet_sudo::Config for Runtime {
@@ -572,6 +513,173 @@
}
parameter_types! {
+ pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
+ pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
+}
+
+impl cumulus_pallet_parachain_system::Config for Runtime {
+ type Event = Event;
+ type OnValidationData = ();
+ type SelfParaId = parachain_info::Pallet<Runtime>;
+ // type DownwardMessageHandlers = cumulus_primitives_utility::UnqueuedDmpAsParent<
+ // MaxDownwardMessageWeight,
+ // XcmExecutor<XcmConfig>,
+ // Call,
+ // >;
+ type OutboundXcmpMessageSource = XcmpQueue;
+ type DmpMessageHandler = DmpQueue;
+ type ReservedDmpWeight = ReservedDmpWeight;
+ type ReservedXcmpWeight = ReservedXcmpWeight;
+ type XcmpMessageHandler = XcmpQueue;
+}
+
+impl parachain_info::Config for Runtime {}
+
+impl cumulus_pallet_aura_ext::Config for Runtime {}
+
+parameter_types! {
+ pub const RelayLocation: MultiLocation = X1(Parent);
+ pub const RelayNetwork: NetworkId = NetworkId::Polkadot;
+ pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into();
+ pub Ancestry: MultiLocation = X1(Parachain(ParachainInfo::parachain_id().into()));
+}
+
+/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
+/// when determining ownership of accounts for asset transacting and when attempting to use XCM
+/// `Transact` in order to determine the dispatch Origin.
+pub type LocationToAccountId = (
+ // The parent (Relay-chain) origin converts to the default `AccountId`.
+ ParentIsDefault<AccountId>,
+ // Sibling parachain origins convert to AccountId via the `ParaId::into`.
+ SiblingParachainConvertsVia<Sibling, AccountId>,
+ // Straight up local `AccountId32` origins just alias directly to `AccountId`.
+ AccountId32Aliases<RelayNetwork, AccountId>,
+);
+
+/// Means for transacting assets on this chain.
+pub type LocalAssetTransactor = CurrencyAdapter<
+ // Use this currency:
+ Balances,
+ // Use this currency when it is a fungible asset matching the given location or name:
+ IsConcrete<RelayLocation>,
+ // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID:
+ LocationToAccountId,
+ // Our chain's account ID type (we can't get away without mentioning it explicitly):
+ AccountId,
+ // We don't track any teleports.
+ (),
+>;
+
+/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance,
+/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can
+/// biases the kind of local `Origin` it will become.
+pub type XcmOriginToTransactDispatchOrigin = (
+ // Sovereign account converter; this attempts to derive an `AccountId` from the origin location
+ // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for
+ // foreign chains who want to have a local sovereign account on this chain which they control.
+ SovereignSignedViaLocation<LocationToAccountId, Origin>,
+ // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when
+ // recognised.
+ RelayChainAsNative<RelayOrigin, Origin>,
+ // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when
+ // recognised.
+ SiblingParachainAsNative<cumulus_pallet_xcm::Origin, Origin>,
+ // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a
+ // transaction from the Root origin.
+ ParentAsSuperuser<Origin>,
+ // Native signed account converter; this just converts an `AccountId32` origin into a normal
+ // `Origin::Signed` origin of the same 32-byte value.
+ SignedAccountId32AsNative<RelayNetwork, Origin>,
+ // Xcm origins can be represented natively under the Xcm pallet's Xcm origin.
+ XcmPassthrough<Origin>,
+);
+
+parameter_types! {
+ // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate.
+ pub UnitWeightCost: Weight = 1_000_000;
+ // 1200 UNIQUEs buy 1 second of weight.
+ pub const WeightPrice: (MultiLocation, u128) = (X1(Parent), 1_200 * UNIQUE);
+}
+
+match_type! {
+ pub type ParentOrParentsUnitPlurality: impl Contains<MultiLocation> = {
+ X1(Parent) | X2(Parent, Plurality { id: BodyId::Unit, .. })
+ };
+}
+
+pub type Barrier = (
+ TakeWeightCredit,
+ AllowTopLevelPaidExecutionFrom<All<MultiLocation>>,
+ AllowUnpaidExecutionFrom<ParentOrParentsUnitPlurality>,
+ // ^^^ Parent & its unit plurality gets free execution
+);
+
+pub struct XcmConfig;
+impl Config for XcmConfig {
+ type Call = Call;
+ type XcmSender = XcmRouter;
+ // How to withdraw and deposit an asset.
+ type AssetTransactor = LocalAssetTransactor;
+ type OriginConverter = XcmOriginToTransactDispatchOrigin;
+ type IsReserve = NativeAsset;
+ type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC
+ type LocationInverter = LocationInverter<Ancestry>;
+ type Barrier = Barrier;
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call>;
+ type Trader = UsingComponents<IdentityFee<Balance>, RelayLocation, AccountId, Balances, ()>;
+ type ResponseHandler = (); // Don't handle responses for now.
+}
+
+// parameter_types! {
+// pub const MaxDownwardMessageWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 10;
+// }
+
+/// No local origins on this chain are allowed to dispatch XCM sends/executions.
+pub type LocalOriginToLocation = (SignedToAccountId32<Origin, AccountId, RelayNetwork>,);
+
+/// The means for routing XCM messages which are not for local execution into the right message
+/// queues.
+pub type XcmRouter = (
+ // Two routers - use UMP to communicate with the relay chain:
+ cumulus_primitives_utility::ParentAsUmp<ParachainSystem>,
+ // ..and XCMP to communicate with the sibling chains.
+ XcmpQueue,
+);
+
+impl pallet_xcm::Config for Runtime {
+ type Event = Event;
+ type SendXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
+ type XcmRouter = XcmRouter;
+ type ExecuteXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
+ type XcmExecuteFilter = All<(MultiLocation, Xcm<Call>)>;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+ type XcmTeleportFilter = All<(MultiLocation, Vec<MultiAsset>)>;
+ type XcmReserveTransferFilter = ();
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call>;
+}
+
+impl cumulus_pallet_xcm::Config for Runtime {
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+}
+
+impl cumulus_pallet_xcmp_queue::Config for Runtime {
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+ type ChannelInfo = ParachainSystem;
+}
+
+impl cumulus_pallet_dmp_queue::Config for Runtime {
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+ type ExecuteOverweightOrigin = frame_system::EnsureRoot<AccountId>;
+}
+
+impl pallet_aura::Config for Runtime {
+ type AuthorityId = AuraId;
+}
+
+parameter_types! {
pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account();
pub const CollectionCreationPrice: Balance = 100 * UNIQUE;
}
@@ -594,10 +702,6 @@
type EthereumTransactionSender = pallet_ethereum::Module<Runtime>;
}
-/// Reimport pallet inflation
-extern crate pallet_inflation;
-pub use pallet_inflation::*;
-
parameter_types! {
pub const InflationBlockInterval: BlockNumber = 100; // every time per how many blocks inflation is applied
}
@@ -609,28 +713,85 @@
type InflationBlockInterval = InflationBlockInterval;
}
-construct_runtime!(
- pub enum Runtime where
- Block = Block,
- NodeBlock = opaque::Block,
- UncheckedExtrinsic = UncheckedExtrinsic
+parameter_types! {
+ pub MaximumSchedulerWeight: Weight = Perbill::from_percent(50) *
+ RuntimeBlockWeights::get().max_block;
+ pub const MaxScheduledPerBlock: u32 = 50;
+}
+
+pub struct Sponsoring;
+impl SponsoringResolve<AccountId, Call> for Sponsoring {
+
+ fn resolve(who: &AccountId, call: &Call) -> Option<AccountId>
+ where
+ Call: Dispatchable<Info=DispatchInfo>,
+ Call: IsSubType<pallet_nft::Call<Runtime>>,
+ Call: IsSubType<pallet_contracts::Call<Runtime>>,
+ AccountId: AsRef<[u8]>,
+ AccountId: UncheckedFrom<Hash>
{
- System: system::{Module, Call, Config, Storage, Event<T>},
- RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},
- Contracts: pallet_contracts::{Module, Call, Config<T>, Storage, Event<T>},
- Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},
- Aura: pallet_aura::{Module, Config<T> },
+ pallet_nft_transaction_payment::Module::<Runtime>::withdraw_type(who, call)
+ }
+}
+
+impl pallet_scheduler::Config for Runtime {
+ type Event = Event;
+ type Origin = Origin;
+ type PalletsOrigin = OriginCaller;
+ type Call = Call;
+ type MaximumWeight = MaximumSchedulerWeight;
+ type ScheduleOrigin = EnsureSigned<AccountId>;
+ type MaxScheduledPerBlock = MaxScheduledPerBlock;
+ type Sponsoring = Sponsoring;
+ type WeightInfo = ();
+}
+
+impl pallet_nft_transaction_payment::Config for Runtime {
+}
+
+impl pallet_nft_charge_transaction::Config for Runtime {
+}
+
+construct_runtime!(
+ pub enum Runtime where
+ Block = Block,
+ NodeBlock = opaque::Block,
+ UncheckedExtrinsic = UncheckedExtrinsic
+ {
+ Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,
+ Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>},
+ RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage},
+ Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
+ TransactionPayment: pallet_transaction_payment::{Pallet, Storage},
+ Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>},
+ Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>},
+ System: system::{Pallet, Call, Storage, Config, Event<T>},
+ Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>},
+
+ ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
+ ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
+
+ Aura: pallet_aura::{Pallet, Config<T>},
+ AuraExt: cumulus_pallet_aura_ext::{Pallet, Config},
+
+ // Frontier
EVM: pallet_evm::{Module, Config, Call, Storage, Event<T>},
Ethereum: pallet_ethereum::{Module, Config, Call, Storage, Event, ValidateUnsigned},
- Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},
- Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},
- TransactionPayment: pallet_transaction_payment::{Module, Storage},
- Sudo: pallet_sudo::{Module, Call, Config<T>, Storage, Event<T>},
- Inflation: pallet_inflation::{Module, Call, Storage},
- Nft: pallet_nft::{Module, Call, Config<T>, Storage, Event<T>},
- Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},
- Vesting: pallet_vesting::{Module, Call, Config<T>, Storage, Event<T>},
- }
+
+ // XCM helpers.
+ XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,
+ PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,
+ CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,
+ DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,
+
+
+ // Unique Pallets
+ Inflation: pallet_inflation::{Pallet, Call, Storage},
+ Nft: pallet_nft::{Pallet, Call, Config<T>, Storage, Event<T>},
+ Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event<T>},
+ NftPayment: pallet_nft_transaction_payment::{Pallet, Call, Storage},
+ Charging: pallet_nft_charge_transaction::{Pallet, Call, Storage },
+ }
);
pub struct TransactionConverter;
@@ -650,7 +811,7 @@
}
/// The address format for describing accounts.
-pub type Address = AccountId;
+pub type Address = sp_runtime::MultiAddress<AccountId, ()>;
/// Block header type as expected by this runtime.
pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
/// Block type as expected by this runtime.
@@ -661,111 +822,87 @@
pub type BlockId = generic::BlockId<Block>;
/// The SignedExtension to the basic transaction logic.
pub type SignedExtra = (
- system::CheckSpecVersion<Runtime>,
- system::CheckTxVersion<Runtime>,
- system::CheckGenesis<Runtime>,
- system::CheckEra<Runtime>,
- system::CheckNonce<Runtime>,
- system::CheckWeight<Runtime>,
- pallet_nft::ChargeTransactionPayment<Runtime>,
+ system::CheckSpecVersion<Runtime>,
+ // system::CheckTxVersion<Runtime>,
+ system::CheckGenesis<Runtime>,
+ system::CheckEra<Runtime>,
+ system::CheckNonce<Runtime>,
+ system::CheckWeight<Runtime>,
+ pallet_nft_charge_transaction::ChargeTransactionPayment<Runtime>,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;
/// Extrinsic type that has already been checked.
pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, Call, SignedExtra>;
/// Executive: handles dispatch to the various modules.
-pub type Executive =
- frame_executive::Executive<Runtime, Block, system::ChainContext<Runtime>, Runtime, AllModules>;
+pub type Executive = frame_executive::Executive<
+ Runtime,
+ Block,
+ frame_system::ChainContext<Runtime>,
+ Runtime,
+ AllPallets,
+>;
-impl_runtime_apis! {
- impl pallet_nft::NftApi<Block>
- for Runtime
- {
- fn eth_contract_code(account: H160) -> Option<Vec<u8>> {
- <pallet_nft::NftErcSupport<Runtime>>::get_code(&account)
- }
+impl_opaque_keys! {
+ pub struct SessionKeys {
+ pub aura: Aura,
}
+}
- impl pallet_contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber>
- for Runtime
- {
- fn call(
- origin: AccountId,
- dest: AccountId,
- value: Balance,
- gas_limit: u64,
- input_data: Vec<u8>,
- ) -> pallet_contracts_primitives::ContractExecResult {
- Contracts::bare_call(origin, dest, value, gas_limit, input_data)
- }
+impl_runtime_apis! {
+ impl sp_api::Core<Block> for Runtime {
+ fn version() -> RuntimeVersion {
+ VERSION
+ }
- fn get_storage(
- address: AccountId,
- key: [u8; 32],
- ) -> pallet_contracts_primitives::GetStorageResult {
- Contracts::get_storage(address, key)
- }
+ fn execute_block(block: Block) {
+ Executive::execute_block(block)
+ }
- fn rent_projection(
- address: AccountId,
- ) -> pallet_contracts_primitives::RentProjectionResult<BlockNumber> {
- Contracts::rent_projection(address)
- }
- }
+ fn initialize_block(header: &<Block as BlockT>::Header) {
+ Executive::initialize_block(header)
+ }
+ }
- impl sp_api::Core<Block> for Runtime {
- fn version() -> RuntimeVersion {
- VERSION
- }
+ impl sp_api::Metadata<Block> for Runtime {
+ fn metadata() -> OpaqueMetadata {
+ Runtime::metadata().into()
+ }
+ }
- fn execute_block(block: Block) {
- Executive::execute_block(block)
- }
+ impl sp_block_builder::BlockBuilder<Block> for Runtime {
+ fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
+ Executive::apply_extrinsic(extrinsic)
+ }
- fn initialize_block(header: &<Block as BlockT>::Header) {
- Executive::initialize_block(header)
- }
- }
-
- impl sp_api::Metadata<Block> for Runtime {
- fn metadata() -> OpaqueMetadata {
- Runtime::metadata().into()
- }
- }
-
- impl sp_block_builder::BlockBuilder<Block> for Runtime {
- fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
- Executive::apply_extrinsic(extrinsic)
- }
-
- fn finalize_block() -> <Block as BlockT>::Header {
- Executive::finalize_block()
- }
+ fn finalize_block() -> <Block as BlockT>::Header {
+ Executive::finalize_block()
+ }
- fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
- data.create_extrinsics()
- }
+ fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
+ data.create_extrinsics()
+ }
- fn check_inherents(
- block: Block,
- data: sp_inherents::InherentData,
- ) -> sp_inherents::CheckInherentsResult {
- data.check_extrinsics(&block)
- }
+ fn check_inherents(
+ block: Block,
+ data: sp_inherents::InherentData,
+ ) -> sp_inherents::CheckInherentsResult {
+ data.check_extrinsics(&block)
+ }
- fn random_seed() -> <Block as BlockT>::Hash {
- RandomnessCollectiveFlip::random_seed().0
- }
- }
+ // fn random_seed() -> <Block as BlockT>::Hash {
+ // RandomnessCollectiveFlip::random_seed().0
+ // }
+ }
- impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {
- fn validate_transaction(
- source: TransactionSource,
- tx: <Block as BlockT>::Extrinsic,
- ) -> TransactionValidity {
- Executive::validate_transaction(source, tx)
- }
- }
+ impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {
+ fn validate_transaction(
+ source: TransactionSource,
+ tx: <Block as BlockT>::Extrinsic,
+ ) -> TransactionValidity {
+ Executive::validate_transaction(source, tx)
+ }
+ }
impl sp_offchain::OffchainWorkerApi<Block> for Runtime {
fn offchain_worker(header: &<Block as BlockT>::Header) {
@@ -773,16 +910,6 @@
}
}
- impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {
- fn slot_duration() -> u64 {
- Aura::slot_duration()
- }
-
- fn authorities() -> Vec<AuraId> {
- Aura::authorities()
- }
- }
-
impl fp_rpc::EthereumRuntimeRPCApi<Block> for Runtime {
fn chain_id() -> u64 {
<Runtime as pallet_evm::Config>::ChainId::get()
@@ -894,40 +1021,30 @@
}
impl sp_session::SessionKeys<Block> for Runtime {
- fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {
- opaque::SessionKeys::generate(seed)
- }
-
fn decode_session_keys(
encoded: Vec<u8>,
) -> Option<Vec<(Vec<u8>, KeyTypeId)>> {
- opaque::SessionKeys::decode_into_raw_public_keys(&encoded)
+ SessionKeys::decode_into_raw_public_keys(&encoded)
+ }
+
+ fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {
+ SessionKeys::generate(seed)
}
}
- impl fg_primitives::GrandpaApi<Block> for Runtime {
- fn grandpa_authorities() -> GrandpaAuthorityList {
- Grandpa::grandpa_authorities()
+ impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {
+ fn slot_duration() -> sp_consensus_aura::SlotDuration {
+ sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration())
}
- fn submit_report_equivocation_unsigned_extrinsic(
- _equivocation_proof: fg_primitives::EquivocationProof<
- <Block as BlockT>::Hash,
- NumberFor<Block>,
- >,
- _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof,
- ) -> Option<()> {
- None
+ fn authorities() -> Vec<AuraId> {
+ Aura::authorities()
}
+ }
- fn generate_key_ownership_proof(
- _set_id: fg_primitives::SetId,
- _authority_id: GrandpaId,
- ) -> Option<fg_primitives::OpaqueKeyOwnershipProof> {
- // NOTE: this is the only implementation possible since we've
- // defined our key owner proof type as a bottom type (i.e. a type
- // with no values).
- None
+ impl cumulus_primitives_core::CollectCollationInfo<Block> for Runtime {
+ fn collect_collation_info() -> cumulus_primitives_core::CollationInfo {
+ ParachainSystem::collect_collation_info()
}
}
@@ -946,7 +1063,46 @@
}
}
- #[cfg(feature = "runtime-benchmarks")]
+ impl pallet_contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber, Hash>
+ for Runtime
+ {
+ fn call(
+ origin: AccountId,
+ dest: AccountId,
+ value: Balance,
+ gas_limit: u64,
+ input_data: Vec<u8>,
+ ) -> pallet_contracts_primitives::ContractExecResult {
+ Contracts::bare_call(origin, dest, value, gas_limit, input_data, false)
+ }
+
+ fn instantiate(
+ origin: AccountId,
+ endowment: Balance,
+ gas_limit: u64,
+ code: pallet_contracts_primitives::Code<Hash>,
+ data: Vec<u8>,
+ salt: Vec<u8>,
+ ) -> pallet_contracts_primitives::ContractInstantiateResult<AccountId, BlockNumber>
+ {
+ Contracts::bare_instantiate(origin, endowment, gas_limit, code, data, salt, true, false)
+ }
+
+ fn get_storage(
+ address: AccountId,
+ key: [u8; 32],
+ ) -> pallet_contracts_primitives::GetStorageResult {
+ Contracts::get_storage(address, key)
+ }
+
+ fn rent_projection(
+ address: AccountId,
+ ) -> pallet_contracts_primitives::RentProjectionResult<BlockNumber> {
+ Contracts::rent_projection(address)
+ }
+ }
+
+ #[cfg(feature = "runtime-benchmarks")]
impl frame_benchmarking::Benchmark<Block> for Runtime {
fn dispatch_benchmark(
config: frame_benchmarking::BenchmarkConfig
@@ -977,3 +1133,8 @@
}
}
}
+
+cumulus_pallet_parachain_system::register_validate_block!(
+ Runtime,
+ cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>,
+);
runtime_types.jsondiffbeforeafterboth--- a/runtime_types.json
+++ b/runtime_types.json
@@ -61,8 +61,8 @@
"ConstOnChainSchema": "Vec<u8>"
},
"RawData": "Vec<u8>",
- "Address": "AccountId",
- "LookupSource": "AccountId",
+ "Address": "MultiAddress",
+ "LookupSource": "MultiAddress",
"Weight": "u64",
"CreateNftData": {
"const_data": "Vec<u8>",
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -4,10 +4,10 @@
"description": "Substrate Nft tests",
"main": "",
"devDependencies": {
- "@polkadot/dev": "^0.62.10",
- "@polkadot/ts": "^0.3.63",
- "@polkadot/typegen": "^4.7.2",
- "@polkadot/util-crypto": "^6.3.1",
+ "@polkadot/dev": "0.62.41",
+ "@polkadot/ts": "0.3.89",
+ "@polkadot/typegen": "4.13.2-5",
+ "@polkadot/util-crypto": "6.7.1",
"@types/chai": "^4.2.17",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.2.2",
@@ -53,14 +53,15 @@
"testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts",
"testSetVariableMetadataSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetadataSponsoringRateLimit.test.ts",
"testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",
- "testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts"
+ "testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",
+ "testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts"
},
"author": "",
"license": "SEE LICENSE IN ../LICENSE",
"homepage": "",
"dependencies": {
- "@polkadot/api": "4.7.2",
- "@polkadot/api-contract": "4.7.2",
+ "@polkadot/api": "4.13.2-5",
+ "@polkadot/api-contract": "4.13.2-5",
"@polkadot/util": "6.3.1",
"bignumber.js": "^9.0.1",
"chai-as-promised": "^7.1.1",
tests/src/block-production.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/block-production.test.ts
@@ -0,0 +1,34 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
+import usingApi from "./substrate/substrate-api";
+import { expect } from "chai";
+import { ApiPromise } from "@polkadot/api";
+
+const BlockTimeMs = 12000;
+const ToleranceMs = 1000;
+
+async function getBlocks(api: ApiPromise): Promise<number[]> {
+ return new Promise<number[]>(async (resolve, reject) => {
+ const blockNumbers: number[] = [];
+ setTimeout(() => reject('Block production test failed due to timeout.'), BlockTimeMs + ToleranceMs);
+ const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {
+ blockNumbers.push(head.number.toNumber());
+ if(blockNumbers.length >= 2) {
+ unsubscribe();
+ resolve(blockNumbers);
+ }
+ });
+ });
+}
+
+describe('Block Production smoke test', () => {
+ it('Node produces new blocks', async () => {
+ await usingApi(async (api) => {
+ let blocks: number[] | undefined = await getBlocks(api);
+ expect(blocks[0]).to.be.lessThan(blocks[1]);
+ });
+ });
+});
tests/src/blocks-production.test.tsdiffbeforeafterboth--- a/tests/src/blocks-production.test.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// This file is subject to the terms and conditions defined in
-// file 'LICENSE', which is part of this source code package.
-//
-
-import usingApi from "./substrate/substrate-api";
-import { expect } from "chai";
-import { ApiPromise } from "@polkadot/api";
-
-const BlockTimeMs = 6000;
-const ToleranceMs = 1000;
-
-async function getBlocks(api: ApiPromise): Promise<number[]> {
- return new Promise<number[]>(async (resolve, reject) => {
- const blockNumbers: number[] = [];
- setTimeout(() => reject('Block production test failed due to timeout.'), BlockTimeMs + ToleranceMs);
- const unsubscribe = await api.rpc.chain.subscribeNewHeads((head) => {
- blockNumbers.push(head.number.toNumber());
- if(blockNumbers.length >= 2) {
- unsubscribe();
- resolve(blockNumbers);
- }
- });
- });
-}
-
-describe('Block Production smoke test', () => {
- it('Node produces new blocks', async () => {
- await usingApi(async (api) => {
- let blocks: number[] | undefined = await getBlocks(api);
- expect(blocks[0]).to.be.lessThan(blocks[1]);
- });
- });
-});
tests/src/config.tsdiffbeforeafterboth--- a/tests/src/config.ts
+++ b/tests/src/config.ts
@@ -6,7 +6,7 @@
import process from 'process';
const config = {
- substrateUrl: process.env.substrateUrl || 'ws://127.0.0.1:9944'
+ substrateUrl: process.env.substrateUrl || 'ws://127.0.0.1:9845'
}
export default config;
\ No newline at end of file
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -13,12 +13,13 @@
// Pallets that must always be present
const requiredPallets = [
- 'nft', 'inflation', 'balances', 'contracts', 'randomnesscollectiveflip', 'system', 'timestamp', 'transactionpayment', 'treasury', 'vesting', 'nft', 'ethereum'
+ 'nft', 'inflation', 'balances', 'contracts', 'randomnesscollectiveflip', 'system', 'timestamp', 'transactionpayment', 'treasury', 'vesting', 'evm', 'ethereum',
+ 'scheduler', 'nftpayment', 'charging'
];
// Pallets that depend on consensus and governance configuration
const consensusPallets = [
- 'sudo', 'grandpa', 'aura'
+ 'sudo', 'aura'
];
describe('Pallet presence', () => {
tests/src/scheduler.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/scheduler.test.ts
@@ -0,0 +1,94 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
+import { IKeyringPair } from '@polkadot/types/types';
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+import privateKey from './substrate/privateKey';
+import usingApi from './substrate/substrate-api';
+import {
+ createItemExpectSuccess,
+ createCollectionExpectSuccess,
+ destroyCollectionExpectSuccess,
+ findNotExistingCollection,
+ queryCollectionExpectSuccess,
+ setOffchainSchemaExpectFailure,
+ setOffchainSchemaExpectSuccess,
+ transferExpectSuccess,
+ scheduleTransferExpectSuccess,
+ setCollectionSponsorExpectSuccess,
+ confirmSponsorshipExpectSuccess
+} from './util/helpers';
+
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+const DATA = [1, 2, 3, 4];
+
+describe('Integration Test scheduler base transaction', () => {
+ let alice: IKeyringPair;
+
+ before(async () => {
+ await usingApi(async () => {
+ alice = privateKey('//Alice');
+ });
+ });
+
+ it('User can transfer owned token with delay (scheduler)', async () => {
+ await usingApi(async (api) => {
+ const Alice = privateKey('//Alice');
+ const Bob = privateKey('//Bob');
+ // nft
+ const nftCollectionId = await createCollectionExpectSuccess();
+ const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(nftCollectionId, Alice.address);
+ await confirmSponsorshipExpectSuccess(nftCollectionId);
+
+ await scheduleTransferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');
+ });
+ });
+
+
+});
+
+// describe('Negative Integration Test setOffchainSchema', () => {
+// let alice: IKeyringPair;
+// let bob: IKeyringPair;
+
+// let validCollectionId: number;
+
+// before(async () => {
+// await usingApi(async () => {
+// alice = privateKey('//Alice');
+// bob = privateKey('//Bob');
+
+// validCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+// });
+// });
+
+// it('fails on not existing collection id', async () => {
+// const nonExistingCollectionId = await usingApi(findNotExistingCollection);
+
+// await setOffchainSchemaExpectFailure(alice, nonExistingCollectionId, DATA);
+// });
+
+// it('fails on destroyed collection id', async () => {
+// const destroyedCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+// await destroyCollectionExpectSuccess(destroyedCollectionId);
+
+// await setOffchainSchemaExpectFailure(alice, destroyedCollectionId, DATA);
+// });
+
+// it('fails on too long data', async () => {
+// const tooLongData = new Array(4097).fill(0xff);
+
+// await setOffchainSchemaExpectFailure(alice, validCollectionId, tooLongData);
+// });
+
+// it('fails on execution by non-owner', async () => {
+// await setOffchainSchemaExpectFailure(bob, validCollectionId, DATA);
+// });
+// });
tests/src/setCollectionLimits.test.tsdiffbeforeafterboth--- a/tests/src/setCollectionLimits.test.ts
+++ b/tests/src/setCollectionLimits.test.ts
@@ -29,7 +29,7 @@
const sponsoredDataSize = 0;
const sponsoredMintSize = 0;
const sponsorTimeout = 1;
-const tokenLimit = 1;
+const tokenLimit = 10;
describe('setCollectionLimits positive', () => {
let tx;
@@ -69,6 +69,45 @@
expect(collectionInfo.Limits.OwnerCanDestroy).to.be.true;
});
});
+
+ it('Set the same token limit twice', async () => {
+ await usingApi(async (api: ApiPromise) => {
+
+ let collectionLimits = {
+ AccountTokenOwnershipLimit: accountTokenOwnershipLimit,
+ SponsoredMintSize: sponsoredDataSize,
+ TokenLimit: tokenLimit,
+ SponsorTimeout: sponsorTimeout,
+ OwnerCanTransfer: true,
+ OwnerCanDestroy: true
+ };
+
+ // The first time
+ const tx1 = api.tx.nft.setCollectionLimits(
+ collectionIdForTesting,
+ collectionLimits,
+ );
+ const events1 = await submitTransactionAsync(alice, tx1);
+ const result1 = getCreateItemResult(events1);
+ const collectionInfo1 = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+
+ // The second time
+ const tx2 = api.tx.nft.setCollectionLimits(
+ collectionIdForTesting,
+ collectionLimits,
+ );
+ const events2 = await submitTransactionAsync(alice, tx2);
+ const result2 = getCreateItemResult(events2);
+ const collectionInfo2 = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+
+ // tslint:disable-next-line:no-unused-expression
+ expect(result1.success).to.be.true;
+ expect(collectionInfo1.Limits.TokenLimit).to.be.equal(tokenLimit);
+ expect(result2.success).to.be.true;
+ expect(collectionInfo2.Limits.TokenLimit).to.be.equal(tokenLimit);
+ });
+ });
+
});
describe('setCollectionLimits negative', () => {
@@ -165,4 +204,27 @@
OwnerCanDestroy: true
});
});
+
+ it('Setting the higher token limit fails', async () => {
+ await usingApi(async (api: ApiPromise) => {
+
+ const collectionId = await createCollectionExpectSuccess();
+ let collectionLimits = {
+ AccountTokenOwnershipLimit: accountTokenOwnershipLimit,
+ SponsoredMintSize: sponsoredDataSize,
+ TokenLimit: tokenLimit,
+ SponsorTimeout: sponsorTimeout,
+ OwnerCanTransfer: true,
+ OwnerCanDestroy: true
+ };
+
+ // The first time
+ await setCollectionLimitsExpectSuccess(alice, collectionId, collectionLimits);
+
+ // The second time - higher token limit
+ collectionLimits.TokenLimit += 1;
+ await setCollectionLimitsExpectFailure(alice, collectionId, collectionLimits);
+ });
+ });
+
});
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -4,7 +4,8 @@
//
import { ApiPromise, Keyring } from '@polkadot/api';
-import type { AccountId, EventRecord } from '@polkadot/types/interfaces';
+import { Enum, Struct } from '@polkadot/types/codec';
+import type { AccountId, BlockNumber, Call, EventRecord } from '@polkadot/types/interfaces';
import { u128 } from '@polkadot/types/primitive';
import { IKeyringPair } from '@polkadot/types/types';
import { evmToAddress } from '@polkadot/util-crypto';
@@ -17,6 +18,8 @@
import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from '../substrate/substrate-api';
import { ICollectionInterface } from '../types';
import { hexToStr, strToUTF16, utf16ToStr } from './util';
+import { Compact, Option, Raw, Vec } from '@polkadot/types/codec';
+// import { AccountId, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, Call, ChangesTrieConfiguration, Consensus, ConsensusEngineId, Digest, DigestItem, DispatchClass, DispatchInfo, DispatchInfoTo190, EcdsaSignature, Ed25519Signature, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV1, ExtrinsicPayloadV2, ExtrinsicPayloadV3, ExtrinsicPayloadV4, ExtrinsicSignatureV1, ExtrinsicSignatureV2, ExtrinsicSignatureV3, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV1, ExtrinsicV2, ExtrinsicV3, ExtrinsicV4, Hash, Header, ImmortalEra, Index, Justification, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, Moment, MortalEra, MultiSignature, Origin, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Seal, SealV0, Signature, SignedBlock, SignerPayload, Sr25519Signature, ValidatorId, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -727,6 +730,54 @@
});
}
+async function getBlockNumber(api: ApiPromise): Promise<number> {
+ return new Promise<number>(async (resolve, reject) => {
+ const unsubscribe = await api.rpc.chain.subscribeNewHeads((head) => {
+ unsubscribe();
+ resolve(head.number.toNumber());
+ });
+ });
+}
+
+export async function
+scheduleTransferExpectSuccess(collectionId: number,
+ tokenId: number,
+ sender: IKeyringPair,
+ recipient: IKeyringPair,
+ value: number | bigint = 1,
+ type: string = 'NFT') {
+ await usingApi(async (api: ApiPromise) => {
+ let balanceBefore = new BN(0);
+
+
+ let blockNumber: number | undefined = await getBlockNumber(api);
+ let expectedBlockNumber = blockNumber + 2;
+
+ expect(blockNumber).to.be.greaterThan(0);
+ const transferTx = await api.tx.nft.transfer(recipient.address, collectionId, tokenId, value);
+ const scheduleTx = await api.tx.scheduler.schedule(expectedBlockNumber, null, 0, transferTx);
+
+ const events = await submitTransactionAsync(sender, scheduleTx);
+
+ const sponsorBalanceBefore = new BigNumber((await api.query.system.account(sender.address)).data.free.toString());
+ const recipientBalanceBefore = new BigNumber((await api.query.system.account(recipient.address)).data.free.toString());
+
+ const nftItemDataBefore = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON() as unknown as ITokenDataType;
+ expect(nftItemDataBefore.Owner.toString()).to.be.equal(sender.address);
+
+ // sleep for 2 blocks
+ await new Promise(resolve => setTimeout(resolve, 6000 * 2));
+
+ const sponsorBalanceAfter = new BigNumber((await api.query.system.account(sender.address)).data.free.toString());
+ const recipientBalanceAfter = new BigNumber((await api.query.system.account(recipient.address)).data.free.toString());
+
+ const nftItemData = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON() as unknown as ITokenDataType;
+ expect(nftItemData.Owner.toString()).to.be.equal(recipient.address);
+ expect(recipientBalanceAfter.toNumber()).to.be.equal(recipientBalanceBefore.toNumber());
+ });
+}
+
+
export async function
transferExpectSuccess(collectionId: number,
tokenId: number,
tests/yarn.lockdiffbeforeafterboth2# yarn lockfile v12# yarn lockfile v133445"@babel/cli@^7.13.16":5"@babel/cli@^7.14.3":6 version "7.13.16"6 version "7.14.5"7 resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.16.tgz#9d372e943ced0cc291f068204a9b010fd9cfadbc"7 resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.5.tgz#9551b194f02360729de6060785bbdcce52c69f0a"8 integrity sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==8 integrity sha512-poegjhRvXHWO0EAsnYajwYZuqcz7gyfxwfaecUESxDujrqOivf3zrjFbub8IJkrqEaz3fvJWh001EzxBub54fg==9 dependencies:9 dependencies:10 commander "^4.0.1"10 commander "^4.0.1"11 convert-source-map "^1.1.0"11 convert-source-map "^1.1.0"15 slash "^2.0.0"15 slash "^2.0.0"16 source-map "^0.5.0"16 source-map "^0.5.0"17 optionalDependencies:17 optionalDependencies:18 "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents"18 "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.2"19 chokidar "^3.4.0"19 chokidar "^3.4.0"202021"@babel/code-frame@7.12.11":21"@babel/code-frame@7.12.11":25 dependencies:25 dependencies:26 "@babel/highlight" "^7.10.4"26 "@babel/highlight" "^7.10.4"272728"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13":28"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5":29 version "7.12.13"29 version "7.14.5"30 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"30 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"31 integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==31 integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==32 dependencies:32 dependencies:33 "@babel/highlight" "^7.12.13"33 "@babel/highlight" "^7.14.5"343435"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8":35"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5":36 version "7.13.15"36 version "7.14.5"37 resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4"37 resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea"38 integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==38 integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==393940"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.7.5":40"@babel/core@^7.1.0", "@babel/core@^7.14.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5":41 version "7.13.16"41 version "7.14.6"42 resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a"42 resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab"43 integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==43 integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==44 dependencies:44 dependencies:45 "@babel/code-frame" "^7.12.13"45 "@babel/code-frame" "^7.14.5"46 "@babel/generator" "^7.13.16"46 "@babel/generator" "^7.14.5"47 "@babel/helper-compilation-targets" "^7.13.16"47 "@babel/helper-compilation-targets" "^7.14.5"48 "@babel/helper-module-transforms" "^7.13.14"48 "@babel/helper-module-transforms" "^7.14.5"49 "@babel/helpers" "^7.13.16"49 "@babel/helpers" "^7.14.6"50 "@babel/parser" "^7.13.16"50 "@babel/parser" "^7.14.6"51 "@babel/template" "^7.12.13"51 "@babel/template" "^7.14.5"52 "@babel/traverse" "^7.13.15"52 "@babel/traverse" "^7.14.5"53 "@babel/types" "^7.13.16"53 "@babel/types" "^7.14.5"54 convert-source-map "^1.7.0"54 convert-source-map "^1.7.0"55 debug "^4.1.0"55 debug "^4.1.0"56 gensync "^1.0.0-beta.2"56 gensync "^1.0.0-beta.2"57 json5 "^2.1.2"57 json5 "^2.1.2"58 semver "^6.3.0"58 semver "^6.3.0"59 source-map "^0.5.0"59 source-map "^0.5.0"606061"@babel/generator@^7.13.16":61"@babel/generator@^7.14.5", "@babel/generator@^7.7.2":62 version "7.13.16"62 version "7.14.5"63 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14"63 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785"64 integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==64 integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==65 dependencies:65 dependencies:66 "@babel/types" "^7.13.16"66 "@babel/types" "^7.14.5"67 jsesc "^2.5.1"67 jsesc "^2.5.1"68 source-map "^0.5.0"68 source-map "^0.5.0"696970"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13":70"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5":71 version "7.12.13"71 version "7.14.5"72 resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"72 resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61"73 integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==73 integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==74 dependencies:74 dependencies:75 "@babel/types" "^7.12.13"75 "@babel/types" "^7.14.5"767677"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13":77"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":78 version "7.12.13"78 version "7.14.5"79 resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc"79 resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191"80 integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==80 integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==81 dependencies:81 dependencies:82 "@babel/helper-explode-assignable-expression" "^7.12.13"82 "@babel/helper-explode-assignable-expression" "^7.14.5"83 "@babel/types" "^7.12.13"83 "@babel/types" "^7.14.5"848485"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8":85"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5":86 version "7.13.16"86 version "7.14.5"87 resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"87 resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf"88 integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==88 integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==89 dependencies:89 dependencies:90 "@babel/compat-data" "^7.13.15"90 "@babel/compat-data" "^7.14.5"91 "@babel/helper-validator-option" "^7.12.17"91 "@babel/helper-validator-option" "^7.14.5"92 browserslist "^4.14.5"92 browserslist "^4.16.6"93 semver "^6.3.0"93 semver "^6.3.0"949495"@babel/helper-create-class-features-plugin@^7.13.0":95"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6":96 version "7.13.11"96 version "7.14.6"97 resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6"97 resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542"98 integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==98 integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==99 dependencies:99 dependencies:100 "@babel/helper-function-name" "^7.12.13"100 "@babel/helper-annotate-as-pure" "^7.14.5"101 "@babel/helper-function-name" "^7.14.5"101 "@babel/helper-member-expression-to-functions" "^7.13.0"102 "@babel/helper-member-expression-to-functions" "^7.14.5"102 "@babel/helper-optimise-call-expression" "^7.12.13"103 "@babel/helper-optimise-call-expression" "^7.14.5"103 "@babel/helper-replace-supers" "^7.13.0"104 "@babel/helper-replace-supers" "^7.14.5"104 "@babel/helper-split-export-declaration" "^7.12.13"105 "@babel/helper-split-export-declaration" "^7.14.5"105106106"@babel/helper-create-regexp-features-plugin@^7.12.13":107"@babel/helper-create-regexp-features-plugin@^7.14.5":107 version "7.12.17"108 version "7.14.5"108 resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7"109 resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"109 integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==110 integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==110 dependencies:111 dependencies:111 "@babel/helper-annotate-as-pure" "^7.12.13"112 "@babel/helper-annotate-as-pure" "^7.14.5"112 regexpu-core "^4.7.1"113 regexpu-core "^4.7.1"113114114"@babel/helper-define-polyfill-provider@^0.2.0":115"@babel/helper-define-polyfill-provider@^0.2.2":115 version "0.2.0"116 version "0.2.3"116 resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1"117 resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"117 integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==118 integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==118 dependencies:119 dependencies:119 "@babel/helper-compilation-targets" "^7.13.0"120 "@babel/helper-compilation-targets" "^7.13.0"120 "@babel/helper-module-imports" "^7.12.13"121 "@babel/helper-module-imports" "^7.12.13"125 resolve "^1.14.2"126 resolve "^1.14.2"126 semver "^6.1.2"127 semver "^6.1.2"127128128"@babel/helper-explode-assignable-expression@^7.12.13":129"@babel/helper-explode-assignable-expression@^7.14.5":129 version "7.13.0"130 version "7.14.5"130 resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f"131 resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645"131 integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==132 integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==132 dependencies:133 dependencies:133 "@babel/types" "^7.13.0"134 "@babel/types" "^7.14.5"134135135"@babel/helper-function-name@^7.12.13":136"@babel/helper-function-name@^7.14.5":136 version "7.12.13"137 version "7.14.5"137 resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"138 resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"138 integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==139 integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==139 dependencies:140 dependencies:140 "@babel/helper-get-function-arity" "^7.12.13"141 "@babel/helper-get-function-arity" "^7.14.5"141 "@babel/template" "^7.12.13"142 "@babel/template" "^7.14.5"142 "@babel/types" "^7.12.13"143 "@babel/types" "^7.14.5"143144144"@babel/helper-get-function-arity@^7.12.13":145"@babel/helper-get-function-arity@^7.14.5":145 version "7.12.13"146 version "7.14.5"146 resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"147 resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"147 integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==148 integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==148 dependencies:149 dependencies:149 "@babel/types" "^7.12.13"150 "@babel/types" "^7.14.5"150151151"@babel/helper-hoist-variables@^7.13.0":152"@babel/helper-hoist-variables@^7.14.5":152 version "7.13.16"153 version "7.14.5"153 resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30"154 resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"154 integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==155 integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==155 dependencies:156 dependencies:156 "@babel/traverse" "^7.13.15"157 "@babel/types" "^7.14.5"157 "@babel/types" "^7.13.16"158158159"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12":159"@babel/helper-member-expression-to-functions@^7.14.5":160 version "7.13.12"160 version "7.14.5"161 resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"161 resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8"162 integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==162 integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==163 dependencies:163 dependencies:164 "@babel/types" "^7.13.12"164 "@babel/types" "^7.14.5"165165166"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12":166"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5":167 version "7.13.12"167 version "7.14.5"168 resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"168 resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"169 integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==169 integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==170 dependencies:170 dependencies:171 "@babel/types" "^7.13.12"171 "@babel/types" "^7.14.5"172172173"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14":173"@babel/helper-module-transforms@^7.14.5":174 version "7.13.14"174 version "7.14.5"175 resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef"175 resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e"176 integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==176 integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==177 dependencies:177 dependencies:178 "@babel/helper-module-imports" "^7.13.12"178 "@babel/helper-module-imports" "^7.14.5"179 "@babel/helper-replace-supers" "^7.13.12"179 "@babel/helper-replace-supers" "^7.14.5"180 "@babel/helper-simple-access" "^7.13.12"180 "@babel/helper-simple-access" "^7.14.5"181 "@babel/helper-split-export-declaration" "^7.12.13"181 "@babel/helper-split-export-declaration" "^7.14.5"182 "@babel/helper-validator-identifier" "^7.12.11"182 "@babel/helper-validator-identifier" "^7.14.5"183 "@babel/template" "^7.12.13"183 "@babel/template" "^7.14.5"184 "@babel/traverse" "^7.13.13"184 "@babel/traverse" "^7.14.5"185 "@babel/types" "^7.13.14"185 "@babel/types" "^7.14.5"186186187"@babel/helper-optimise-call-expression@^7.12.13":187"@babel/helper-optimise-call-expression@^7.14.5":188 version "7.12.13"188 version "7.14.5"189 resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"189 resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"190 integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==190 integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==191 dependencies:191 dependencies:192 "@babel/types" "^7.12.13"192 "@babel/types" "^7.14.5"193193194"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":194"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":195 version "7.13.0"195 version "7.14.5"196 resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"196 resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"197 integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==197 integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==198198199"@babel/helper-remap-async-to-generator@^7.13.0":199"@babel/helper-remap-async-to-generator@^7.14.5":200 version "7.13.0"200 version "7.14.5"201 resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"201 resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6"202 integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==202 integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==203 dependencies:203 dependencies:204 "@babel/helper-annotate-as-pure" "^7.12.13"204 "@babel/helper-annotate-as-pure" "^7.14.5"205 "@babel/helper-wrap-function" "^7.13.0"205 "@babel/helper-wrap-function" "^7.14.5"206 "@babel/types" "^7.13.0"206 "@babel/types" "^7.14.5"207207208"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12":208"@babel/helper-replace-supers@^7.14.5":209 version "7.13.12"209 version "7.14.5"210 resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"210 resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94"211 integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==211 integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==212 dependencies:212 dependencies:213 "@babel/helper-member-expression-to-functions" "^7.13.12"213 "@babel/helper-member-expression-to-functions" "^7.14.5"214 "@babel/helper-optimise-call-expression" "^7.12.13"214 "@babel/helper-optimise-call-expression" "^7.14.5"215 "@babel/traverse" "^7.13.0"215 "@babel/traverse" "^7.14.5"216 "@babel/types" "^7.13.12"216 "@babel/types" "^7.14.5"217217218"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12":218"@babel/helper-simple-access@^7.14.5":219 version "7.13.12"219 version "7.14.5"220 resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"220 resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4"221 integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==221 integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==222 dependencies:222 dependencies:223 "@babel/types" "^7.13.12"223 "@babel/types" "^7.14.5"224224225"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":225"@babel/helper-skip-transparent-expression-wrappers@^7.14.5":226 version "7.12.1"226 version "7.14.5"227 resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"227 resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4"228 integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==228 integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==229 dependencies:229 dependencies:230 "@babel/types" "^7.12.1"230 "@babel/types" "^7.14.5"231231232"@babel/helper-split-export-declaration@^7.12.13":232"@babel/helper-split-export-declaration@^7.14.5":233 version "7.12.13"233 version "7.14.5"234 resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"234 resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"235 integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==235 integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==236 dependencies:236 dependencies:237 "@babel/types" "^7.12.13"237 "@babel/types" "^7.14.5"238238239"@babel/helper-validator-identifier@^7.12.11":239"@babel/helper-validator-identifier@^7.14.5":240 version "7.12.11"240 version "7.14.5"241 resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"241 resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"242 integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==242 integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==243243244"@babel/helper-validator-option@^7.12.17":244"@babel/helper-validator-option@^7.14.5":245 version "7.12.17"245 version "7.14.5"246 resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"246 resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"247 integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==247 integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==248248249"@babel/helper-wrap-function@^7.13.0":249"@babel/helper-wrap-function@^7.14.5":250 version "7.13.0"250 version "7.14.5"251 resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"251 resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff"252 integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==252 integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==253 dependencies:253 dependencies:254 "@babel/helper-function-name" "^7.12.13"254 "@babel/helper-function-name" "^7.14.5"255 "@babel/template" "^7.12.13"255 "@babel/template" "^7.14.5"256 "@babel/traverse" "^7.13.0"256 "@babel/traverse" "^7.14.5"257 "@babel/types" "^7.13.0"257 "@babel/types" "^7.14.5"258258259"@babel/helpers@^7.13.16":259"@babel/helpers@^7.14.6":260 version "7.13.17"260 version "7.14.6"261 resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6"261 resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635"262 integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==262 integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==263 dependencies:263 dependencies:264 "@babel/template" "^7.12.13"264 "@babel/template" "^7.14.5"265 "@babel/traverse" "^7.13.17"265 "@babel/traverse" "^7.14.5"266 "@babel/types" "^7.13.17"266 "@babel/types" "^7.14.5"267267268"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":268"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":269 version "7.13.10"269 version "7.14.5"270 resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"270 resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"271 integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==271 integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==272 dependencies:272 dependencies:273 "@babel/helper-validator-identifier" "^7.12.11"273 "@babel/helper-validator-identifier" "^7.14.5"274 chalk "^2.0.0"274 chalk "^2.0.0"275 js-tokens "^4.0.0"275 js-tokens "^4.0.0"276276277"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.16":277"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.7.2":278 version "7.13.16"278 version "7.14.6"279 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37"279 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2"280 integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==280 integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==281281282"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":282"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":283 version "7.13.12"283 version "7.14.5"284 resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"284 resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e"285 integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==285 integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==286 dependencies:286 dependencies:287 "@babel/helper-plugin-utils" "^7.13.0"287 "@babel/helper-plugin-utils" "^7.14.5"288 "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"288 "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"289 "@babel/plugin-proposal-optional-chaining" "^7.13.12"289 "@babel/plugin-proposal-optional-chaining" "^7.14.5"290290291"@babel/plugin-proposal-async-generator-functions@^7.13.15":291"@babel/plugin-proposal-async-generator-functions@^7.14.5":292 version "7.13.15"292 version "7.14.5"293 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b"293 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz#4024990e3dd74181f4f426ea657769ff49a2df39"294 integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==294 integrity sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==295 dependencies:295 dependencies:296 "@babel/helper-plugin-utils" "^7.13.0"296 "@babel/helper-plugin-utils" "^7.14.5"297 "@babel/helper-remap-async-to-generator" "^7.13.0"297 "@babel/helper-remap-async-to-generator" "^7.14.5"298 "@babel/plugin-syntax-async-generators" "^7.8.4"298 "@babel/plugin-syntax-async-generators" "^7.8.4"299299300"@babel/plugin-proposal-class-properties@^7.13.0":300"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.14.5":301 version "7.13.0"301 version "7.14.5"302 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"302 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"303 integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==303 integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==304 dependencies:304 dependencies:305 "@babel/helper-create-class-features-plugin" "^7.13.0"305 "@babel/helper-create-class-features-plugin" "^7.14.5"306 "@babel/helper-plugin-utils" "^7.13.0"306 "@babel/helper-plugin-utils" "^7.14.5"307307308"@babel/plugin-proposal-dynamic-import@^7.13.8":308"@babel/plugin-proposal-class-static-block@^7.14.5":309 version "7.13.8"309 version "7.14.5"310 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d"310 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681"311 integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==311 integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==312 dependencies:312 dependencies:313 "@babel/helper-plugin-utils" "^7.13.0"313 "@babel/helper-create-class-features-plugin" "^7.14.5"314 "@babel/helper-plugin-utils" "^7.14.5"315 "@babel/plugin-syntax-class-static-block" "^7.14.5"316317"@babel/plugin-proposal-dynamic-import@^7.14.5":318 version "7.14.5"319 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"320 integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==321 dependencies:322 "@babel/helper-plugin-utils" "^7.14.5"314 "@babel/plugin-syntax-dynamic-import" "^7.8.3"323 "@babel/plugin-syntax-dynamic-import" "^7.8.3"315324316"@babel/plugin-proposal-export-namespace-from@^7.12.13":325"@babel/plugin-proposal-export-namespace-from@^7.14.5":317 version "7.12.13"326 version "7.14.5"318 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d"327 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"319 integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==328 integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==320 dependencies:329 dependencies:321 "@babel/helper-plugin-utils" "^7.12.13"330 "@babel/helper-plugin-utils" "^7.14.5"322 "@babel/plugin-syntax-export-namespace-from" "^7.8.3"331 "@babel/plugin-syntax-export-namespace-from" "^7.8.3"323332324"@babel/plugin-proposal-json-strings@^7.13.8":333"@babel/plugin-proposal-json-strings@^7.14.5":325 version "7.13.8"334 version "7.14.5"326 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b"335 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"327 integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==336 integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==328 dependencies:337 dependencies:329 "@babel/helper-plugin-utils" "^7.13.0"338 "@babel/helper-plugin-utils" "^7.14.5"330 "@babel/plugin-syntax-json-strings" "^7.8.3"339 "@babel/plugin-syntax-json-strings" "^7.8.3"331340332"@babel/plugin-proposal-logical-assignment-operators@^7.13.8":341"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":333 version "7.13.8"342 version "7.14.5"334 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a"343 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"335 integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==344 integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==336 dependencies:345 dependencies:337 "@babel/helper-plugin-utils" "^7.13.0"346 "@babel/helper-plugin-utils" "^7.14.5"338 "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"347 "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"339348340"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8":349"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":341 version "7.13.8"350 version "7.14.5"342 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3"351 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"343 integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==352 integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==344 dependencies:353 dependencies:345 "@babel/helper-plugin-utils" "^7.13.0"354 "@babel/helper-plugin-utils" "^7.14.5"346 "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"355 "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"347356348"@babel/plugin-proposal-numeric-separator@^7.12.13":357"@babel/plugin-proposal-numeric-separator@^7.14.2", "@babel/plugin-proposal-numeric-separator@^7.14.5":349 version "7.12.13"358 version "7.14.5"350 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db"359 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"351 integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==360 integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==352 dependencies:361 dependencies:353 "@babel/helper-plugin-utils" "^7.12.13"362 "@babel/helper-plugin-utils" "^7.14.5"354 "@babel/plugin-syntax-numeric-separator" "^7.10.4"363 "@babel/plugin-syntax-numeric-separator" "^7.10.4"355364356"@babel/plugin-proposal-object-rest-spread@^7.13.8":365"@babel/plugin-proposal-object-rest-spread@^7.14.4", "@babel/plugin-proposal-object-rest-spread@^7.14.5":357 version "7.13.8"366 version "7.14.5"358 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a"367 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz#e581d5ccdfa187ea6ed73f56c6a21c1580b90fbf"359 integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==368 integrity sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==360 dependencies:369 dependencies:361 "@babel/compat-data" "^7.13.8"370 "@babel/compat-data" "^7.14.5"362 "@babel/helper-compilation-targets" "^7.13.8"371 "@babel/helper-compilation-targets" "^7.14.5"363 "@babel/helper-plugin-utils" "^7.13.0"372 "@babel/helper-plugin-utils" "^7.14.5"364 "@babel/plugin-syntax-object-rest-spread" "^7.8.3"373 "@babel/plugin-syntax-object-rest-spread" "^7.8.3"365 "@babel/plugin-transform-parameters" "^7.13.0"374 "@babel/plugin-transform-parameters" "^7.14.5"366375367"@babel/plugin-proposal-optional-catch-binding@^7.13.8":376"@babel/plugin-proposal-optional-catch-binding@^7.14.5":368 version "7.13.8"377 version "7.14.5"369 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107"378 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"370 integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==379 integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==371 dependencies:380 dependencies:372 "@babel/helper-plugin-utils" "^7.13.0"381 "@babel/helper-plugin-utils" "^7.14.5"373 "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"382 "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"374383375"@babel/plugin-proposal-optional-chaining@^7.13.12":384"@babel/plugin-proposal-optional-chaining@^7.14.2", "@babel/plugin-proposal-optional-chaining@^7.14.5":376 version "7.13.12"385 version "7.14.5"377 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866"386 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"378 integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==387 integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==379 dependencies:388 dependencies:380 "@babel/helper-plugin-utils" "^7.13.0"389 "@babel/helper-plugin-utils" "^7.14.5"381 "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"390 "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"382 "@babel/plugin-syntax-optional-chaining" "^7.8.3"391 "@babel/plugin-syntax-optional-chaining" "^7.8.3"383392384"@babel/plugin-proposal-private-methods@^7.13.0":393"@babel/plugin-proposal-private-methods@^7.13.0", "@babel/plugin-proposal-private-methods@^7.14.5":385 version "7.13.0"394 version "7.14.5"386 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787"395 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"387 integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==396 integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==388 dependencies:397 dependencies:389 "@babel/helper-create-class-features-plugin" "^7.13.0"398 "@babel/helper-create-class-features-plugin" "^7.14.5"390 "@babel/helper-plugin-utils" "^7.13.0"399 "@babel/helper-plugin-utils" "^7.14.5"391400392"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":401"@babel/plugin-proposal-private-property-in-object@^7.14.5":393 version "7.12.13"402 version "7.14.5"394 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"403 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636"395 integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==404 integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==396 dependencies:405 dependencies:397 "@babel/helper-create-regexp-features-plugin" "^7.12.13"406 "@babel/helper-annotate-as-pure" "^7.14.5"407 "@babel/helper-create-class-features-plugin" "^7.14.5"398 "@babel/helper-plugin-utils" "^7.12.13"408 "@babel/helper-plugin-utils" "^7.14.5"409 "@babel/plugin-syntax-private-property-in-object" "^7.14.5"399410411"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":412 version "7.14.5"413 resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"414 integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==415 dependencies:416 "@babel/helper-create-regexp-features-plugin" "^7.14.5"417 "@babel/helper-plugin-utils" "^7.14.5"418400"@babel/plugin-syntax-async-generators@^7.8.4":419"@babel/plugin-syntax-async-generators@^7.8.4":401 version "7.8.4"420 version "7.8.4"402 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"421 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"418 dependencies:437 dependencies:419 "@babel/helper-plugin-utils" "^7.12.13"438 "@babel/helper-plugin-utils" "^7.12.13"420439440"@babel/plugin-syntax-class-static-block@^7.14.5":441 version "7.14.5"442 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"443 integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==444 dependencies:445 "@babel/helper-plugin-utils" "^7.14.5"446421"@babel/plugin-syntax-dynamic-import@^7.8.3":447"@babel/plugin-syntax-dynamic-import@^7.8.3":422 version "7.8.3"448 version "7.8.3"423 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"449 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"446 dependencies:472 dependencies:447 "@babel/helper-plugin-utils" "^7.8.0"473 "@babel/helper-plugin-utils" "^7.8.0"448474449"@babel/plugin-syntax-jsx@^7.12.13":475"@babel/plugin-syntax-jsx@^7.14.5":450 version "7.12.13"476 version "7.14.5"451 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15"477 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201"452 integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==478 integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==453 dependencies:479 dependencies:454 "@babel/helper-plugin-utils" "^7.12.13"480 "@babel/helper-plugin-utils" "^7.14.5"455481456"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":482"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":457 version "7.10.4"483 version "7.10.4"495 dependencies:521 dependencies:496 "@babel/helper-plugin-utils" "^7.8.0"522 "@babel/helper-plugin-utils" "^7.8.0"497523498"@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3":524"@babel/plugin-syntax-private-property-in-object@^7.14.5":499 version "7.12.13"525 version "7.14.5"500 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"526 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"501 integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==527 integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==502 dependencies:528 dependencies:503 "@babel/helper-plugin-utils" "^7.12.13"529 "@babel/helper-plugin-utils" "^7.14.5"504530505"@babel/plugin-syntax-typescript@^7.12.13":531"@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":506 version "7.12.13"532 version "7.14.5"507 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474"533 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"508 integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==534 integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==509 dependencies:535 dependencies:510 "@babel/helper-plugin-utils" "^7.12.13"536 "@babel/helper-plugin-utils" "^7.14.5"511537512"@babel/plugin-transform-arrow-functions@^7.13.0":538"@babel/plugin-syntax-typescript@^7.14.5", "@babel/plugin-syntax-typescript@^7.7.2":513 version "7.13.0"539 version "7.14.5"514 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae"540 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716"515 integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==541 integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==516 dependencies:542 dependencies:517 "@babel/helper-plugin-utils" "^7.13.0"543 "@babel/helper-plugin-utils" "^7.14.5"518544519"@babel/plugin-transform-async-to-generator@^7.13.0":545"@babel/plugin-transform-arrow-functions@^7.14.5":520 version "7.13.0"546 version "7.14.5"521 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f"547 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"522 integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==548 integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==523 dependencies:549 dependencies:524 "@babel/helper-module-imports" "^7.12.13"550 "@babel/helper-plugin-utils" "^7.14.5"525 "@babel/helper-plugin-utils" "^7.13.0"526 "@babel/helper-remap-async-to-generator" "^7.13.0"527551528"@babel/plugin-transform-block-scoped-functions@^7.12.13":552"@babel/plugin-transform-async-to-generator@^7.14.5":529 version "7.12.13"553 version "7.14.5"530 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4"554 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"531 integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==555 integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==532 dependencies:556 dependencies:533 "@babel/helper-plugin-utils" "^7.12.13"557 "@babel/helper-module-imports" "^7.14.5"558 "@babel/helper-plugin-utils" "^7.14.5"559 "@babel/helper-remap-async-to-generator" "^7.14.5"534560535"@babel/plugin-transform-block-scoping@^7.12.13":561"@babel/plugin-transform-block-scoped-functions@^7.14.5":536 version "7.13.16"562 version "7.14.5"537 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892"563 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"538 integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==564 integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==539 dependencies:565 dependencies:540 "@babel/helper-plugin-utils" "^7.13.0"566 "@babel/helper-plugin-utils" "^7.14.5"541567542"@babel/plugin-transform-classes@^7.13.0":568"@babel/plugin-transform-block-scoping@^7.14.5":543 version "7.13.0"569 version "7.14.5"544 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b"570 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939"545 integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==571 integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==546 dependencies:572 dependencies:547 "@babel/helper-annotate-as-pure" "^7.12.13"573 "@babel/helper-plugin-utils" "^7.14.5"574575"@babel/plugin-transform-classes@^7.14.5":576 version "7.14.5"577 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf"578 integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==579 dependencies:580 "@babel/helper-annotate-as-pure" "^7.14.5"548 "@babel/helper-function-name" "^7.12.13"581 "@babel/helper-function-name" "^7.14.5"549 "@babel/helper-optimise-call-expression" "^7.12.13"582 "@babel/helper-optimise-call-expression" "^7.14.5"550 "@babel/helper-plugin-utils" "^7.13.0"583 "@babel/helper-plugin-utils" "^7.14.5"551 "@babel/helper-replace-supers" "^7.13.0"584 "@babel/helper-replace-supers" "^7.14.5"552 "@babel/helper-split-export-declaration" "^7.12.13"585 "@babel/helper-split-export-declaration" "^7.14.5"553 globals "^11.1.0"586 globals "^11.1.0"554587555"@babel/plugin-transform-computed-properties@^7.13.0":588"@babel/plugin-transform-computed-properties@^7.14.5":556 version "7.13.0"589 version "7.14.5"557 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed"590 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"558 integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==591 integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==559 dependencies:592 dependencies:560 "@babel/helper-plugin-utils" "^7.13.0"593 "@babel/helper-plugin-utils" "^7.14.5"561594562"@babel/plugin-transform-destructuring@^7.13.0":595"@babel/plugin-transform-destructuring@^7.14.5":563 version "7.13.17"596 version "7.14.5"564 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27"597 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz#d32ad19ff1a6da1e861dc62720d80d9776e3bf35"565 integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==598 integrity sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==566 dependencies:599 dependencies:567 "@babel/helper-plugin-utils" "^7.13.0"600 "@babel/helper-plugin-utils" "^7.14.5"568601569"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4":602"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4":570 version "7.12.13"603 version "7.14.5"571 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad"604 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"572 integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==605 integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==573 dependencies:606 dependencies:574 "@babel/helper-create-regexp-features-plugin" "^7.12.13"607 "@babel/helper-create-regexp-features-plugin" "^7.14.5"575 "@babel/helper-plugin-utils" "^7.12.13"608 "@babel/helper-plugin-utils" "^7.14.5"576609577"@babel/plugin-transform-duplicate-keys@^7.12.13":610"@babel/plugin-transform-duplicate-keys@^7.14.5":578 version "7.12.13"611 version "7.14.5"579 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de"612 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"580 integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==613 integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==581 dependencies:614 dependencies:582 "@babel/helper-plugin-utils" "^7.12.13"615 "@babel/helper-plugin-utils" "^7.14.5"583616584"@babel/plugin-transform-exponentiation-operator@^7.12.13":617"@babel/plugin-transform-exponentiation-operator@^7.14.5":585 version "7.12.13"618 version "7.14.5"586 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1"619 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"587 integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==620 integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==588 dependencies:621 dependencies:589 "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13"622 "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"590 "@babel/helper-plugin-utils" "^7.12.13"623 "@babel/helper-plugin-utils" "^7.14.5"591624592"@babel/plugin-transform-for-of@^7.13.0":625"@babel/plugin-transform-for-of@^7.14.5":593 version "7.13.0"626 version "7.14.5"594 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062"627 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb"595 integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==628 integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==596 dependencies:629 dependencies:597 "@babel/helper-plugin-utils" "^7.13.0"630 "@babel/helper-plugin-utils" "^7.14.5"598631599"@babel/plugin-transform-function-name@^7.12.13":632"@babel/plugin-transform-function-name@^7.14.5":600 version "7.12.13"633 version "7.14.5"601 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051"634 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"602 integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==635 integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==603 dependencies:636 dependencies:604 "@babel/helper-function-name" "^7.12.13"637 "@babel/helper-function-name" "^7.14.5"605 "@babel/helper-plugin-utils" "^7.12.13"638 "@babel/helper-plugin-utils" "^7.14.5"606639607"@babel/plugin-transform-literals@^7.12.13":640"@babel/plugin-transform-literals@^7.14.5":608 version "7.12.13"641 version "7.14.5"609 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9"642 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"610 integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==643 integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==611 dependencies:644 dependencies:612 "@babel/helper-plugin-utils" "^7.12.13"645 "@babel/helper-plugin-utils" "^7.14.5"613646614"@babel/plugin-transform-member-expression-literals@^7.12.13":647"@babel/plugin-transform-member-expression-literals@^7.14.5":615 version "7.12.13"648 version "7.14.5"616 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40"649 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"617 integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==650 integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==618 dependencies:651 dependencies:619 "@babel/helper-plugin-utils" "^7.12.13"652 "@babel/helper-plugin-utils" "^7.14.5"620653621"@babel/plugin-transform-modules-amd@^7.13.0":654"@babel/plugin-transform-modules-amd@^7.14.5":622 version "7.13.0"655 version "7.14.5"623 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3"656 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"624 integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==657 integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==625 dependencies:658 dependencies:626 "@babel/helper-module-transforms" "^7.13.0"659 "@babel/helper-module-transforms" "^7.14.5"627 "@babel/helper-plugin-utils" "^7.13.0"660 "@babel/helper-plugin-utils" "^7.14.5"628 babel-plugin-dynamic-import-node "^2.3.3"661 babel-plugin-dynamic-import-node "^2.3.3"629662630"@babel/plugin-transform-modules-commonjs@^7.13.8":663"@babel/plugin-transform-modules-commonjs@^7.14.5":631 version "7.13.8"664 version "7.14.5"632 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b"665 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97"633 integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==666 integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==634 dependencies:667 dependencies:635 "@babel/helper-module-transforms" "^7.13.0"668 "@babel/helper-module-transforms" "^7.14.5"636 "@babel/helper-plugin-utils" "^7.13.0"669 "@babel/helper-plugin-utils" "^7.14.5"637 "@babel/helper-simple-access" "^7.12.13"670 "@babel/helper-simple-access" "^7.14.5"638 babel-plugin-dynamic-import-node "^2.3.3"671 babel-plugin-dynamic-import-node "^2.3.3"639672640"@babel/plugin-transform-modules-systemjs@^7.13.8":673"@babel/plugin-transform-modules-systemjs@^7.14.5":641 version "7.13.8"674 version "7.14.5"642 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3"675 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29"643 integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==676 integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==644 dependencies:677 dependencies:645 "@babel/helper-hoist-variables" "^7.13.0"678 "@babel/helper-hoist-variables" "^7.14.5"646 "@babel/helper-module-transforms" "^7.13.0"679 "@babel/helper-module-transforms" "^7.14.5"647 "@babel/helper-plugin-utils" "^7.13.0"680 "@babel/helper-plugin-utils" "^7.14.5"648 "@babel/helper-validator-identifier" "^7.12.11"681 "@babel/helper-validator-identifier" "^7.14.5"649 babel-plugin-dynamic-import-node "^2.3.3"682 babel-plugin-dynamic-import-node "^2.3.3"650683651"@babel/plugin-transform-modules-umd@^7.13.0":684"@babel/plugin-transform-modules-umd@^7.14.5":652 version "7.13.0"685 version "7.14.5"653 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b"686 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"654 integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==687 integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==655 dependencies:688 dependencies:656 "@babel/helper-module-transforms" "^7.13.0"689 "@babel/helper-module-transforms" "^7.14.5"657 "@babel/helper-plugin-utils" "^7.13.0"690 "@babel/helper-plugin-utils" "^7.14.5"658691659"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":692"@babel/plugin-transform-named-capturing-groups-regex@^7.14.5":660 version "7.12.13"693 version "7.14.5"661 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9"694 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz#d537e8ee083ee6f6aa4f4eef9d2081d555746e4c"662 integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==695 integrity sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==663 dependencies:696 dependencies:664 "@babel/helper-create-regexp-features-plugin" "^7.12.13"697 "@babel/helper-create-regexp-features-plugin" "^7.14.5"665698666"@babel/plugin-transform-new-target@^7.12.13":699"@babel/plugin-transform-new-target@^7.14.5":667 version "7.12.13"700 version "7.14.5"668 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c"701 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"669 integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==702 integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==670 dependencies:703 dependencies:671 "@babel/helper-plugin-utils" "^7.12.13"704 "@babel/helper-plugin-utils" "^7.14.5"672705673"@babel/plugin-transform-object-super@^7.12.13":706"@babel/plugin-transform-object-super@^7.14.5":674 version "7.12.13"707 version "7.14.5"675 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7"708 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"676 integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==709 integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==677 dependencies:710 dependencies:678 "@babel/helper-plugin-utils" "^7.12.13"711 "@babel/helper-plugin-utils" "^7.14.5"679 "@babel/helper-replace-supers" "^7.12.13"712 "@babel/helper-replace-supers" "^7.14.5"680713681"@babel/plugin-transform-parameters@^7.13.0":714"@babel/plugin-transform-parameters@^7.14.5":682 version "7.13.0"715 version "7.14.5"683 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007"716 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3"684 integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==717 integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==685 dependencies:718 dependencies:686 "@babel/helper-plugin-utils" "^7.13.0"719 "@babel/helper-plugin-utils" "^7.14.5"687720688"@babel/plugin-transform-property-literals@^7.12.13":721"@babel/plugin-transform-property-literals@^7.14.5":689 version "7.12.13"722 version "7.14.5"690 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81"723 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"691 integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==724 integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==692 dependencies:725 dependencies:693 "@babel/helper-plugin-utils" "^7.12.13"726 "@babel/helper-plugin-utils" "^7.14.5"694727695"@babel/plugin-transform-react-display-name@^7.12.13":728"@babel/plugin-transform-react-display-name@^7.14.5":696 version "7.12.13"729 version "7.14.5"697 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd"730 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz#baa92d15c4570411301a85a74c13534873885b65"698 integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==731 integrity sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ==699 dependencies:732 dependencies:700 "@babel/helper-plugin-utils" "^7.12.13"733 "@babel/helper-plugin-utils" "^7.14.5"701734702"@babel/plugin-transform-react-jsx-development@^7.12.17":735"@babel/plugin-transform-react-jsx-development@^7.14.5":703 version "7.12.17"736 version "7.14.5"704 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447"737 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af"705 integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==738 integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==706 dependencies:739 dependencies:707 "@babel/plugin-transform-react-jsx" "^7.12.17"740 "@babel/plugin-transform-react-jsx" "^7.14.5"708741709"@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12":742"@babel/plugin-transform-react-jsx@^7.14.5":710 version "7.13.12"743 version "7.14.5"711 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3"744 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz#39749f0ee1efd8a1bd729152cf5f78f1d247a44a"712 integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==745 integrity sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q==713 dependencies:746 dependencies:714 "@babel/helper-annotate-as-pure" "^7.12.13"747 "@babel/helper-annotate-as-pure" "^7.14.5"715 "@babel/helper-module-imports" "^7.13.12"748 "@babel/helper-module-imports" "^7.14.5"716 "@babel/helper-plugin-utils" "^7.13.0"749 "@babel/helper-plugin-utils" "^7.14.5"717 "@babel/plugin-syntax-jsx" "^7.12.13"750 "@babel/plugin-syntax-jsx" "^7.14.5"718 "@babel/types" "^7.13.12"751 "@babel/types" "^7.14.5"719752720"@babel/plugin-transform-react-pure-annotations@^7.12.1":753"@babel/plugin-transform-react-pure-annotations@^7.14.5":721 version "7.12.1"754 version "7.14.5"722 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42"755 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc"723 integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==756 integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==724 dependencies:757 dependencies:725 "@babel/helper-annotate-as-pure" "^7.10.4"758 "@babel/helper-annotate-as-pure" "^7.14.5"726 "@babel/helper-plugin-utils" "^7.10.4"759 "@babel/helper-plugin-utils" "^7.14.5"727760728"@babel/plugin-transform-regenerator@^7.13.15":761"@babel/plugin-transform-regenerator@^7.13.15", "@babel/plugin-transform-regenerator@^7.14.5":729 version "7.13.15"762 version "7.14.5"730 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39"763 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"731 integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==764 integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==732 dependencies:765 dependencies:733 regenerator-transform "^0.14.2"766 regenerator-transform "^0.14.2"734767735"@babel/plugin-transform-reserved-words@^7.12.13":768"@babel/plugin-transform-reserved-words@^7.14.5":736 version "7.12.13"769 version "7.14.5"737 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"770 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"738 integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==771 integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==739 dependencies:772 dependencies:740 "@babel/helper-plugin-utils" "^7.12.13"773 "@babel/helper-plugin-utils" "^7.14.5"741774742"@babel/plugin-transform-runtime@^7.13.15":775"@babel/plugin-transform-runtime@^7.14.3":743 version "7.13.15"776 version "7.14.5"744 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz#2eddf585dd066b84102517e10a577f24f76a9cd7"777 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523"745 integrity sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==778 integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==746 dependencies:779 dependencies:747 "@babel/helper-module-imports" "^7.13.12"780 "@babel/helper-module-imports" "^7.14.5"748 "@babel/helper-plugin-utils" "^7.13.0"781 "@babel/helper-plugin-utils" "^7.14.5"749 babel-plugin-polyfill-corejs2 "^0.2.0"782 babel-plugin-polyfill-corejs2 "^0.2.2"750 babel-plugin-polyfill-corejs3 "^0.2.0"783 babel-plugin-polyfill-corejs3 "^0.2.2"751 babel-plugin-polyfill-regenerator "^0.2.0"784 babel-plugin-polyfill-regenerator "^0.2.2"752 semver "^6.3.0"785 semver "^6.3.0"753786754"@babel/plugin-transform-shorthand-properties@^7.12.13":787"@babel/plugin-transform-shorthand-properties@^7.14.5":755 version "7.12.13"788 version "7.14.5"756 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad"789 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"757 integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==790 integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==758 dependencies:791 dependencies:759 "@babel/helper-plugin-utils" "^7.12.13"792 "@babel/helper-plugin-utils" "^7.14.5"760793761"@babel/plugin-transform-spread@^7.13.0":794"@babel/plugin-transform-spread@^7.14.5":762 version "7.13.0"795 version "7.14.6"763 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd"796 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"764 integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==797 integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==765 dependencies:798 dependencies:766 "@babel/helper-plugin-utils" "^7.13.0"799 "@babel/helper-plugin-utils" "^7.14.5"767 "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"800 "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"768801769"@babel/plugin-transform-sticky-regex@^7.12.13":802"@babel/plugin-transform-sticky-regex@^7.14.5":770 version "7.12.13"803 version "7.14.5"771 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f"804 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"772 integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==805 integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==773 dependencies:806 dependencies:774 "@babel/helper-plugin-utils" "^7.12.13"807 "@babel/helper-plugin-utils" "^7.14.5"775808776"@babel/plugin-transform-template-literals@^7.13.0":809"@babel/plugin-transform-template-literals@^7.14.5":777 version "7.13.0"810 version "7.14.5"778 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d"811 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"779 integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==812 integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==780 dependencies:813 dependencies:781 "@babel/helper-plugin-utils" "^7.13.0"814 "@babel/helper-plugin-utils" "^7.14.5"782815783"@babel/plugin-transform-typeof-symbol@^7.12.13":816"@babel/plugin-transform-typeof-symbol@^7.14.5":784 version "7.12.13"817 version "7.14.5"785 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f"818 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"786 integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==819 integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==787 dependencies:820 dependencies:788 "@babel/helper-plugin-utils" "^7.12.13"821 "@babel/helper-plugin-utils" "^7.14.5"789822790"@babel/plugin-transform-typescript@^7.13.0":823"@babel/plugin-transform-typescript@^7.14.5":791 version "7.13.0"824 version "7.14.6"792 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853"825 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c"793 integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==826 integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==794 dependencies:827 dependencies:795 "@babel/helper-create-class-features-plugin" "^7.13.0"828 "@babel/helper-create-class-features-plugin" "^7.14.6"796 "@babel/helper-plugin-utils" "^7.13.0"829 "@babel/helper-plugin-utils" "^7.14.5"797 "@babel/plugin-syntax-typescript" "^7.12.13"830 "@babel/plugin-syntax-typescript" "^7.14.5"798831799"@babel/plugin-transform-unicode-escapes@^7.12.13":832"@babel/plugin-transform-unicode-escapes@^7.14.5":800 version "7.12.13"833 version "7.14.5"801 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74"834 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"802 integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==835 integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==803 dependencies:836 dependencies:804 "@babel/helper-plugin-utils" "^7.12.13"837 "@babel/helper-plugin-utils" "^7.14.5"805838806"@babel/plugin-transform-unicode-regex@^7.12.13":839"@babel/plugin-transform-unicode-regex@^7.14.5":807 version "7.12.13"840 version "7.14.5"808 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac"841 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"809 integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==842 integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==810 dependencies:843 dependencies:811 "@babel/helper-create-regexp-features-plugin" "^7.12.13"844 "@babel/helper-create-regexp-features-plugin" "^7.14.5"812 "@babel/helper-plugin-utils" "^7.12.13"845 "@babel/helper-plugin-utils" "^7.14.5"813846814"@babel/preset-env@^7.13.15":847"@babel/preset-env@^7.14.4":815 version "7.13.15"848 version "7.14.5"816 resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f"849 resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.5.tgz#c0c84e763661fd0e74292c3d511cb33b0c668997"817 integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==850 integrity sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==818 dependencies:851 dependencies:819 "@babel/compat-data" "^7.13.15"852 "@babel/compat-data" "^7.14.5"820 "@babel/helper-compilation-targets" "^7.13.13"853 "@babel/helper-compilation-targets" "^7.14.5"821 "@babel/helper-plugin-utils" "^7.13.0"854 "@babel/helper-plugin-utils" "^7.14.5"822 "@babel/helper-validator-option" "^7.12.17"855 "@babel/helper-validator-option" "^7.14.5"823 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"856 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5"824 "@babel/plugin-proposal-async-generator-functions" "^7.13.15"857 "@babel/plugin-proposal-async-generator-functions" "^7.14.5"825 "@babel/plugin-proposal-class-properties" "^7.13.0"858 "@babel/plugin-proposal-class-properties" "^7.14.5"826 "@babel/plugin-proposal-dynamic-import" "^7.13.8"859 "@babel/plugin-proposal-class-static-block" "^7.14.5"860 "@babel/plugin-proposal-dynamic-import" "^7.14.5"827 "@babel/plugin-proposal-export-namespace-from" "^7.12.13"861 "@babel/plugin-proposal-export-namespace-from" "^7.14.5"828 "@babel/plugin-proposal-json-strings" "^7.13.8"862 "@babel/plugin-proposal-json-strings" "^7.14.5"829 "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8"863 "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"830 "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8"864 "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"831 "@babel/plugin-proposal-numeric-separator" "^7.12.13"865 "@babel/plugin-proposal-numeric-separator" "^7.14.5"832 "@babel/plugin-proposal-object-rest-spread" "^7.13.8"866 "@babel/plugin-proposal-object-rest-spread" "^7.14.5"833 "@babel/plugin-proposal-optional-catch-binding" "^7.13.8"867 "@babel/plugin-proposal-optional-catch-binding" "^7.14.5"834 "@babel/plugin-proposal-optional-chaining" "^7.13.12"868 "@babel/plugin-proposal-optional-chaining" "^7.14.5"835 "@babel/plugin-proposal-private-methods" "^7.13.0"869 "@babel/plugin-proposal-private-methods" "^7.14.5"870 "@babel/plugin-proposal-private-property-in-object" "^7.14.5"836 "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"871 "@babel/plugin-proposal-unicode-property-regex" "^7.14.5"837 "@babel/plugin-syntax-async-generators" "^7.8.4"872 "@babel/plugin-syntax-async-generators" "^7.8.4"838 "@babel/plugin-syntax-class-properties" "^7.12.13"873 "@babel/plugin-syntax-class-properties" "^7.12.13"874 "@babel/plugin-syntax-class-static-block" "^7.14.5"839 "@babel/plugin-syntax-dynamic-import" "^7.8.3"875 "@babel/plugin-syntax-dynamic-import" "^7.8.3"840 "@babel/plugin-syntax-export-namespace-from" "^7.8.3"876 "@babel/plugin-syntax-export-namespace-from" "^7.8.3"841 "@babel/plugin-syntax-json-strings" "^7.8.3"877 "@babel/plugin-syntax-json-strings" "^7.8.3"845 "@babel/plugin-syntax-object-rest-spread" "^7.8.3"881 "@babel/plugin-syntax-object-rest-spread" "^7.8.3"846 "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"882 "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"847 "@babel/plugin-syntax-optional-chaining" "^7.8.3"883 "@babel/plugin-syntax-optional-chaining" "^7.8.3"848 "@babel/plugin-syntax-top-level-await" "^7.12.13"884 "@babel/plugin-syntax-private-property-in-object" "^7.14.5"885 "@babel/plugin-syntax-top-level-await" "^7.14.5"849 "@babel/plugin-transform-arrow-functions" "^7.13.0"886 "@babel/plugin-transform-arrow-functions" "^7.14.5"850 "@babel/plugin-transform-async-to-generator" "^7.13.0"887 "@babel/plugin-transform-async-to-generator" "^7.14.5"851 "@babel/plugin-transform-block-scoped-functions" "^7.12.13"888 "@babel/plugin-transform-block-scoped-functions" "^7.14.5"852 "@babel/plugin-transform-block-scoping" "^7.12.13"889 "@babel/plugin-transform-block-scoping" "^7.14.5"853 "@babel/plugin-transform-classes" "^7.13.0"890 "@babel/plugin-transform-classes" "^7.14.5"854 "@babel/plugin-transform-computed-properties" "^7.13.0"891 "@babel/plugin-transform-computed-properties" "^7.14.5"855 "@babel/plugin-transform-destructuring" "^7.13.0"892 "@babel/plugin-transform-destructuring" "^7.14.5"856 "@babel/plugin-transform-dotall-regex" "^7.12.13"893 "@babel/plugin-transform-dotall-regex" "^7.14.5"857 "@babel/plugin-transform-duplicate-keys" "^7.12.13"894 "@babel/plugin-transform-duplicate-keys" "^7.14.5"858 "@babel/plugin-transform-exponentiation-operator" "^7.12.13"895 "@babel/plugin-transform-exponentiation-operator" "^7.14.5"859 "@babel/plugin-transform-for-of" "^7.13.0"896 "@babel/plugin-transform-for-of" "^7.14.5"860 "@babel/plugin-transform-function-name" "^7.12.13"897 "@babel/plugin-transform-function-name" "^7.14.5"861 "@babel/plugin-transform-literals" "^7.12.13"898 "@babel/plugin-transform-literals" "^7.14.5"862 "@babel/plugin-transform-member-expression-literals" "^7.12.13"899 "@babel/plugin-transform-member-expression-literals" "^7.14.5"863 "@babel/plugin-transform-modules-amd" "^7.13.0"900 "@babel/plugin-transform-modules-amd" "^7.14.5"864 "@babel/plugin-transform-modules-commonjs" "^7.13.8"901 "@babel/plugin-transform-modules-commonjs" "^7.14.5"865 "@babel/plugin-transform-modules-systemjs" "^7.13.8"902 "@babel/plugin-transform-modules-systemjs" "^7.14.5"866 "@babel/plugin-transform-modules-umd" "^7.13.0"903 "@babel/plugin-transform-modules-umd" "^7.14.5"867 "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"904 "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.5"868 "@babel/plugin-transform-new-target" "^7.12.13"905 "@babel/plugin-transform-new-target" "^7.14.5"869 "@babel/plugin-transform-object-super" "^7.12.13"906 "@babel/plugin-transform-object-super" "^7.14.5"870 "@babel/plugin-transform-parameters" "^7.13.0"907 "@babel/plugin-transform-parameters" "^7.14.5"871 "@babel/plugin-transform-property-literals" "^7.12.13"908 "@babel/plugin-transform-property-literals" "^7.14.5"872 "@babel/plugin-transform-regenerator" "^7.13.15"909 "@babel/plugin-transform-regenerator" "^7.14.5"873 "@babel/plugin-transform-reserved-words" "^7.12.13"910 "@babel/plugin-transform-reserved-words" "^7.14.5"874 "@babel/plugin-transform-shorthand-properties" "^7.12.13"911 "@babel/plugin-transform-shorthand-properties" "^7.14.5"875 "@babel/plugin-transform-spread" "^7.13.0"912 "@babel/plugin-transform-spread" "^7.14.5"876 "@babel/plugin-transform-sticky-regex" "^7.12.13"913 "@babel/plugin-transform-sticky-regex" "^7.14.5"877 "@babel/plugin-transform-template-literals" "^7.13.0"914 "@babel/plugin-transform-template-literals" "^7.14.5"878 "@babel/plugin-transform-typeof-symbol" "^7.12.13"915 "@babel/plugin-transform-typeof-symbol" "^7.14.5"879 "@babel/plugin-transform-unicode-escapes" "^7.12.13"916 "@babel/plugin-transform-unicode-escapes" "^7.14.5"880 "@babel/plugin-transform-unicode-regex" "^7.12.13"917 "@babel/plugin-transform-unicode-regex" "^7.14.5"881 "@babel/preset-modules" "^0.1.4"918 "@babel/preset-modules" "^0.1.4"882 "@babel/types" "^7.13.14"919 "@babel/types" "^7.14.5"883 babel-plugin-polyfill-corejs2 "^0.2.0"920 babel-plugin-polyfill-corejs2 "^0.2.2"884 babel-plugin-polyfill-corejs3 "^0.2.0"921 babel-plugin-polyfill-corejs3 "^0.2.2"885 babel-plugin-polyfill-regenerator "^0.2.0"922 babel-plugin-polyfill-regenerator "^0.2.2"886 core-js-compat "^3.9.0"923 core-js-compat "^3.14.0"887 semver "^6.3.0"924 semver "^6.3.0"888925889"@babel/preset-modules@^0.1.4":926"@babel/preset-modules@^0.1.4":898 esutils "^2.0.2"935 esutils "^2.0.2"899936900"@babel/preset-react@^7.13.13":937"@babel/preset-react@^7.13.13":901 version "7.13.13"938 version "7.14.5"902 resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761"939 resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c"903 integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==940 integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==904 dependencies:941 dependencies:905 "@babel/helper-plugin-utils" "^7.13.0"942 "@babel/helper-plugin-utils" "^7.14.5"906 "@babel/helper-validator-option" "^7.12.17"943 "@babel/helper-validator-option" "^7.14.5"907 "@babel/plugin-transform-react-display-name" "^7.12.13"944 "@babel/plugin-transform-react-display-name" "^7.14.5"908 "@babel/plugin-transform-react-jsx" "^7.13.12"945 "@babel/plugin-transform-react-jsx" "^7.14.5"909 "@babel/plugin-transform-react-jsx-development" "^7.12.17"946 "@babel/plugin-transform-react-jsx-development" "^7.14.5"910 "@babel/plugin-transform-react-pure-annotations" "^7.12.1"947 "@babel/plugin-transform-react-pure-annotations" "^7.14.5"911948912"@babel/preset-typescript@^7.13.0":949"@babel/preset-typescript@^7.13.0":913 version "7.13.0"950 version "7.14.5"914 resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a"951 resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0"915 integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==952 integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==916 dependencies:953 dependencies:917 "@babel/helper-plugin-utils" "^7.13.0"954 "@babel/helper-plugin-utils" "^7.14.5"918 "@babel/helper-validator-option" "^7.12.17"955 "@babel/helper-validator-option" "^7.14.5"919 "@babel/plugin-transform-typescript" "^7.13.0"956 "@babel/plugin-transform-typescript" "^7.14.5"920957921"@babel/register@^7.13.16":958"@babel/register@^7.13.16":922 version "7.13.16"959 version "7.14.5"923 resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.13.16.tgz#ae3ab0b55c8ec28763877383c454f01521d9a53d"960 resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.14.5.tgz#d0eac615065d9c2f1995842f85d6e56c345f3233"924 integrity sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==961 integrity sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg==925 dependencies:962 dependencies:926 clone-deep "^4.0.1"963 clone-deep "^4.0.1"927 find-cache-dir "^2.0.0"964 find-cache-dir "^2.0.0"928 make-dir "^2.1.0"965 make-dir "^2.1.0"929 pirates "^4.0.0"966 pirates "^4.0.0"930 source-map-support "^0.5.16"967 source-map-support "^0.5.16"931968932"@babel/runtime@^7.13.17", "@babel/runtime@^7.13.9", "@babel/runtime@^7.8.4":969"@babel/runtime@^7.13.17", "@babel/runtime@^7.13.9", "@babel/runtime@^7.14.0", "@babel/runtime@^7.14.5", "@babel/runtime@^7.8.4":933 version "7.13.17"970 version "7.14.6"934 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec"971 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d"935 integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==972 integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==936 dependencies:973 dependencies:937 regenerator-runtime "^0.13.4"974 regenerator-runtime "^0.13.4"938975939"@babel/template@^7.12.13", "@babel/template@^7.3.3":976"@babel/template@^7.14.5", "@babel/template@^7.3.3":940 version "7.12.13"977 version "7.14.5"941 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"978 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"942 integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==979 integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==943 dependencies:980 dependencies:944 "@babel/code-frame" "^7.12.13"981 "@babel/code-frame" "^7.14.5"945 "@babel/parser" "^7.12.13"982 "@babel/parser" "^7.14.5"946 "@babel/types" "^7.12.13"983 "@babel/types" "^7.14.5"947984948"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17":985"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2":949 version "7.13.17"986 version "7.14.5"950 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3"987 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870"951 integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==988 integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==952 dependencies:989 dependencies:953 "@babel/code-frame" "^7.12.13"990 "@babel/code-frame" "^7.14.5"954 "@babel/generator" "^7.13.16"991 "@babel/generator" "^7.14.5"955 "@babel/helper-function-name" "^7.12.13"992 "@babel/helper-function-name" "^7.14.5"956 "@babel/helper-split-export-declaration" "^7.12.13"993 "@babel/helper-hoist-variables" "^7.14.5"994 "@babel/helper-split-export-declaration" "^7.14.5"957 "@babel/parser" "^7.13.16"995 "@babel/parser" "^7.14.5"958 "@babel/types" "^7.13.17"996 "@babel/types" "^7.14.5"959 debug "^4.1.0"997 debug "^4.1.0"960 globals "^11.1.0"998 globals "^11.1.0"961999962"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":1000"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":963 version "7.13.17"1001 version "7.14.5"964 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4"1002 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff"965 integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==1003 integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==966 dependencies:1004 dependencies:967 "@babel/helper-validator-identifier" "^7.12.11"1005 "@babel/helper-validator-identifier" "^7.14.5"968 to-fast-properties "^2.0.0"1006 to-fast-properties "^2.0.0"9691007970"@bcoe/v8-coverage@^0.2.3":1008"@bcoe/v8-coverage@^0.2.3":971 version "0.2.3"1009 version "0.2.3"972 resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"1010 resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"973 integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==1011 integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==9741012975"@cnakazawa/watch@^1.0.3":1013"@eslint/eslintrc@^0.4.2":976 version "1.0.4"1014 version "0.4.2"977 resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"1015 resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"978 integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==1016 integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==979 dependencies:1017 dependencies:980 exec-sh "^0.3.2"981 minimist "^1.2.0"982983"@eslint/eslintrc@^0.4.0":984 version "0.4.0"985 resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"986 integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==987 dependencies:988 ajv "^6.12.4"1018 ajv "^6.12.4"989 debug "^4.1.1"1019 debug "^4.1.1"990 espree "^7.3.0"1020 espree "^7.3.0"991 globals "^12.1.0"1021 globals "^13.9.0"992 ignore "^4.0.6"1022 ignore "^4.0.6"993 import-fresh "^3.2.1"1023 import-fresh "^3.2.1"994 js-yaml "^3.13.1"1024 js-yaml "^3.13.1"1010 "@ethersproject/properties" "^5.0.3"1040 "@ethersproject/properties" "^5.0.3"1011 "@ethersproject/strings" "^5.0.4"1041 "@ethersproject/strings" "^5.0.4"101210421013"@ethersproject/abstract-provider@^5.1.0":1043"@ethersproject/abstract-provider@^5.3.0":1014 version "5.1.0"1044 version "5.3.0"1015 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.1.0.tgz#1f24c56cda5524ef4ed3cfc562a01d6b6f8eeb0b"1045 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz#f4c0ae4a4cef9f204d7781de805fd44b72756c81"1016 integrity sha512-8dJUnT8VNvPwWhYIau4dwp7qe1g+KgdRm4XTWvjkI9gAT2zZa90WF5ApdZ3vl1r6NDmnn6vUVvyphClRZRteTQ==1046 integrity sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw==1017 dependencies:1047 dependencies:1018 "@ethersproject/bignumber" "^5.1.0"1048 "@ethersproject/bignumber" "^5.3.0"1019 "@ethersproject/bytes" "^5.1.0"1049 "@ethersproject/bytes" "^5.3.0"1020 "@ethersproject/logger" "^5.1.0"1050 "@ethersproject/logger" "^5.3.0"1021 "@ethersproject/networks" "^5.1.0"1051 "@ethersproject/networks" "^5.3.0"1022 "@ethersproject/properties" "^5.1.0"1052 "@ethersproject/properties" "^5.3.0"1023 "@ethersproject/transactions" "^5.1.0"1053 "@ethersproject/transactions" "^5.3.0"1024 "@ethersproject/web" "^5.1.0"1054 "@ethersproject/web" "^5.3.0"102510551026"@ethersproject/abstract-signer@^5.1.0":1056"@ethersproject/abstract-signer@^5.3.0":1027 version "5.1.0"1057 version "5.3.0"1028 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.1.0.tgz#744c7a2d0ebe3cc0bc38294d0f53d5ca3f4e49e3"1058 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz#05172b653e15b535ed5854ef5f6a72f4b441052d"1029 integrity sha512-qQDMkjGZSSJSKl6AnfTgmz9FSnzq3iEoEbHTYwjDlEAv+LNP7zd4ixCcVWlWyk+2siud856M5CRhAmPdupeN9w==1059 integrity sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg==1030 dependencies:1060 dependencies:1031 "@ethersproject/abstract-provider" "^5.1.0"1061 "@ethersproject/abstract-provider" "^5.3.0"1032 "@ethersproject/bignumber" "^5.1.0"1062 "@ethersproject/bignumber" "^5.3.0"1033 "@ethersproject/bytes" "^5.1.0"1063 "@ethersproject/bytes" "^5.3.0"1034 "@ethersproject/logger" "^5.1.0"1064 "@ethersproject/logger" "^5.3.0"1035 "@ethersproject/properties" "^5.1.0"1065 "@ethersproject/properties" "^5.3.0"103610661037"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.1.0":1067"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.3.0":1038 version "5.1.0"1068 version "5.3.0"1039 resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.1.0.tgz#3854fd7ebcb6af7597de66f847c3345dae735b58"1069 resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.3.0.tgz#e53b69eacebf332e8175de814c5e6507d6932518"1040 integrity sha512-rfWQR12eHn2cpstCFS4RF7oGjfbkZb0oqep+BfrT+gWEGWG2IowJvIsacPOvzyS1jhNF4MQ4BS59B04Mbovteg==1070 integrity sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==1041 dependencies:1071 dependencies:1042 "@ethersproject/bignumber" "^5.1.0"1072 "@ethersproject/bignumber" "^5.3.0"1043 "@ethersproject/bytes" "^5.1.0"1073 "@ethersproject/bytes" "^5.3.0"1044 "@ethersproject/keccak256" "^5.1.0"1074 "@ethersproject/keccak256" "^5.3.0"1045 "@ethersproject/logger" "^5.1.0"1075 "@ethersproject/logger" "^5.3.0"1046 "@ethersproject/rlp" "^5.1.0"1076 "@ethersproject/rlp" "^5.3.0"104710771048"@ethersproject/base64@^5.1.0":1078"@ethersproject/base64@^5.3.0":1049 version "5.1.0"1079 version "5.3.0"1050 resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.1.0.tgz#27240c174d0a4e13f6eae87416fd876caf7f42b6"1080 resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.3.0.tgz#b831fb35418b42ad24d943c557259062b8640824"1051 integrity sha512-npD1bLvK4Bcxz+m4EMkx+F8Rd7CnqS9DYnhNu0/GlQBXhWjvfoAZzk5HJ0f1qeyp8d+A86PTuzLOGOXf4/CN8g==1081 integrity sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw==1052 dependencies:1082 dependencies:1053 "@ethersproject/bytes" "^5.1.0"1083 "@ethersproject/bytes" "^5.3.0"105410841055"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.1.0":1085"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.3.0":1056 version "5.1.1"1086 version "5.3.0"1057 resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.1.1.tgz#84812695253ccbc639117f7ac49ee1529b68e637"1087 resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.3.0.tgz#74ab2ec9c3bda4e344920565720a6ee9c794e9db"1058 integrity sha512-AVz5iqz7+70RIqoQTznsdJ6DOVBYciNlvO+AlQmPTB6ofCvoihI9bQdr6wljsX+d5W7Yc4nyvQvP4JMzg0Agig==1088 integrity sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==1059 dependencies:1089 dependencies:1060 "@ethersproject/bytes" "^5.1.0"1090 "@ethersproject/bytes" "^5.3.0"1061 "@ethersproject/logger" "^5.1.0"1091 "@ethersproject/logger" "^5.3.0"1062 bn.js "^4.4.0"1092 bn.js "^4.11.9"106310931064"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.1.0":1094"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.3.0":1065 version "5.1.0"1095 version "5.3.0"1066 resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.1.0.tgz#55dfa9c4c21df1b1b538be3accb50fb76d5facfd"1096 resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.3.0.tgz#473e0da7f831d535b2002be05e6f4ca3729a1bc9"1067 integrity sha512-sGTxb+LVjFxJcJeUswAIK6ncgOrh3D8c192iEJd7mLr95V6du119rRfYT/b87WPkZ5I3gRBUYIYXtdgCWACe8g==1097 integrity sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==1068 dependencies:1098 dependencies:1069 "@ethersproject/logger" "^5.1.0"1099 "@ethersproject/logger" "^5.3.0"107011001071"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.1.0":1101"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.3.0":1072 version "5.1.0"1102 version "5.3.0"1073 resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.1.0.tgz#4e7da6367ea0e9be87585d8b09f3fccf384b1452"1103 resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.3.0.tgz#a5d6d86c0eec2c64c3024479609493b9afb3fc77"1074 integrity sha512-0/SuHrxc8R8k+JiLmJymxHJbojUDWBQqO+b+XFdwaP0jGzqC09YDy/CAlSZB6qHsBifY8X3I89HcK/oMqxRdBw==1104 integrity sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==1075 dependencies:1105 dependencies:1076 "@ethersproject/bignumber" "^5.1.0"1106 "@ethersproject/bignumber" "^5.3.0"107711071078"@ethersproject/hash@^5.0.4":1108"@ethersproject/hash@^5.0.4":1079 version "5.1.0"1109 version "5.3.0"1080 resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.1.0.tgz#40961d64837d57f580b7b055e0d74174876d891e"1110 resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.3.0.tgz#f65e3bf3db3282df4da676db6cfa049535dd3643"1081 integrity sha512-fNwry20yLLPpnRRwm3fBL+2ksgO+KMadxM44WJmRIoTKzy4269+rbq9KFoe2LTqq2CXJM2CE70beGaNrpuqflQ==1111 integrity sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==1082 dependencies:1112 dependencies:1083 "@ethersproject/abstract-signer" "^5.1.0"1113 "@ethersproject/abstract-signer" "^5.3.0"1084 "@ethersproject/address" "^5.1.0"1114 "@ethersproject/address" "^5.3.0"1085 "@ethersproject/bignumber" "^5.1.0"1115 "@ethersproject/bignumber" "^5.3.0"1086 "@ethersproject/bytes" "^5.1.0"1116 "@ethersproject/bytes" "^5.3.0"1087 "@ethersproject/keccak256" "^5.1.0"1117 "@ethersproject/keccak256" "^5.3.0"1088 "@ethersproject/logger" "^5.1.0"1118 "@ethersproject/logger" "^5.3.0"1089 "@ethersproject/properties" "^5.1.0"1119 "@ethersproject/properties" "^5.3.0"1090 "@ethersproject/strings" "^5.1.0"1120 "@ethersproject/strings" "^5.3.0"109111211092"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.1.0":1122"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.3.0":1093 version "5.1.0"1123 version "5.3.0"1094 resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.1.0.tgz#fdcd88fb13bfef4271b225cdd8dec4d315c8e60e"1124 resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.3.0.tgz#fb5cd36bdfd6fa02e2ea84964078a9fc6bd731be"1095 integrity sha512-vrTB1W6AEYoadww5c9UyVJ2YcSiyIUTNDRccZIgwTmFFoSHwBtcvG1hqy9RzJ1T0bMdATbM9Hfx2mJ6H0i7Hig==1125 integrity sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==1096 dependencies:1126 dependencies:1097 "@ethersproject/bytes" "^5.1.0"1127 "@ethersproject/bytes" "^5.3.0"1098 js-sha3 "0.5.7"1128 js-sha3 "0.5.7"109911291100"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.1.0":1130"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.3.0":1101 version "5.1.0"1131 version "5.3.0"1102 resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.1.0.tgz#4cdeeefac029373349d5818f39c31b82cc6d9bbf"1132 resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.3.0.tgz#7a69fa1d4ca0d4b7138da1627eb152f763d84dd0"1103 integrity sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw==1133 integrity sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==110411341105"@ethersproject/networks@^5.1.0":1135"@ethersproject/networks@^5.3.0":1106 version "5.1.0"1136 version "5.3.1"1107 resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.1.0.tgz#f537290cb05aa6dc5e81e910926c04cfd5814bca"1137 resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.3.1.tgz#78fe08324cee289ce239acf8c746121934b2ef61"1108 integrity sha512-A/NIrIED/G/IgU1XUukOA3WcFRxn2I4O5GxsYGA5nFlIi+UZWdGojs85I1VXkR1gX9eFnDXzjE6OtbgZHjFhIA==1138 integrity sha512-6uQKHkYChlsfeiZhQ8IHIqGE/sQsf25o9ZxAYpMxi15dLPzz3IxOEF5KiSD32aHwsjXVBKBSlo+teAXLlYJybw==1109 dependencies:1139 dependencies:1110 "@ethersproject/logger" "^5.1.0"1140 "@ethersproject/logger" "^5.3.0"111111411112"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.1.0":1142"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.3.0":1113 version "5.1.0"1143 version "5.3.0"1114 resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.1.0.tgz#9484bd6def16595fc6e4bdc26f29dff4d3f6ac42"1144 resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.3.0.tgz#feef4c4babeb7c10a6b3449575016f4ad2c092b2"1115 integrity sha512-519KKTwgmH42AQL3+GFV3SX6khYEfHsvI6v8HYejlkigSDuqttdgVygFTDsGlofNFchhDwuclrxQnD5B0YLNMg==1145 integrity sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==1116 dependencies:1146 dependencies:1117 "@ethersproject/logger" "^5.1.0"1147 "@ethersproject/logger" "^5.3.0"111811481119"@ethersproject/rlp@^5.1.0":1149"@ethersproject/rlp@^5.3.0":1120 version "5.1.0"1150 version "5.3.0"1121 resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.1.0.tgz#700f4f071c27fa298d3c1d637485fefe919dd084"1151 resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.3.0.tgz#7cb93a7b5dfa69163894153c9d4b0d936f333188"1122 integrity sha512-vDTyHIwNPrecy55gKGZ47eJZhBm8LLBxihzi5ou+zrSvYTpkSTWRcKUlXFDFQVwfWB+P5PGyERAdiDEI76clxw==1152 integrity sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==1123 dependencies:1153 dependencies:1124 "@ethersproject/bytes" "^5.1.0"1154 "@ethersproject/bytes" "^5.3.0"1125 "@ethersproject/logger" "^5.1.0"1155 "@ethersproject/logger" "^5.3.0"112611561127"@ethersproject/signing-key@^5.1.0":1157"@ethersproject/signing-key@^5.3.0":1128 version "5.1.0"1158 version "5.3.0"1129 resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.1.0.tgz#6eddfbddb6826b597b9650e01acf817bf8991b9c"1159 resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.3.0.tgz#a96c88f8173e1abedfa35de32d3e5db7c48e5259"1130 integrity sha512-tE5LFlbmdObG8bY04NpuwPWSRPgEswfxweAI1sH7TbP0ml1elNfqcq7ii/3AvIN05i5U0Pkm3Tf8bramt8MmLw==1160 integrity sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==1131 dependencies:1161 dependencies:1132 "@ethersproject/bytes" "^5.1.0"1162 "@ethersproject/bytes" "^5.3.0"1133 "@ethersproject/logger" "^5.1.0"1163 "@ethersproject/logger" "^5.3.0"1134 "@ethersproject/properties" "^5.1.0"1164 "@ethersproject/properties" "^5.3.0"1135 bn.js "^4.4.0"1165 bn.js "^4.11.9"1136 elliptic "6.5.4"1166 elliptic "6.5.4"1167 hash.js "1.1.7"113711681138"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.1.0":1169"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.3.0":1139 version "5.1.0"1170 version "5.3.0"1140 resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.1.0.tgz#0f95a56c3c8c9d5510a06c241d818779750e2da5"1171 resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.3.0.tgz#a6b640aab56a18e0909f657da798eef890968ff0"1141 integrity sha512-perBZy0RrmmL0ejiFGUOlBVjMsUceqLut3OBP3zP96LhiJWWbS8u1NqQVgN4/Gyrbziuda66DxiQocXhsvx+Sw==1172 integrity sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==1142 dependencies:1173 dependencies:1143 "@ethersproject/bytes" "^5.1.0"1174 "@ethersproject/bytes" "^5.3.0"1144 "@ethersproject/constants" "^5.1.0"1175 "@ethersproject/constants" "^5.3.0"1145 "@ethersproject/logger" "^5.1.0"1176 "@ethersproject/logger" "^5.3.0"114611771147"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.1.0":1178"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.3.0":1148 version "5.1.1"1179 version "5.3.0"1149 resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.1.1.tgz#5a6bbb25fb062c3cc75eb0db12faefcdd3870813"1180 resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.3.0.tgz#49b86f2bafa4d0bdf8e596578fc795ee47c50458"1150 integrity sha512-Nwgbp09ttIVN0OoUBatCXaHxR7grWPHbozJN8v7AXDLrl6nnOIBEMDh+yJTnosSQlFhcyjfTGGN+Mx6R8HdvMw==1181 integrity sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==1151 dependencies:1182 dependencies:1152 "@ethersproject/address" "^5.1.0"1183 "@ethersproject/address" "^5.3.0"1153 "@ethersproject/bignumber" "^5.1.0"1184 "@ethersproject/bignumber" "^5.3.0"1154 "@ethersproject/bytes" "^5.1.0"1185 "@ethersproject/bytes" "^5.3.0"1155 "@ethersproject/constants" "^5.1.0"1186 "@ethersproject/constants" "^5.3.0"1156 "@ethersproject/keccak256" "^5.1.0"1187 "@ethersproject/keccak256" "^5.3.0"1157 "@ethersproject/logger" "^5.1.0"1188 "@ethersproject/logger" "^5.3.0"1158 "@ethersproject/properties" "^5.1.0"1189 "@ethersproject/properties" "^5.3.0"1159 "@ethersproject/rlp" "^5.1.0"1190 "@ethersproject/rlp" "^5.3.0"1160 "@ethersproject/signing-key" "^5.1.0"1191 "@ethersproject/signing-key" "^5.3.0"116111921162"@ethersproject/web@^5.1.0":1193"@ethersproject/web@^5.3.0":1163 version "5.1.0"1194 version "5.3.0"1164 resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.1.0.tgz#ed56bbe4e3d9a8ffe3b2ed882da5c62d3551381b"1195 resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.3.0.tgz#7959c403f6476c61515008d8f92da51c553a8ee1"1165 integrity sha512-LTeluWgTq04+RNqAkVhpydPcRZK/kKxD2Vy7PYGrAD27ABO9kTqTBKwiOuzTyAHKUQHfnvZbXmxBXJAGViSDcA==1196 integrity sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ==1166 dependencies:1197 dependencies:1167 "@ethersproject/base64" "^5.1.0"1198 "@ethersproject/base64" "^5.3.0"1168 "@ethersproject/bytes" "^5.1.0"1199 "@ethersproject/bytes" "^5.3.0"1169 "@ethersproject/logger" "^5.1.0"1200 "@ethersproject/logger" "^5.3.0"1170 "@ethersproject/properties" "^5.1.0"1201 "@ethersproject/properties" "^5.3.0"1171 "@ethersproject/strings" "^5.1.0"1202 "@ethersproject/strings" "^5.3.0"117212031173"@istanbuljs/load-nyc-config@^1.0.0":1204"@istanbuljs/load-nyc-config@^1.0.0":1174 version "1.1.0"1205 version "1.1.0"1186 resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"1217 resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"1187 integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==1218 integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==118812191189"@jest/console@^26.6.2":1220"@jest/console@^27.0.2":1190 version "26.6.2"1221 version "27.0.2"1191 resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2"1222 resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz#b8eeff8f21ac51d224c851e1729d2630c18631e6"1192 integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==1223 integrity sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==1193 dependencies:1224 dependencies:1194 "@jest/types" "^26.6.2"1225 "@jest/types" "^27.0.2"1195 "@types/node" "*"1226 "@types/node" "*"1196 chalk "^4.0.0"1227 chalk "^4.0.0"1197 jest-message-util "^26.6.2"1228 jest-message-util "^27.0.2"1198 jest-util "^26.6.2"1229 jest-util "^27.0.2"1199 slash "^3.0.0"1230 slash "^3.0.0"120012311201"@jest/core@^26.6.3":1232"@jest/core@^27.0.4":1202 version "26.6.3"1233 version "27.0.4"1203 resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad"1234 resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.4.tgz#679bf9ac07900da2ddbb9667bb1afa8029038f53"1204 integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==1235 integrity sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==1205 dependencies:1236 dependencies:1206 "@jest/console" "^26.6.2"1237 "@jest/console" "^27.0.2"1207 "@jest/reporters" "^26.6.2"1238 "@jest/reporters" "^27.0.4"1208 "@jest/test-result" "^26.6.2"1239 "@jest/test-result" "^27.0.2"1209 "@jest/transform" "^26.6.2"1240 "@jest/transform" "^27.0.2"1210 "@jest/types" "^26.6.2"1241 "@jest/types" "^27.0.2"1211 "@types/node" "*"1242 "@types/node" "*"1212 ansi-escapes "^4.2.1"1243 ansi-escapes "^4.2.1"1213 chalk "^4.0.0"1244 chalk "^4.0.0"1245 emittery "^0.8.1"1214 exit "^0.1.2"1246 exit "^0.1.2"1215 graceful-fs "^4.2.4"1247 graceful-fs "^4.2.4"1216 jest-changed-files "^26.6.2"1248 jest-changed-files "^27.0.2"1217 jest-config "^26.6.3"1249 jest-config "^27.0.4"1218 jest-haste-map "^26.6.2"1250 jest-haste-map "^27.0.2"1219 jest-message-util "^26.6.2"1251 jest-message-util "^27.0.2"1220 jest-regex-util "^26.0.0"1252 jest-regex-util "^27.0.1"1221 jest-resolve "^26.6.2"1253 jest-resolve "^27.0.4"1222 jest-resolve-dependencies "^26.6.3"1254 jest-resolve-dependencies "^27.0.4"1223 jest-runner "^26.6.3"1255 jest-runner "^27.0.4"1224 jest-runtime "^26.6.3"1256 jest-runtime "^27.0.4"1225 jest-snapshot "^26.6.2"1257 jest-snapshot "^27.0.4"1226 jest-util "^26.6.2"1258 jest-util "^27.0.2"1227 jest-validate "^26.6.2"1259 jest-validate "^27.0.2"1228 jest-watcher "^26.6.2"1260 jest-watcher "^27.0.2"1229 micromatch "^4.0.2"1261 micromatch "^4.0.4"1230 p-each-series "^2.1.0"1262 p-each-series "^2.1.0"1231 rimraf "^3.0.0"1263 rimraf "^3.0.0"1232 slash "^3.0.0"1264 slash "^3.0.0"1233 strip-ansi "^6.0.0"1265 strip-ansi "^6.0.0"123412661235"@jest/environment@^26.6.2":1267"@jest/environment@^27.0.3":1236 version "26.6.2"1268 version "27.0.3"1237 resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c"1269 resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.3.tgz#68769b1dfdd213e3456169d64fbe9bd63a5fda92"1238 integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==1270 integrity sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==1239 dependencies:1271 dependencies:1240 "@jest/fake-timers" "^26.6.2"1272 "@jest/fake-timers" "^27.0.3"1241 "@jest/types" "^26.6.2"1273 "@jest/types" "^27.0.2"1242 "@types/node" "*"1274 "@types/node" "*"1243 jest-mock "^26.6.2"1275 jest-mock "^27.0.3"124412761245"@jest/fake-timers@^26.6.2":1277"@jest/fake-timers@^27.0.3":1246 version "26.6.2"1278 version "27.0.3"1247 resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad"1279 resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.3.tgz#9899ba6304cc636734c74478df502e18136461dd"1248 integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==1280 integrity sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==1249 dependencies:1281 dependencies:1250 "@jest/types" "^26.6.2"1282 "@jest/types" "^27.0.2"1251 "@sinonjs/fake-timers" "^6.0.1"1283 "@sinonjs/fake-timers" "^7.0.2"1252 "@types/node" "*"1284 "@types/node" "*"1253 jest-message-util "^26.6.2"1285 jest-message-util "^27.0.2"1254 jest-mock "^26.6.2"1286 jest-mock "^27.0.3"1255 jest-util "^26.6.2"1287 jest-util "^27.0.2"125612881257"@jest/globals@^26.6.2":1289"@jest/globals@^27.0.3":1258 version "26.6.2"1290 version "27.0.3"1259 resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a"1291 resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.3.tgz#1cf8933b7791bba0b99305cbf39fd4d2e3fe4060"1260 integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==1292 integrity sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==1261 dependencies:1293 dependencies:1262 "@jest/environment" "^26.6.2"1294 "@jest/environment" "^27.0.3"1263 "@jest/types" "^26.6.2"1295 "@jest/types" "^27.0.2"1264 expect "^26.6.2"1296 expect "^27.0.2"126512971266"@jest/reporters@^26.6.2":1298"@jest/reporters@^27.0.4":1267 version "26.6.2"1299 version "27.0.4"1268 resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6"1300 resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.4.tgz#95609b1be97afb80d55d8aa3d7c3179c15810e65"1269 integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==1301 integrity sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==1270 dependencies:1302 dependencies:1271 "@bcoe/v8-coverage" "^0.2.3"1303 "@bcoe/v8-coverage" "^0.2.3"1272 "@jest/console" "^26.6.2"1304 "@jest/console" "^27.0.2"1273 "@jest/test-result" "^26.6.2"1305 "@jest/test-result" "^27.0.2"1274 "@jest/transform" "^26.6.2"1306 "@jest/transform" "^27.0.2"1275 "@jest/types" "^26.6.2"1307 "@jest/types" "^27.0.2"1276 chalk "^4.0.0"1308 chalk "^4.0.0"1277 collect-v8-coverage "^1.0.0"1309 collect-v8-coverage "^1.0.0"1278 exit "^0.1.2"1310 exit "^0.1.2"1283 istanbul-lib-report "^3.0.0"1315 istanbul-lib-report "^3.0.0"1284 istanbul-lib-source-maps "^4.0.0"1316 istanbul-lib-source-maps "^4.0.0"1285 istanbul-reports "^3.0.2"1317 istanbul-reports "^3.0.2"1286 jest-haste-map "^26.6.2"1318 jest-haste-map "^27.0.2"1287 jest-resolve "^26.6.2"1319 jest-resolve "^27.0.4"1288 jest-util "^26.6.2"1320 jest-util "^27.0.2"1289 jest-worker "^26.6.2"1321 jest-worker "^27.0.2"1290 slash "^3.0.0"1322 slash "^3.0.0"1291 source-map "^0.6.0"1323 source-map "^0.6.0"1292 string-length "^4.0.1"1324 string-length "^4.0.1"1293 terminal-link "^2.0.0"1325 terminal-link "^2.0.0"1294 v8-to-istanbul "^7.0.0"1326 v8-to-istanbul "^7.0.0"1295 optionalDependencies:1296 node-notifier "^8.0.0"129713271298"@jest/source-map@^26.6.2":1328"@jest/source-map@^27.0.1":1299 version "26.6.2"1329 version "27.0.1"1300 resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535"1330 resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz#2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4"1301 integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==1331 integrity sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==1302 dependencies:1332 dependencies:1303 callsites "^3.0.0"1333 callsites "^3.0.0"1304 graceful-fs "^4.2.4"1334 graceful-fs "^4.2.4"1305 source-map "^0.6.0"1335 source-map "^0.6.0"130613361307"@jest/test-result@^26.6.2":1337"@jest/test-result@^27.0.2":1308 version "26.6.2"1338 version "27.0.2"1309 resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18"1339 resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz#0451049e32ceb609b636004ccc27c8fa22263f10"1310 integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==1340 integrity sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==1311 dependencies:1341 dependencies:1312 "@jest/console" "^26.6.2"1342 "@jest/console" "^27.0.2"1313 "@jest/types" "^26.6.2"1343 "@jest/types" "^27.0.2"1314 "@types/istanbul-lib-coverage" "^2.0.0"1344 "@types/istanbul-lib-coverage" "^2.0.0"1315 collect-v8-coverage "^1.0.0"1345 collect-v8-coverage "^1.0.0"131613461317"@jest/test-sequencer@^26.6.3":1347"@jest/test-sequencer@^27.0.4":1318 version "26.6.3"1348 version "27.0.4"1319 resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17"1349 resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz#976493b277594d81e589896f0ed21f198308928a"1320 integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==1350 integrity sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==1321 dependencies:1351 dependencies:1322 "@jest/test-result" "^26.6.2"1352 "@jest/test-result" "^27.0.2"1323 graceful-fs "^4.2.4"1353 graceful-fs "^4.2.4"1324 jest-haste-map "^26.6.2"1354 jest-haste-map "^27.0.2"1325 jest-runner "^26.6.3"1355 jest-runtime "^27.0.4"1326 jest-runtime "^26.6.3"132713561328"@jest/transform@^26.6.2":1357"@jest/transform@^27.0.2":1329 version "26.6.2"1358 version "27.0.2"1330 resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b"1359 resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.2.tgz#b073b7c589e3f4b842102468875def2bb722d6b5"1331 integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==1360 integrity sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==1332 dependencies:1361 dependencies:1333 "@babel/core" "^7.1.0"1362 "@babel/core" "^7.1.0"1334 "@jest/types" "^26.6.2"1363 "@jest/types" "^27.0.2"1335 babel-plugin-istanbul "^6.0.0"1364 babel-plugin-istanbul "^6.0.0"1336 chalk "^4.0.0"1365 chalk "^4.0.0"1337 convert-source-map "^1.4.0"1366 convert-source-map "^1.4.0"1338 fast-json-stable-stringify "^2.0.0"1367 fast-json-stable-stringify "^2.0.0"1339 graceful-fs "^4.2.4"1368 graceful-fs "^4.2.4"1340 jest-haste-map "^26.6.2"1369 jest-haste-map "^27.0.2"1341 jest-regex-util "^26.0.0"1370 jest-regex-util "^27.0.1"1342 jest-util "^26.6.2"1371 jest-util "^27.0.2"1343 micromatch "^4.0.2"1372 micromatch "^4.0.4"1344 pirates "^4.0.1"1373 pirates "^4.0.1"1345 slash "^3.0.0"1374 slash "^3.0.0"1346 source-map "^0.6.1"1375 source-map "^0.6.1"1347 write-file-atomic "^3.0.0"1376 write-file-atomic "^3.0.0"134813771349"@jest/types@^26.6.2":1378"@jest/types@^27.0.2":1350 version "26.6.2"1379 version "27.0.2"1351 resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"1380 resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz#e153d6c46bda0f2589f0702b071f9898c7bbd37e"1352 integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==1381 integrity sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==1353 dependencies:1382 dependencies:1354 "@types/istanbul-lib-coverage" "^2.0.0"1383 "@types/istanbul-lib-coverage" "^2.0.0"1355 "@types/istanbul-reports" "^3.0.0"1384 "@types/istanbul-reports" "^3.0.0"1356 "@types/node" "*"1385 "@types/node" "*"1357 "@types/yargs" "^15.0.0"1386 "@types/yargs" "^16.0.0"1358 chalk "^4.0.0"1387 chalk "^4.0.0"135913881360"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents":1389"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2":1361 version "2.1.8-no-fsevents"1390 version "2.1.8-no-fsevents.2"1362 resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b"1391 resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz#e324c0a247a5567192dd7180647709d7e2faf94b"1363 integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==1392 integrity sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==1364 dependencies:1393 dependencies:1365 anymatch "^2.0.0"1394 anymatch "^2.0.0"1366 async-each "^1.0.1"1395 async-each "^1.0.1"1367 braces "^2.3.2"1396 braces "^2.3.2"1368 glob-parent "^3.1.0"1397 glob-parent "^5.1.2"1369 inherits "^2.0.3"1398 inherits "^2.0.3"1370 is-binary-path "^1.0.0"1399 is-binary-path "^1.0.0"1371 is-glob "^4.0.0"1400 is-glob "^4.0.0"1374 readdirp "^2.2.1"1403 readdirp "^2.2.1"1375 upath "^1.1.1"1404 upath "^1.1.1"137614051377"@nodelib/fs.scandir@2.1.4":1406"@nodelib/fs.scandir@2.1.5":1378 version "2.1.4"1407 version "2.1.5"1379 resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"1408 resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"1380 integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==1409 integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==1381 dependencies:1410 dependencies:1382 "@nodelib/fs.stat" "2.0.4"1411 "@nodelib/fs.stat" "2.0.5"1383 run-parallel "^1.1.9"1412 run-parallel "^1.1.9"138414131385"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":1414"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":1386 version "2.0.4"1415 version "2.0.5"1387 resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"1416 resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"1388 integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==1417 integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==138914181390"@nodelib/fs.walk@^1.2.3":1419"@nodelib/fs.walk@^1.2.3":1391 version "1.2.6"1420 version "1.2.7"1392 resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"1421 resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2"1393 integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==1422 integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==1394 dependencies:1423 dependencies:1395 "@nodelib/fs.scandir" "2.1.4"1424 "@nodelib/fs.scandir" "2.1.5"1396 fastq "^1.6.0"1425 fastq "^1.6.0"139714261398"@octokit/auth-token@^2.4.4":1427"@octokit/auth-token@^2.4.4":1402 dependencies:1431 dependencies:1403 "@octokit/types" "^6.0.3"1432 "@octokit/types" "^6.0.3"140414331405"@octokit/core@^3.2.3":1434"@octokit/core@^3.5.0":1406 version "3.4.0"1435 version "3.5.1"1407 resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.4.0.tgz#b48aa27d755b339fe7550548b340dcc2b513b742"1436 resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b"1408 integrity sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==1437 integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==1409 dependencies:1438 dependencies:1410 "@octokit/auth-token" "^2.4.4"1439 "@octokit/auth-token" "^2.4.4"1411 "@octokit/graphql" "^4.5.8"1440 "@octokit/graphql" "^4.5.8"1412 "@octokit/request" "^5.4.12"1441 "@octokit/request" "^5.6.0"1413 "@octokit/request-error" "^2.0.5"1442 "@octokit/request-error" "^2.0.5"1414 "@octokit/types" "^6.0.3"1443 "@octokit/types" "^6.0.3"1415 before-after-hook "^2.2.0"1444 before-after-hook "^2.2.0"1416 universal-user-agent "^6.0.0"1445 universal-user-agent "^6.0.0"141714461418"@octokit/endpoint@^6.0.1":1447"@octokit/endpoint@^6.0.1":1419 version "6.0.11"1448 version "6.0.12"1420 resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.11.tgz#082adc2aebca6dcefa1fb383f5efb3ed081949d1"1449 resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658"1421 integrity sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==1450 integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==1422 dependencies:1451 dependencies:1423 "@octokit/types" "^6.0.3"1452 "@octokit/types" "^6.0.3"1424 is-plain-object "^5.0.0"1453 is-plain-object "^5.0.0"1425 universal-user-agent "^6.0.0"1454 universal-user-agent "^6.0.0"142614551427"@octokit/graphql@^4.5.8":1456"@octokit/graphql@^4.5.8":1428 version "4.6.1"1457 version "4.6.4"1429 resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.1.tgz#f975486a46c94b7dbe58a0ca751935edc7e32cc9"1458 resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.4.tgz#0c3f5bed440822182e972317122acb65d311a5ed"1430 integrity sha512-2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==1459 integrity sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==1431 dependencies:1460 dependencies:1432 "@octokit/request" "^5.3.0"1461 "@octokit/request" "^5.6.0"1433 "@octokit/types" "^6.0.3"1462 "@octokit/types" "^6.0.3"1434 universal-user-agent "^6.0.0"1463 universal-user-agent "^6.0.0"143514641436"@octokit/openapi-types@^6.2.0":1465"@octokit/openapi-types@^7.3.2":1437 version "6.2.0"1466 version "7.3.2"1438 resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-6.2.0.tgz#6ea796b20c7111b9e422a4d607f796c1179622cd"1467 resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944"1439 integrity sha512-V2vFYuawjpP5KUb8CPYsq20bXT4qnE8sH1QKpYqUlcNOntBiRr/VzGVvY0s+YXGgrVbFUVO4EI0VnHYSVBWfBg==1468 integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA==144014691441"@octokit/plugin-paginate-rest@^2.6.2":1470"@octokit/plugin-paginate-rest@^2.6.2":1442 version "2.13.3"1471 version "2.13.5"1443 resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz#f0f1792230805108762d87906fb02d573b9e070a"1472 resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.5.tgz#e459f9b5dccbe0a53f039a355d5b80c0a2b0dc57"1444 integrity sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==1473 integrity sha512-3WSAKBLa1RaR/7GG+LQR/tAZ9fp9H9waE9aPXallidyci9oZsfgsLn5M836d3LuDC6Fcym+2idRTBpssHZePVg==1445 dependencies:1474 dependencies:1446 "@octokit/types" "^6.11.0"1475 "@octokit/types" "^6.13.0"144714761448"@octokit/plugin-request-log@^1.0.2":1477"@octokit/plugin-request-log@^1.0.2":1449 version "1.0.3"1478 version "1.0.4"1450 resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d"1479 resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"1451 integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==1480 integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==145214811453"@octokit/plugin-rest-endpoint-methods@5.0.1":1482"@octokit/plugin-rest-endpoint-methods@5.3.1":1454 version "5.0.1"1483 version "5.3.1"1455 resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.1.tgz#631b8d4edc6798b03489911252a25f2a4e58c594"1484 resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz#deddce769b4ec3179170709ab42e4e9e6195aaa9"1456 integrity sha512-vvWbPtPqLyIzJ7A4IPdTl+8IeuKAwMJ4LjvmqWOOdfSuqWQYZXq2CEd0hsnkidff2YfKlguzujHs/reBdAx8Sg==1485 integrity sha512-3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg==1457 dependencies:1486 dependencies:1458 "@octokit/types" "^6.13.1"1487 "@octokit/types" "^6.16.2"1459 deprecation "^2.3.1"1488 deprecation "^2.3.1"146014891461"@octokit/request-error@^2.0.0", "@octokit/request-error@^2.0.5":1490"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":1462 version "2.0.5"1491 version "2.1.0"1463 resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143"1492 resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"1464 integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==1493 integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==1465 dependencies:1494 dependencies:1466 "@octokit/types" "^6.0.3"1495 "@octokit/types" "^6.0.3"1467 deprecation "^2.0.0"1496 deprecation "^2.0.0"1468 once "^1.4.0"1497 once "^1.4.0"146914981470"@octokit/request@^5.3.0", "@octokit/request@^5.4.12":1499"@octokit/request@^5.6.0":1471 version "5.4.15"1500 version "5.6.0"1472 resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.15.tgz#829da413dc7dd3aa5e2cdbb1c7d0ebe1f146a128"1501 resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672"1473 integrity sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==1502 integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==1474 dependencies:1503 dependencies:1475 "@octokit/endpoint" "^6.0.1"1504 "@octokit/endpoint" "^6.0.1"1476 "@octokit/request-error" "^2.0.0"1505 "@octokit/request-error" "^2.1.0"1477 "@octokit/types" "^6.7.1"1506 "@octokit/types" "^6.16.1"1478 is-plain-object "^5.0.0"1507 is-plain-object "^5.0.0"1479 node-fetch "^2.6.1"1508 node-fetch "^2.6.1"1480 universal-user-agent "^6.0.0"1509 universal-user-agent "^6.0.0"148115101482"@octokit/rest@^18.0.9":1511"@octokit/rest@^18.0.9":1483 version "18.5.3"1512 version "18.6.0"1484 resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.5.3.tgz#6a2e6006a87ebbc34079c419258dd29ec9ff659d"1513 resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.6.0.tgz#9a8457374c78c2773d3ab3f50aaffc62f3ed4f76"1485 integrity sha512-KPAsUCr1DOdLVbZJgGNuE/QVLWEaVBpFQwDAz/2Cnya6uW2wJ/P5RVGk0itx7yyN1aGa8uXm2pri4umEqG1JBA==1514 integrity sha512-MdHuXHDJM7e5sUBe3K9tt7th0cs4csKU5Bb52LRi2oHAeIMrMZ4XqaTrEv660HoUPoM1iDlnj27Ab/Nh3MtwlA==1486 dependencies:1515 dependencies:1487 "@octokit/core" "^3.2.3"1516 "@octokit/core" "^3.5.0"1488 "@octokit/plugin-paginate-rest" "^2.6.2"1517 "@octokit/plugin-paginate-rest" "^2.6.2"1489 "@octokit/plugin-request-log" "^1.0.2"1518 "@octokit/plugin-request-log" "^1.0.2"1490 "@octokit/plugin-rest-endpoint-methods" "5.0.1"1519 "@octokit/plugin-rest-endpoint-methods" "5.3.1"149115201492"@octokit/types@^6.0.3", "@octokit/types@^6.11.0", "@octokit/types@^6.13.1", "@octokit/types@^6.7.1":1521"@octokit/types@^6.0.3", "@octokit/types@^6.13.0", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2":1493 version "6.14.0"1522 version "6.16.4"1494 resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.14.0.tgz#587529b4a461d8b7621b99845718dc5c79281f52"1523 resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe"1495 integrity sha512-43qHvDsPsKgNt4W4al3dyU6s2XZ7ZMsiiIw8rQcM9CyEo7g9W8/6m1W4xHuRqmEjTfG1U4qsE/E4Jftw1/Ak1g==1524 integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A==1496 dependencies:1525 dependencies:1497 "@octokit/openapi-types" "^6.2.0"1526 "@octokit/openapi-types" "^7.3.2"149815271499"@polkadot/api-contract@4.7.2":1528"@polkadot/api-contract@4.13.2-5":1500 version "4.7.2"1529 version "4.13.2-5"1501 resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-4.7.2.tgz#9db4c16e78c182e0a51c4abb1e3286d3152dd361"1530 resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-4.13.2-5.tgz#631bb9c3f46b65001c584a66236488ecda4b41d9"1502 integrity sha512-AxQvORHn/cTZj/6njKsuGc+9ECd+ghC3ESdeJKg419Bh7MpoUcf4f0NyYa4POZY9lzT5160K7d+dYz7j9Jy/8g==1531 integrity sha512-JaPINL/EtQefmlewC/DmtMy470ERgelKv8vnnd0rrKVf+dVXSFn6PQFxIqIGBohpxVeFruiuPwhCw3ovxbBvGw==1503 dependencies:1532 dependencies:1504 "@babel/runtime" "^7.13.17"1533 "@babel/runtime" "^7.14.0"1505 "@polkadot/api" "4.7.2"1534 "@polkadot/api" "4.13.2-5"1506 "@polkadot/types" "4.7.2"1535 "@polkadot/types" "4.13.2-5"1507 "@polkadot/util" "^6.3.1"1536 "@polkadot/util" "^6.7.1"1508 "@polkadot/x-rxjs" "^6.3.1"1537 "@polkadot/x-rxjs" "^6.7.1"1509 bn.js "^4.11.9"1538 bn.js "^4.11.9"151015391511"@polkadot/api-derive@4.7.2":1540"@polkadot/api-derive@4.13.2-5":1512 version "4.7.2"1541 version "4.13.2-5"1513 resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-4.7.2.tgz#94ca16f2e61d1739489da6030cbe5137beee336a"1542 resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-4.13.2-5.tgz#8e0d42db22c1a4649b790dc3aabb4cfa34491621"1514 integrity sha512-TRctRtGFvsso5R/dGwna2QiaQy14NFhrthu/sLh3oYIMNwQ6BeGHhbfjAi0pidc+ID2ia6LDLRw7vl/LVSuHIA==1543 integrity sha512-8L8UcSEpo1S9l/iHIzEJUo3RGeL4Rezo9dAOk3yuqc25NKIT5/aiKhqb0JKpcJh9GsHbQANyYCiey+VZGqZfmA==1515 dependencies:1544 dependencies:1516 "@babel/runtime" "^7.13.17"1545 "@babel/runtime" "^7.14.0"1517 "@polkadot/api" "4.7.2"1546 "@polkadot/api" "4.13.2-5"1518 "@polkadot/rpc-core" "4.7.2"1547 "@polkadot/rpc-core" "4.13.2-5"1519 "@polkadot/types" "4.7.2"1548 "@polkadot/types" "4.13.2-5"1520 "@polkadot/util" "^6.3.1"1549 "@polkadot/util" "^6.7.1"1521 "@polkadot/util-crypto" "^6.3.1"1550 "@polkadot/util-crypto" "^6.7.1"1522 "@polkadot/x-rxjs" "^6.3.1"1551 "@polkadot/x-rxjs" "^6.7.1"1523 bn.js "^4.11.9"1552 bn.js "^4.11.9"152415531525"@polkadot/api@4.7.2":1554"@polkadot/api@4.13.2-5":1526 version "4.7.2"1555 version "4.13.2-5"1527 resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-4.7.2.tgz#0e98117fc631f2988ca364881111c05a00e8b701"1556 resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-4.13.2-5.tgz#cf6e3a4baa0054ec580422a5dc544161e19d924a"1528 integrity sha512-PkWrgx+gICWt5uYjYoP68a8jyCRBkQXn9ecr0ReVr9jiiwvBYZyw3CLXTVRwJ89PpJLtDVz9QGCa4dM6j4a/LA==1557 integrity sha512-7WfnKk7rqO7V001Vm6EcXBS9ZWd9oxvwbPQ3oAMhGOyKWfL+8lLo0FrAnS66LZo7FAmLNEvaJ6b4BnYub0sd0w==1529 dependencies:1558 dependencies:1530 "@babel/runtime" "^7.13.17"1559 "@babel/runtime" "^7.14.0"1531 "@polkadot/api-derive" "4.7.2"1560 "@polkadot/api-derive" "4.13.2-5"1532 "@polkadot/keyring" "^6.3.1"1561 "@polkadot/keyring" "^6.7.1"1533 "@polkadot/metadata" "4.7.2"1562 "@polkadot/metadata" "4.13.2-5"1534 "@polkadot/rpc-core" "4.7.2"1563 "@polkadot/rpc-core" "4.13.2-5"1535 "@polkadot/rpc-provider" "4.7.2"1564 "@polkadot/rpc-provider" "4.13.2-5"1536 "@polkadot/types" "4.7.2"1565 "@polkadot/types" "4.13.2-5"1537 "@polkadot/types-known" "4.7.2"1566 "@polkadot/types-known" "4.13.2-5"1538 "@polkadot/util" "^6.3.1"1567 "@polkadot/util" "^6.7.1"1539 "@polkadot/util-crypto" "^6.3.1"1568 "@polkadot/util-crypto" "^6.7.1"1540 "@polkadot/x-rxjs" "^6.3.1"1569 "@polkadot/x-rxjs" "^6.7.1"1541 bn.js "^4.11.9"1570 bn.js "^4.11.9"1542 eventemitter3 "^4.0.7"1571 eventemitter3 "^4.0.7"154315721544"@polkadot/dev@^0.62.10":1573"@polkadot/dev@0.62.41":1545 version "0.62.10"1574 version "0.62.41"1546 resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.62.10.tgz#364c3956aef53d89ad3b636233141c7016631a97"1575 resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.62.41.tgz#655345c0d4916eb669d4865d077f44cdffa6407e"1547 integrity sha512-J7LwYBoNWXDXIRMIkTkuOQsuQKlO5rQPFya//zjFndBXP2ClSB1rWnHCD7Hw8JwcQVigxR0V2ZKCGJrZ/ThoSw==1576 integrity sha512-fqpA1ujdRLHzOf+tZ/RJRbcoKgjlC44zVXAeQHCA5wrEhqHIy/TqE/djxb+XzviHcwmucfGAe+wKOf4f4RdJoQ==1548 dependencies:1577 dependencies:1549 "@babel/cli" "^7.13.16"1578 "@babel/cli" "^7.14.3"1550 "@babel/core" "^7.13.16"1579 "@babel/core" "^7.14.3"1551 "@babel/plugin-proposal-class-properties" "^7.13.0"1580 "@babel/plugin-proposal-class-properties" "^7.13.0"1552 "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8"1581 "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2"1553 "@babel/plugin-proposal-numeric-separator" "^7.12.13"1582 "@babel/plugin-proposal-numeric-separator" "^7.14.2"1554 "@babel/plugin-proposal-object-rest-spread" "^7.13.8"1583 "@babel/plugin-proposal-object-rest-spread" "^7.14.4"1555 "@babel/plugin-proposal-optional-chaining" "^7.13.12"1584 "@babel/plugin-proposal-optional-chaining" "^7.14.2"1556 "@babel/plugin-proposal-private-methods" "^7.13.0"1585 "@babel/plugin-proposal-private-methods" "^7.13.0"1557 "@babel/plugin-syntax-bigint" "^7.8.3"1586 "@babel/plugin-syntax-bigint" "^7.8.3"1558 "@babel/plugin-syntax-dynamic-import" "^7.8.3"1587 "@babel/plugin-syntax-dynamic-import" "^7.8.3"1559 "@babel/plugin-syntax-import-meta" "^7.10.4"1588 "@babel/plugin-syntax-import-meta" "^7.10.4"1560 "@babel/plugin-syntax-top-level-await" "^7.12.13"1589 "@babel/plugin-syntax-top-level-await" "^7.12.13"1561 "@babel/plugin-transform-regenerator" "^7.13.15"1590 "@babel/plugin-transform-regenerator" "^7.13.15"1562 "@babel/plugin-transform-runtime" "^7.13.15"1591 "@babel/plugin-transform-runtime" "^7.14.3"1563 "@babel/preset-env" "^7.13.15"1592 "@babel/preset-env" "^7.14.4"1564 "@babel/preset-react" "^7.13.13"1593 "@babel/preset-react" "^7.13.13"1565 "@babel/preset-typescript" "^7.13.0"1594 "@babel/preset-typescript" "^7.13.0"1566 "@babel/register" "^7.13.16"1595 "@babel/register" "^7.13.16"1567 "@babel/runtime" "^7.13.17"1596 "@babel/runtime" "^7.14.0"1568 "@rushstack/eslint-patch" "^1.0.6"1597 "@rushstack/eslint-patch" "^1.0.6"1569 "@typescript-eslint/eslint-plugin" "4.22.0"1598 "@typescript-eslint/eslint-plugin" "4.26.0"1570 "@typescript-eslint/parser" "4.22.0"1599 "@typescript-eslint/parser" "4.26.0"1571 "@vue/component-compiler-utils" "^3.2.0"1600 "@vue/component-compiler-utils" "^3.2.0"1572 babel-jest "^26.6.3"1601 babel-jest "^27.0.2"1573 babel-plugin-module-extension-resolver "^1.0.0-rc.2"1602 babel-plugin-module-extension-resolver "^1.0.0-rc.2"1574 babel-plugin-module-resolver "^4.1.0"1603 babel-plugin-module-resolver "^4.1.0"1575 babel-plugin-styled-components "^1.12.0"1604 babel-plugin-styled-components "^1.12.0"1576 browserslist "^4.16.5"1605 browserslist "^4.16.6"1577 chalk "^4.1.1"1606 chalk "^4.1.1"1578 coveralls "^3.1.0"1607 coveralls "^3.1.0"1579 eslint "^7.25.0"1608 eslint "^7.27.0"1580 eslint-config-standard "^16.0.2"1609 eslint-config-standard "^16.0.3"1581 eslint-import-resolver-node "^0.3.4"1610 eslint-import-resolver-node "^0.3.4"1582 eslint-plugin-header "^3.1.1"1611 eslint-plugin-header "^3.1.1"1583 eslint-plugin-import "^2.22.1"1612 eslint-plugin-import "^2.23.4"1584 eslint-plugin-node "^11.1.0"1613 eslint-plugin-node "^11.1.0"1585 eslint-plugin-promise "^5.1.0"1614 eslint-plugin-promise "^5.1.0"1586 eslint-plugin-react "^7.23.2"1615 eslint-plugin-react "^7.24.0"1587 eslint-plugin-react-hooks "^4.2.0"1616 eslint-plugin-react-hooks "^4.2.0"1588 eslint-plugin-simple-import-sort "^7.0.0"1617 eslint-plugin-simple-import-sort "^7.0.0"1589 eslint-plugin-sort-destructure-keys "^1.3.5"1618 eslint-plugin-sort-destructure-keys "^1.3.5"1590 fs-extra "^9.1.0"1619 fs-extra "^10.0.0"1591 gh-pages "^3.1.0"1620 gh-pages "^3.2.0"1592 gh-release "^5.0.0"1621 gh-release "^6.0.0"1593 glob "^7.1.6"1622 glob "^7.1.7"1594 glob2base "^0.0.12"1623 glob2base "^0.0.12"1595 jest "^26.6.3"1624 jest "^27.0.4"1596 jest-cli "^26.6.3"1625 jest-cli "^27.0.4"1597 jest-config "^26.6.3"1626 jest-config "^27.0.4"1598 jest-haste-map "^26.6.2"1627 jest-haste-map "^27.0.2"1599 jest-resolve "^26.6.2"1628 jest-resolve "^27.0.4"1600 madge "^4.0.2"1629 madge "^4.0.2"1601 minimatch "^3.0.4"1630 minimatch "^3.0.4"1602 mkdirp "^1.0.4"1631 mkdirp "^1.0.4"1603 prettier "^2.2.1"1632 prettier "^2.3.0"1604 rimraf "^3.0.2"1633 rimraf "^3.0.2"1605 typescript "^4.2.4"1634 typescript "^4.3.2"1606 yargs "^16.2.0"1635 yargs "^17.0.1"160716361608"@polkadot/keyring@^6.3.1":1637"@polkadot/keyring@^6.7.1":1609 version "6.3.1"1638 version "6.8.1"1610 resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-6.3.1.tgz#434847cc4fb134116691c07e05750e8388cbb2b7"1639 resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-6.8.1.tgz#8f81a1eb2418ac65b3bd8cefb90c913a5be792cb"1611 integrity sha512-uVWhdd4TVtLc4R2OtiKHJE5jgJZnuEognbgjl5RT2uKrCJYTsYnq0IeRTvMmtdPJAJvGeD3JTsX2ekgt3tJpuw==1640 integrity sha512-V8G03yPtD1DZZ40sP5alFkyQ/de2eKazlDp3+6Y5xtGUjhMeecNG2p73lZXZ5k/Bzfvfnvujqrc6uFOv27EF1Q==1612 dependencies:1641 dependencies:1613 "@babel/runtime" "^7.13.17"1642 "@babel/runtime" "^7.14.5"1614 "@polkadot/util" "6.3.1"1643 "@polkadot/util" "6.8.1"1615 "@polkadot/util-crypto" "6.3.1"1644 "@polkadot/util-crypto" "6.8.1"161616451617"@polkadot/metadata@4.7.2":1646"@polkadot/metadata@4.13.2-5":1618 version "4.7.2"1647 version "4.13.2-5"1619 resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-4.7.2.tgz#91076a1c1158494574a1965ec1fe124fb4d1b848"1648 resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-4.13.2-5.tgz#50a24d21df1d1160ef25237fdceaf3cd63766eb9"1620 integrity sha512-+YWeD828cpIpD31epoSZfK5kmtJsBcgTTyYsQ4bBO4NBJceLTipmHgyLXs7fXjU4cC6uvSuBnAV0KGJW7L9nDQ==1649 integrity sha512-fkGqyh7cIDKqFllQUAxVaadih/KdZuZf5QmXcES9qtqrPZ9e9vJA04wfG08ggGN/aK09gXO6zX/ycQP6FwoGhw==1621 dependencies:1650 dependencies:1622 "@babel/runtime" "^7.13.17"1651 "@babel/runtime" "^7.14.0"1623 "@polkadot/types" "4.7.2"1652 "@polkadot/types" "4.13.2-5"1624 "@polkadot/types-known" "4.7.2"1653 "@polkadot/types-known" "4.13.2-5"1625 "@polkadot/util" "^6.3.1"1654 "@polkadot/util" "^6.7.1"1626 "@polkadot/util-crypto" "^6.3.1"1655 "@polkadot/util-crypto" "^6.7.1"1627 bn.js "^4.11.9"1656 bn.js "^4.11.9"162816571629"@polkadot/networks@6.3.1", "@polkadot/networks@^6.3.1":1658"@polkadot/networks@6.7.1":1630 version "6.3.1"1659 version "6.7.1"1631 resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-6.3.1.tgz#c5063681ea73f8b579f418d57d0eba2d4bb72292"1660 resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-6.7.1.tgz#7100b15f2f1e678aa5567afbe0c1ca1c690b9c83"1632 integrity sha512-oANup0CLGt75CPbE3gz2HUWUlqQKucImdb1TtStLXMUH+Aj8ZOnQFA2lwixzaRdx+ymPfmEL7GkF36i96OqQVw==1661 integrity sha512-9A2GX9Wyc6yoqRGjuxHAEDntsoiCJ9Jv9oocbmTF6/wVb3lK1Si0p4nLfsNCtIYXibbYP2jkyMj5rP10bY3bgw==1633 dependencies:1662 dependencies:1634 "@babel/runtime" "^7.13.17"1663 "@babel/runtime" "^7.14.0"163516641636"@polkadot/rpc-core@4.7.2":1665"@polkadot/networks@6.8.1", "@polkadot/networks@^6.7.1":1637 version "4.7.2"1666 version "6.8.1"1638 resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-4.7.2.tgz#d79c42bb9fafc84a5c3b90959a86fe97b4a21fb5"1667 resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-6.8.1.tgz#3f8b4d77cf5543e49706c218b21086505deb5ba5"1639 integrity sha512-LxpI8TVdjL99nfnLQog1tL0STdiYIUSLzdN+2PKvaO0YoBPAau945PVfz6GeN7wqQZKxR6N/1SKhAVfYcP7ctA==1668 integrity sha512-Hlng0DLoSkEuvCTnFHP7jBS/IzmiWQQ9NYPIq80geqbYLtofrVTwGb9Sm3Wa/HW83jZiWH66YPb2dXbaOffNog==1640 dependencies:1669 dependencies:1641 "@babel/runtime" "^7.13.17"1670 "@babel/runtime" "^7.14.5"1642 "@polkadot/metadata" "4.7.2"1643 "@polkadot/rpc-provider" "4.7.2"1644 "@polkadot/types" "4.7.2"1645 "@polkadot/util" "^6.3.1"1646 "@polkadot/x-rxjs" "^6.3.1"164716711648"@polkadot/rpc-provider@4.7.2":1672"@polkadot/rpc-core@4.13.2-5":1649 version "4.7.2"1673 version "4.13.2-5"1650 resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-4.7.2.tgz#71340ec6a109a2652502aee8d24e06f0322663b8"1674 resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-4.13.2-5.tgz#7fb29c70817d036ff81f7d0f19745833cdf26528"1651 integrity sha512-nvKScoPTzi7PFA5XnVI1lbebLjdwF6OcvWC0QvaEUrbwoG3NPFtoAGF6r2HloX0Q/Qo6FEHowrX0nY4gTM+QCw==1675 integrity sha512-WiDIrrLJNDeYxGp0QYjabM8DheKmJb8xlGyPyQhghTxtf6dPKmLsEs/i6LQ4LbxsTagxmn0y/kvRq8X9j4B/YA==1652 dependencies:1676 dependencies:1653 "@babel/runtime" "^7.13.17"1677 "@babel/runtime" "^7.14.0"1678 "@polkadot/metadata" "4.13.2-5"1654 "@polkadot/types" "4.7.2"1679 "@polkadot/rpc-provider" "4.13.2-5"1680 "@polkadot/types" "4.13.2-5"1681 "@polkadot/util" "^6.7.1"1682 "@polkadot/x-rxjs" "^6.7.1"16831684"@polkadot/rpc-provider@4.13.2-5":1655 "@polkadot/util" "^6.3.1"1685 version "4.13.2-5"1686 resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-4.13.2-5.tgz#7d1ed5c57e889a04992650d99f1fa566c03f7dcd"1687 integrity sha512-shycuAj3LG69jVNwI5Uu2j/t1kgXSN6YGtt6sh9cqwynAVNa7nwxAl6UQfd2Bcb4Dad9eOg/r7Da3ena7nb+wQ==1688 dependencies:1689 "@babel/runtime" "^7.14.0"1690 "@polkadot/types" "4.13.2-5"1691 "@polkadot/util" "^6.7.1"1656 "@polkadot/util-crypto" "^6.3.1"1692 "@polkadot/util-crypto" "^6.7.1"1657 "@polkadot/x-fetch" "^6.3.1"1693 "@polkadot/x-fetch" "^6.7.1"1658 "@polkadot/x-global" "^6.3.1"1694 "@polkadot/x-global" "^6.7.1"1659 "@polkadot/x-ws" "^6.3.1"1695 "@polkadot/x-ws" "^6.7.1"1660 bn.js "^4.11.9"1696 bn.js "^4.11.9"1661 eventemitter3 "^4.0.7"1697 eventemitter3 "^4.0.7"166216981663"@polkadot/ts@^0.3.63":1699"@polkadot/ts@0.3.89":1664 version "0.3.63"1700 version "0.3.89"1665 resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.3.63.tgz#184014eaeca5fb0fdbf93375f95d2a3b32f7907f"1701 resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.3.89.tgz#c7a704ea284d04fcf4d581f5df156d5945480033"1666 integrity sha512-P69/Q5Hs54ynvVZ/xTVu/FWBdXGPWtW/KxNeVymXBe5PAGNoofEB8FGO+jA6Qd5qIgnjU4+k0r63UQRwwqJH4w==1702 integrity sha512-GC0H8wmVKebkieN2MHScjDDonzigIzkjl1Q4V1OhoRcfQbeZZ7vijeiVwP8Hw3wIw4GLKxxXeDrkKPWl/bcaHw==1667 dependencies:1703 dependencies:1668 "@types/chrome" "^0.0.135"1704 "@types/chrome" "^0.0.144"166917051670"@polkadot/typegen@^4.7.2":1706"@polkadot/typegen@4.13.2-5":1671 version "4.7.2"1707 version "4.13.2-5"1672 resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-4.7.2.tgz#22cc04bfee8bb3a9c596402504022089d4685749"1708 resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-4.13.2-5.tgz#f94bf689de6e5ca2d83f3781d0b303350d22b4c3"1673 integrity sha512-GjkJa9fgU4HZPT+trr6rrBmroRv39uEUVGc7f2474UrzGWyO8X9034at165heMlOb0VhFoxTHAyZcIQX3Ub/IA==1709 integrity sha512-Cn2mlbwu/jyJmdAG/+wi8m2Gx8M3Dw5Zxi6sKB7TRMdNroQ7yhHhA+Sr32jgEC0DDcndwpq3rGSkezmHRcwDHQ==1674 dependencies:1710 dependencies:1675 "@babel/core" "^7.13.16"1711 "@babel/core" "^7.14.3"1676 "@babel/register" "^7.13.16"1712 "@babel/register" "^7.13.16"1677 "@babel/runtime" "^7.13.17"1713 "@babel/runtime" "^7.14.0"1678 "@polkadot/api" "4.7.2"1714 "@polkadot/api" "4.13.2-5"1679 "@polkadot/metadata" "4.7.2"1715 "@polkadot/metadata" "4.13.2-5"1680 "@polkadot/rpc-provider" "4.7.2"1716 "@polkadot/rpc-provider" "4.13.2-5"1681 "@polkadot/types" "4.7.2"1717 "@polkadot/types" "4.13.2-5"1682 "@polkadot/util" "^6.3.1"1718 "@polkadot/util" "^6.7.1"1683 handlebars "^4.7.7"1719 handlebars "^4.7.7"1684 websocket "^1.0.34"1720 websocket "^1.0.34"1685 yargs "^16.2.0"1721 yargs "^17.0.1"168617221687"@polkadot/types-known@4.7.2":1723"@polkadot/types-known@4.13.2-5":1688 version "4.7.2"1724 version "4.13.2-5"1689 resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-4.7.2.tgz#d6b55c75a9461a09490167a679b6ed783eab6350"1725 resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-4.13.2-5.tgz#4619ae08a40f34c25e8a081d386c5559abcd27e5"1690 integrity sha512-vlIMBtBdVYHyjWqonQ39PCdZJ9WeTsA5h5zr2mEpkCSoopby5pZ6eOR8CPqjc1uYbdDHT72Dbtx8Wr9L7z8HXg==1726 integrity sha512-IqZDu1uXj8gfU0toKq+CC3S0gU0inEk6ve6qOxvcokLT0UGY8OZht9kjbkqccVjIqKVY6WVdGINUWqi4lGAmJw==1691 dependencies:1727 dependencies:1692 "@babel/runtime" "^7.13.17"1728 "@babel/runtime" "^7.14.0"1693 "@polkadot/networks" "^6.3.1"1729 "@polkadot/networks" "^6.7.1"1694 "@polkadot/types" "4.7.2"1730 "@polkadot/types" "4.13.2-5"1695 "@polkadot/util" "^6.3.1"1731 "@polkadot/util" "^6.7.1"1696 bn.js "^4.11.9"1732 bn.js "^4.11.9"169717331698"@polkadot/types@4.7.2":1734"@polkadot/types@4.13.2-5":1699 version "4.7.2"1735 version "4.13.2-5"1700 resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-4.7.2.tgz#6b3e8c16999951e040459d5e338e259543bfec16"1736 resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-4.13.2-5.tgz#c781ae306c27bb229c76a8578a49fe9decb0e4f0"1701 integrity sha512-8qj/f6YAv5XCDLej60uWlX+cjuz2qt6AJKemi+lozA4vYZ9XTXIODYLv/XfjimbVABzeLdIAwWX1OQO9+F0Gng==1737 integrity sha512-71S8I5+1UoVlfXxLv03dkL4IuoU+X4rqRpbWKKk7h/wj1uEu/dSk+jJz5ObbUA7lu35PpyRL5QlmXurzVc7tzw==1702 dependencies:1738 dependencies:1703 "@babel/runtime" "^7.13.17"1739 "@babel/runtime" "^7.14.0"1704 "@polkadot/metadata" "4.7.2"1740 "@polkadot/metadata" "4.13.2-5"1705 "@polkadot/util" "^6.3.1"1741 "@polkadot/util" "^6.7.1"1706 "@polkadot/util-crypto" "^6.3.1"1742 "@polkadot/util-crypto" "^6.7.1"1707 "@polkadot/x-rxjs" "^6.3.1"1743 "@polkadot/x-rxjs" "^6.7.1"1708 "@types/bn.js" "^4.11.6"1744 "@types/bn.js" "^4.11.6"1709 bn.js "^4.11.9"1745 bn.js "^4.11.9"171017461711"@polkadot/util-crypto@6.3.1", "@polkadot/util-crypto@^6.3.1":1747"@polkadot/util-crypto@6.7.1":1712 version "6.3.1"1748 version "6.7.1"1713 resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-6.3.1.tgz#5328da77bdee5064bc41f9dec0a76cc634690b88"1749 resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-6.7.1.tgz#c30744ce809ac87120f417352108750b418be07a"1714 integrity sha512-fwH4t6EN2XACwJB2Z5xUyNo4mQ1RXJj0MgVaaLua8PbG0qq9tt4eaEbdVzrm7A6igIfsTntDoZISTfVjBcRtkQ==1750 integrity sha512-lmZv+aHsC/VM/ixYx4xZtQRFrMX9wbWAXeXG4dBkJMmHAd59ug1PCetRFVHQDwjccu0RPldTZdsdVbreMD0T+g==1715 dependencies:1751 dependencies:1716 "@babel/runtime" "^7.13.17"1752 "@babel/runtime" "^7.14.0"1717 "@polkadot/networks" "6.3.1"1753 "@polkadot/networks" "6.7.1"1718 "@polkadot/util" "6.3.1"1754 "@polkadot/util" "6.7.1"1719 "@polkadot/wasm-crypto" "^4.0.2"1755 "@polkadot/wasm-crypto" "^4.0.2"1720 "@polkadot/x-randomvalues" "6.3.1"1756 "@polkadot/x-randomvalues" "6.7.1"1721 base-x "^3.0.8"1757 base-x "^3.0.8"1722 base64-js "^1.5.1"1758 base64-js "^1.5.1"1723 blakejs "^1.1.0"1759 blakejs "^1.1.0"1730 tweetnacl "^1.0.3"1766 tweetnacl "^1.0.3"1731 xxhashjs "^0.2.2"1767 xxhashjs "^0.2.2"173217681733"@polkadot/util@6.3.1", "@polkadot/util@^6.3.1":1769"@polkadot/util-crypto@6.8.1", "@polkadot/util-crypto@^6.7.1":1770 version "6.8.1"1771 resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-6.8.1.tgz#8983ab50c8d9bf0b799503c91fd9b8f13e3544c1"1772 integrity sha512-vtfZXQcnPu1h5UEJYYWWUPqoZnL7jttvI3m0hltdOna1jKQytVNDzdlU1im0xLli4Tax+4S+bZwNqi3ss7umRQ==1773 dependencies:1774 "@babel/runtime" "^7.14.5"1775 "@polkadot/networks" "6.8.1"1776 "@polkadot/util" "6.8.1"1777 "@polkadot/wasm-crypto" "^4.0.2"1778 "@polkadot/x-randomvalues" "6.8.1"1779 base-x "^3.0.8"1780 base64-js "^1.5.1"1781 blakejs "^1.1.0"1782 bn.js "^4.11.9"1783 create-hash "^1.2.0"1784 elliptic "^6.5.4"1785 hash.js "^1.1.7"1786 js-sha3 "^0.8.0"1787 scryptsy "^2.1.0"1788 tweetnacl "^1.0.3"1789 xxhashjs "^0.2.2"17901791"@polkadot/util@6.3.1":1734 version "6.3.1"1792 version "6.3.1"1735 resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-6.3.1.tgz#410ee362ddb37f9c67af8f5897d977a7fd950ebf"1793 resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-6.3.1.tgz#410ee362ddb37f9c67af8f5897d977a7fd950ebf"1736 integrity sha512-M9pGaXSB67DZPckdNQU29wq5W7BUOh6qeu5LonzxpUek+riJfbiF9JOgZQ2Q/aEFYbd1hqLbOMsLRZLhSmlbYw==1794 integrity sha512-M9pGaXSB67DZPckdNQU29wq5W7BUOh6qeu5LonzxpUek+riJfbiF9JOgZQ2Q/aEFYbd1hqLbOMsLRZLhSmlbYw==1743 camelcase "^5.3.1"1801 camelcase "^5.3.1"1744 ip-regex "^4.3.0"1802 ip-regex "^4.3.0"174518031804"@polkadot/util@6.7.1":1805 version "6.7.1"1806 resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-6.7.1.tgz#decedda8326fd9504cd051cae598670f2cb31d31"1807 integrity sha512-EH9oQ7s5DFat57GGac3B+sZK3Np+vCwheMX4EbrnjbQEn4DBRFoqndRD2BIrWMzfNL2c5MDjDsSpe+5IFsihDQ==1808 dependencies:1809 "@babel/runtime" "^7.14.0"1810 "@polkadot/x-textdecoder" "6.7.1"1811 "@polkadot/x-textencoder" "6.7.1"1812 "@types/bn.js" "^4.11.6"1813 bn.js "^4.11.9"1814 camelcase "^5.3.1"1815 ip-regex "^4.3.0"18161817"@polkadot/util@6.8.1", "@polkadot/util@^6.7.1":1818 version "6.8.1"1819 resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-6.8.1.tgz#263fb6741a43471d48a4627b5698b7686a614e34"1820 integrity sha512-Dehgpee/xe6laI6j0dfDJqfC+zpEl4Wg41HzWKUQvSGhe9gNf5ajKZGHLr3DplKl07bX9YeL0F7xsj4gyVndHw==1821 dependencies:1822 "@babel/runtime" "^7.14.5"1823 "@polkadot/x-textdecoder" "6.8.1"1824 "@polkadot/x-textencoder" "6.8.1"1825 "@types/bn.js" "^4.11.6"1826 bn.js "^4.11.9"1827 camelcase "^5.3.1"1828 ip-regex "^4.3.0"18291746"@polkadot/wasm-crypto-asmjs@^4.0.2":1830"@polkadot/wasm-crypto-asmjs@^4.0.2":1747 version "4.0.2"1831 version "4.0.2"1748 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.0.2.tgz#f42c353a64e1243841daf90e4bd54eff01a4e3cf"1832 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.0.2.tgz#f42c353a64e1243841daf90e4bd54eff01a4e3cf"1766 "@polkadot/wasm-crypto-asmjs" "^4.0.2"1850 "@polkadot/wasm-crypto-asmjs" "^4.0.2"1767 "@polkadot/wasm-crypto-wasm" "^4.0.2"1851 "@polkadot/wasm-crypto-wasm" "^4.0.2"176818521769"@polkadot/x-fetch@^6.3.1":1853"@polkadot/x-fetch@^6.7.1":1770 version "6.3.1"1854 version "6.8.1"1771 resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-6.3.1.tgz#ac1737f57a2a03b6666aec6abe3c8a2e147c2696"1855 resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-6.8.1.tgz#41850e7301ec96971ce6b8796bfde6062f2bb8af"1772 integrity sha512-goBtKZarq5sXV2G98inj2v1ivVNF9gif8sg6IqsGRbljca6K6pZWTVd0yGWe7OABnCkFQotk283nly9nkr9+1g==1856 integrity sha512-P/Xv1E94nwDw750sTLHQV9nsYLvEqknd7wa+6Vjg6aYl1RxRIiXevT3C5kivKjo0H7V2N7KJl7Shqh4dZto4qQ==1773 dependencies:1857 dependencies:1774 "@babel/runtime" "^7.13.17"1858 "@babel/runtime" "^7.14.5"1775 "@polkadot/x-global" "6.3.1"1859 "@polkadot/x-global" "6.8.1"1776 "@types/node-fetch" "^2.5.10"1860 "@types/node-fetch" "^2.5.10"1777 node-fetch "^2.6.1"1861 node-fetch "^2.6.1"177818621779"@polkadot/x-global@6.3.1", "@polkadot/x-global@^6.3.1":1863"@polkadot/x-global@6.3.1":1780 version "6.3.1"1864 version "6.3.1"1781 resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-6.3.1.tgz#cdb4883fa20e23411bdd5f50a5d5c92814a3106f"1865 resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-6.3.1.tgz#cdb4883fa20e23411bdd5f50a5d5c92814a3106f"1782 integrity sha512-eFooGQdxJpiOsm3AKTSMInaecBKaQ/tqOUJNm/CpdJalCqTDMp/qzgj64Uflk9eUqGgk7jB7Q5FaQdyWsC0Mtg==1866 integrity sha512-eFooGQdxJpiOsm3AKTSMInaecBKaQ/tqOUJNm/CpdJalCqTDMp/qzgj64Uflk9eUqGgk7jB7Q5FaQdyWsC0Mtg==1785 "@types/node-fetch" "^2.5.10"1869 "@types/node-fetch" "^2.5.10"1786 node-fetch "^2.6.1"1870 node-fetch "^2.6.1"178718711788"@polkadot/x-randomvalues@6.3.1":1872"@polkadot/x-global@6.7.1":1789 version "6.3.1"1873 version "6.7.1"1790 resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-6.3.1.tgz#e2b91223277d7d7978c39e9d280fbc6526217d46"1874 resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-6.7.1.tgz#6a199b4e63a7497471d57efd57ca9271f1e3256f"1791 integrity sha512-SZ5MUYm1fd1fgGFexMWbbG8zZgCS7b9QNKaIcnv1Dwlfp2meDoDlgoedn+1pCJ6VEa1adswqLHX4WbYA4D9ynA==1875 integrity sha512-rfzo5mG/Vc0Qiht1XMls7qpYHnTEI7z1Y08WUcZNGoBd6+dWnW+zTeKPCl4ouCF4TBD8pptjyn82ScSfw4X2IQ==1792 dependencies:1876 dependencies:1793 "@babel/runtime" "^7.13.17"1877 "@babel/runtime" "^7.14.0"1794 "@polkadot/x-global" "6.3.1"1878 "@types/node-fetch" "^2.5.10"1879 node-fetch "^2.6.1"179518801796"@polkadot/x-rxjs@^6.3.1":1881"@polkadot/x-global@6.8.1", "@polkadot/x-global@^6.7.1":1797 version "6.3.1"1882 version "6.8.1"1798 resolved "https://registry.yarnpkg.com/@polkadot/x-rxjs/-/x-rxjs-6.3.1.tgz#5627f9601df6db22a65512a3eab0af4a22a58830"1883 resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-6.8.1.tgz#1c126de8f03cd1eea88224d14fa9171308805c4e"1799 integrity sha512-Z9mbvpixr0fopQh049tFlR8r/RItOyYRL4P7YqwnfeROqxU4R8UTmmB8As9y/zy0O5Jlkjzy9MdyQgwzhGQOcQ==1884 integrity sha512-JVoXZdJXAEi3/Nwzm0pzVU8nbJrxjj8qiBD9zN+8/lP7HLgwLnb9YYg6QSFHTAgFi2DxAi9ICrg8Va9Qnh2RpQ==1800 dependencies:1885 dependencies:1801 "@babel/runtime" "^7.13.17"1886 "@babel/runtime" "^7.14.5"1887 "@types/node-fetch" "^2.5.10"1888 node-fetch "^2.6.1"18891890"@polkadot/x-randomvalues@6.7.1":1891 version "6.7.1"1892 resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-6.7.1.tgz#d68226ae00b3a6cf4e265f75b10a40ce386c26fc"1893 integrity sha512-1g2IVax9ucotZtMaBRNAJ0UIpCKh/MwtrFiLFk2G7Yu/tV/OaYVnWzK46vgEtyTtJ9w3fi1xCVnvP121DV8RRQ==1894 dependencies:1895 "@babel/runtime" "^7.14.0"1896 "@polkadot/x-global" "6.7.1"18971898"@polkadot/x-randomvalues@6.8.1":1899 version "6.8.1"1900 resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-6.8.1.tgz#f086917d4860e8a090e94ca4225934bc18a9bf61"1901 integrity sha512-H/OS2ibhmKlBUXhf/GjwC2mF0sSxGqQ1rFvXrgnyDqMFlRWAxShUpe62AmMfrePbjCOHSUwvM2ccZpmye+YVrQ==1902 dependencies:1903 "@babel/runtime" "^7.14.5"1904 "@polkadot/x-global" "6.8.1"19051906"@polkadot/x-rxjs@^6.7.1":1907 version "6.8.1"1908 resolved "https://registry.yarnpkg.com/@polkadot/x-rxjs/-/x-rxjs-6.8.1.tgz#73255daab02ffad1cfde6678e63cc1e756573cc6"1909 integrity sha512-CGSHcZsl01FbiwvH3Ac3GHT43YQrZ2TmeEDKR/aTALqSYlqDci2fwrBZ4cP1ahgkfGjekz1YR3s18T7QoQVaiw==1910 dependencies:1911 "@babel/runtime" "^7.14.5"1802 rxjs "^6.6.7"1912 rxjs "^6.6.7"180319131804"@polkadot/x-textdecoder@6.3.1":1914"@polkadot/x-textdecoder@6.3.1":1809 "@babel/runtime" "^7.13.17"1919 "@babel/runtime" "^7.13.17"1810 "@polkadot/x-global" "6.3.1"1920 "@polkadot/x-global" "6.3.1"181119211922"@polkadot/x-textdecoder@6.7.1":1923 version "6.7.1"1924 resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-6.7.1.tgz#75d91c159a7b15687072f099c9677c955eb5e091"1925 integrity sha512-9ENlIx/XLZ1znSQC3wA8KI3EbqujCa/fEVjY7wlJ60OTybqWjZYrltgZPLBDQheDsYDd2JBGK1RJjDcRsCvK8g==1926 dependencies:1927 "@babel/runtime" "^7.14.0"1928 "@polkadot/x-global" "6.7.1"19291930"@polkadot/x-textdecoder@6.8.1":1931 version "6.8.1"1932 resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-6.8.1.tgz#3660338a849692006a58650781db004136a1160c"1933 integrity sha512-ZWKpxSDmDwb9WV37xrnfOUn+ceA0B9X2ipeEbdOgx2Nc6ATNzP5AQrqIQCv7nTEeFZnDsUwD1MBN1bDRCmW4SQ==1934 dependencies:1935 "@babel/runtime" "^7.14.5"1936 "@polkadot/x-global" "6.8.1"19371812"@polkadot/x-textencoder@6.3.1":1938"@polkadot/x-textencoder@6.3.1":1813 version "6.3.1"1939 version "6.3.1"1814 resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-6.3.1.tgz#2277770650f5637698d7d8cd7ac0cfd5ca0dace2"1940 resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-6.3.1.tgz#2277770650f5637698d7d8cd7ac0cfd5ca0dace2"1817 "@babel/runtime" "^7.13.17"1943 "@babel/runtime" "^7.13.17"1818 "@polkadot/x-global" "6.3.1"1944 "@polkadot/x-global" "6.3.1"181919451820"@polkadot/x-ws@^6.3.1":1946"@polkadot/x-textencoder@6.7.1":1821 version "6.3.1"1947 version "6.7.1"1822 resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-6.3.1.tgz#1534f8d1cd03dbf497410725d14313e5554a2ffd"1948 resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-6.7.1.tgz#fdc77abeeb8e83e6c67ffa189c4b7ff9bb69c1cb"1823 integrity sha512-bDb9a+bxoaNOza0EeLp9M6FKYz9ogJcFQzRP+YR6ND7oQ0QcQG06XloRKTU0wtcZRKP8AzkYYN+FAc/6bnIqTw==1949 integrity sha512-+M4x2bhHFvZsiXb2bnw224EE/0fXr6bG/dJclZUdvcL+JrwiE/7UMD8xUcEmdR2LfNJGDkCxKkXp3096ZavUxQ==1824 dependencies:1950 dependencies:1825 "@babel/runtime" "^7.13.17"1951 "@babel/runtime" "^7.14.0"1826 "@polkadot/x-global" "6.3.1"1952 "@polkadot/x-global" "6.7.1"19531954"@polkadot/x-textencoder@6.8.1":1955 version "6.8.1"1956 resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-6.8.1.tgz#c71459b6cd417620b5f3a41480d45c71dca44723"1957 integrity sha512-XnollArpiiQnQ3JdOz0bRohx2TrFerq/UvlKVjT1oPAqiXPfImNh5vn1QuYUcwmvw94/wBc6EO1cCw3JFrqv2Q==1958 dependencies:1959 "@babel/runtime" "^7.14.5"1960 "@polkadot/x-global" "6.8.1"19611962"@polkadot/x-ws@^6.7.1":1963 version "6.8.1"1964 resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-6.8.1.tgz#2f2e4dc2e8fb3870d4dbdc8952b65dcccd764548"1965 integrity sha512-qt3HyrbTLMr3+BhsT8A1glFzO5dtImzM4eMVhbEmacdUnRD1rJ+yoYE3pPDA7IqRgv3toQkXIf6WedLbymhJUg==1966 dependencies:1967 "@babel/runtime" "^7.14.5"1968 "@polkadot/x-global" "6.8.1"1827 "@types/websocket" "^1.0.2"1969 "@types/websocket" "^1.0.2"1828 websocket "^1.0.34"1970 websocket "^1.0.34"182919711844 dependencies:1986 dependencies:1845 type-detect "4.0.8"1987 type-detect "4.0.8"184619881847"@sinonjs/fake-timers@^6.0.1":1989"@sinonjs/fake-timers@^7.0.2":1848 version "6.0.1"1990 version "7.1.2"1849 resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40"1991 resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5"1850 integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==1992 integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==1851 dependencies:1993 dependencies:1852 "@sinonjs/commons" "^1.7.0"1994 "@sinonjs/commons" "^1.7.0"185319951858 dependencies:2000 dependencies:1859 defer-to-connect "^1.0.1"2001 defer-to-connect "^1.0.1"186020021861"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":2003"@tootallnate/once@1":2004 version "1.1.2"2005 resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"2006 integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==20072008"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":1862 version "7.1.14"2009 version "7.1.14"1863 resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"2010 resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"1864 integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==2011 integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==1899 "@types/node" "*"2046 "@types/node" "*"190020471901"@types/chai-as-promised@^7.1.3":2048"@types/chai-as-promised@^7.1.3":1902 version "7.1.3"2049 version "7.1.4"1903 resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.3.tgz#779166b90fda611963a3adbfd00b339d03b747bd"2050 resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.4.tgz#caf64e76fb056b8c8ced4b761ed499272b737601"1904 integrity sha512-FQnh1ohPXJELpKhzjuDkPLR2BZCAqed+a6xV4MI/T3XzHfd2FlarfUGUdZYgqYe8oxkYn0fchHEeHfHqdZ96sg==2051 integrity sha512-1y3L1cHePcIm5vXkh1DSGf/zQq5n5xDKG1fpCvf18+uOkpce0Z1ozNFPkyWsVswK7ntN1sZBw3oU6gmN+pDUcA==1905 dependencies:2052 dependencies:1906 "@types/chai" "*"2053 "@types/chai" "*"190720541908"@types/chai@*", "@types/chai@^4.2.17":2055"@types/chai@*", "@types/chai@^4.2.17":1909 version "4.2.17"2056 version "4.2.18"1910 resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.17.tgz#85f9f0610f514b22a94125d441f73eef65bde5cc"2057 resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4"1911 integrity sha512-LaiwWNnYuL8xJlQcE91QB2JoswWZckq9A4b+nMPq8dt8AP96727Nb3X4e74u+E3tm4NLTILNI9MYFsyVc30wSA==2058 integrity sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==191220591913"@types/chrome@^0.0.135":2060"@types/chrome@^0.0.144":1914 version "0.0.135"2061 version "0.0.144"1915 resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.135.tgz#a4dc6dbdc68b3f7d04b24f04d0ca5c803392b72f"2062 resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.144.tgz#7dd9188e355aa17e3ad397f50b5cd3ad12caf788"1916 integrity sha512-SczB5P5mIgQWHAeiimlYg5VFvuQKCw4Q5cAzVD7II1Czf4U0222jb3mTHUd1qM0BRJ/kPtzybBde+Zy2sdx/LA==2063 integrity sha512-BgoiO7/KP9hRNrCR2Wq+aKWT5Dh9bTofuWaRtcqPcj8YKhZojQgb6sSdIqvds2C+eO63BwaR9KHVMYYgZdGGBg==1917 dependencies:2064 dependencies:1918 "@types/filesystem" "*"2065 "@types/filesystem" "*"1919 "@types/har-format" "*"2066 "@types/har-format" "*"1938 "@types/node" "*"2085 "@types/node" "*"193920861940"@types/har-format@*":2087"@types/har-format@*":1941 version "1.2.5"2088 version "1.2.6"1942 resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.5.tgz#4f6648814d0fdcb6a510e3364a9db439a753c4b1"2089 resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.6.tgz#471c83acdf6a2ea429620daee4c6dc1784a0e85f"1943 integrity sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ==2090 integrity sha512-TeZjp4COiAWPOeGx1tuFJETr/SBMx80lxqeqnCC36ZVn463f7ElCdA3X9RzDuo3BHjhN4apw41A5uoIw5FzgWA==194420911945"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":2092"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":1946 version "2.0.3"2093 version "2.0.3"1955 "@types/istanbul-lib-coverage" "*"2102 "@types/istanbul-lib-coverage" "*"195621031957"@types/istanbul-reports@^3.0.0":2104"@types/istanbul-reports@^3.0.0":1958 version "3.0.0"2105 version "3.0.1"1959 resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"2106 resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"1960 integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==2107 integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==1961 dependencies:2108 dependencies:1962 "@types/istanbul-lib-report" "*"2109 "@types/istanbul-lib-report" "*"196321101964"@types/json-schema@^7.0.3":2111"@types/json-schema@^7.0.7":1965 version "7.0.7"2112 version "7.0.7"1966 resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"2113 resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"1967 integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==2114 integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==1985 form-data "^3.0.0"2132 form-data "^3.0.0"198621331987"@types/node@*":2134"@types/node@*":1988 version "15.0.1"2135 version "15.12.2"1989 resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a"2136 resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d"1990 integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==2137 integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==199121381992"@types/node@^12.12.6":2139"@types/node@^12.12.6":1993 version "12.20.11"2140 version "12.20.15"1994 resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.11.tgz#980832cd56efafff8c18aa148c4085eb02a483f4"2141 resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.15.tgz#10ee6a6a3f971966fddfa3f6e89ef7a73ec622df"1995 integrity sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==2142 integrity sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==199621431997"@types/normalize-package-data@^2.4.0":1998 version "2.4.0"1999 resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"2000 integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==20012002"@types/pbkdf2@^3.0.0":2144"@types/pbkdf2@^3.0.0":2003 version "3.1.0"2145 version "3.1.0"2004 resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1"2146 resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1"2005 integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==2147 integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==2006 dependencies:2148 dependencies:2007 "@types/node" "*"2149 "@types/node" "*"200821502009"@types/prettier@^2.0.0":2151"@types/prettier@^2.1.5":2010 version "2.2.3"2152 version "2.3.0"2011 resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"2153 resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb"2012 integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==2154 integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==201321552014"@types/secp256k1@^4.0.1":2156"@types/secp256k1@^4.0.1":2015 version "4.0.2"2157 version "4.0.2"2035 resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9"2177 resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9"2036 integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==2178 integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==203721792038"@types/yargs@^15.0.0":2180"@types/yargs@^16.0.0":2039 version "15.0.13"2181 version "16.0.3"2040 resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc"2182 resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01"2041 integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==2183 integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==2042 dependencies:2184 dependencies:2043 "@types/yargs-parser" "*"2185 "@types/yargs-parser" "*"204421862045"@typescript-eslint/eslint-plugin@4.22.0":2187"@typescript-eslint/eslint-plugin@4.26.0":2046 version "4.22.0"2188 version "4.26.0"2047 resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz#3d5f29bb59e61a9dba1513d491b059e536e16dbc"2189 resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz#12bbd6ebd5e7fabd32e48e1e60efa1f3554a3242"2048 integrity sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==2190 integrity sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg==2049 dependencies:2191 dependencies:2050 "@typescript-eslint/experimental-utils" "4.22.0"2192 "@typescript-eslint/experimental-utils" "4.26.0"2051 "@typescript-eslint/scope-manager" "4.22.0"2193 "@typescript-eslint/scope-manager" "4.26.0"2052 debug "^4.1.1"2194 debug "^4.3.1"2053 functional-red-black-tree "^1.0.1"2195 functional-red-black-tree "^1.0.1"2054 lodash "^4.17.15"2196 lodash "^4.17.21"2055 regexpp "^3.0.0"2197 regexpp "^3.1.0"2056 semver "^7.3.2"2198 semver "^7.3.5"2057 tsutils "^3.17.1"2199 tsutils "^3.21.0"205822002059"@typescript-eslint/experimental-utils@4.22.0":2201"@typescript-eslint/experimental-utils@4.26.0":2060 version "4.22.0"2202 version "4.26.0"2061 resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz#68765167cca531178e7b650a53456e6e0bef3b1f"2203 resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.0.tgz#ba7848b3f088659cdf71bce22454795fc55be99a"2062 integrity sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==2204 integrity sha512-TH2FO2rdDm7AWfAVRB5RSlbUhWxGVuxPNzGT7W65zVfl8H/WeXTk1e69IrcEVsBslrQSTDKQSaJD89hwKrhdkw==2063 dependencies:2205 dependencies:2064 "@types/json-schema" "^7.0.3"2206 "@types/json-schema" "^7.0.7"2065 "@typescript-eslint/scope-manager" "4.22.0"2207 "@typescript-eslint/scope-manager" "4.26.0"2066 "@typescript-eslint/types" "4.22.0"2208 "@typescript-eslint/types" "4.26.0"2067 "@typescript-eslint/typescript-estree" "4.22.0"2209 "@typescript-eslint/typescript-estree" "4.26.0"2068 eslint-scope "^5.0.0"2210 eslint-scope "^5.1.1"2069 eslint-utils "^2.0.0"2211 eslint-utils "^3.0.0"207022122071"@typescript-eslint/parser@4.22.0":2213"@typescript-eslint/parser@4.26.0":2072 version "4.22.0"2214 version "4.26.0"2073 resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.22.0.tgz#e1637327fcf796c641fe55f73530e90b16ac8fe8"2215 resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.0.tgz#31b6b732c9454f757b020dab9b6754112aa5eeaf"2074 integrity sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==2216 integrity sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg==2075 dependencies:2217 dependencies:2076 "@typescript-eslint/scope-manager" "4.22.0"2218 "@typescript-eslint/scope-manager" "4.26.0"2077 "@typescript-eslint/types" "4.22.0"2219 "@typescript-eslint/types" "4.26.0"2078 "@typescript-eslint/typescript-estree" "4.22.0"2220 "@typescript-eslint/typescript-estree" "4.26.0"2079 debug "^4.1.1"2221 debug "^4.3.1"208022222081"@typescript-eslint/scope-manager@4.22.0":2223"@typescript-eslint/scope-manager@4.26.0":2082 version "4.22.0"2224 version "4.26.0"2083 resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz#ed411545e61161a8d702e703a4b7d96ec065b09a"2225 resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.0.tgz#60d1a71df162404e954b9d1c6343ff3bee496194"2084 integrity sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==2226 integrity sha512-G6xB6mMo4xVxwMt5lEsNTz3x4qGDt0NSGmTBNBPJxNsrTXJSm21c6raeYroS2OwQsOyIXqKZv266L/Gln1BWqg==2085 dependencies:2227 dependencies:2086 "@typescript-eslint/types" "4.22.0"2228 "@typescript-eslint/types" "4.26.0"2087 "@typescript-eslint/visitor-keys" "4.22.0"2229 "@typescript-eslint/visitor-keys" "4.26.0"208822302089"@typescript-eslint/types@4.22.0":2231"@typescript-eslint/types@4.26.0":2090 version "4.22.0"2232 version "4.26.0"2091 resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.22.0.tgz#0ca6fde5b68daf6dba133f30959cc0688c8dd0b6"2233 resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.0.tgz#7c6732c0414f0a69595f4f846ebe12616243d546"2092 integrity sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==2234 integrity sha512-rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A==209322352094"@typescript-eslint/typescript-estree@4.22.0", "@typescript-eslint/typescript-estree@^4.8.2":2236"@typescript-eslint/types@4.27.0":2237 version "4.27.0"2238 resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8"2239 integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA==22402241"@typescript-eslint/typescript-estree@4.26.0":2095 version "4.22.0"2242 version "4.26.0"2096 resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz#b5d95d6d366ff3b72f5168c75775a3e46250d05c"2243 resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.0.tgz#aea17a40e62dc31c63d5b1bbe9a75783f2ce7109"2097 integrity sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==2244 integrity sha512-GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg==2098 dependencies:2245 dependencies:2099 "@typescript-eslint/types" "4.22.0"2246 "@typescript-eslint/types" "4.26.0"2100 "@typescript-eslint/visitor-keys" "4.22.0"2247 "@typescript-eslint/visitor-keys" "4.26.0"2101 debug "^4.1.1"2248 debug "^4.3.1"2102 globby "^11.0.1"2249 globby "^11.0.3"2103 is-glob "^4.0.1"2250 is-glob "^4.0.1"2104 semver "^7.3.2"2251 semver "^7.3.5"2105 tsutils "^3.17.1"2252 tsutils "^3.21.0"210622532107"@typescript-eslint/visitor-keys@4.22.0":2254"@typescript-eslint/typescript-estree@^4.8.2":2108 version "4.22.0"2255 version "4.27.0"2109 resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz#169dae26d3c122935da7528c839f42a8a42f6e47"2256 resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da"2110 integrity sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==2257 integrity sha512-KH03GUsUj41sRLLEy2JHstnezgpS5VNhrJouRdmh6yNdQ+yl8w5LrSwBkExM+jWwCJa7Ct2c8yl8NdtNRyQO6g==2111 dependencies:2258 dependencies:2112 "@typescript-eslint/types" "4.22.0"2259 "@typescript-eslint/types" "4.27.0"2260 "@typescript-eslint/visitor-keys" "4.27.0"2261 debug "^4.3.1"2262 globby "^11.0.3"2263 is-glob "^4.0.1"2264 semver "^7.3.5"2265 tsutils "^3.21.0"22662267"@typescript-eslint/visitor-keys@4.26.0":2268 version "4.26.0"2269 resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.0.tgz#26d2583169222815be4dcd1da4fe5459bc3bcc23"2270 integrity sha512-cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg==2271 dependencies:2272 "@typescript-eslint/types" "4.26.0"2113 eslint-visitor-keys "^2.0.0"2273 eslint-visitor-keys "^2.0.0"211422742275"@typescript-eslint/visitor-keys@4.27.0":2276 version "4.27.0"2277 resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.27.0.tgz#f56138b993ec822793e7ebcfac6ffdce0a60cb81"2278 integrity sha512-es0GRYNZp0ieckZ938cEANfEhsfHrzuLrePukLKtY3/KPXcq1Xd555Mno9/GOgXhKzn0QfkDLVgqWO3dGY80bg==2279 dependencies:2280 "@typescript-eslint/types" "4.27.0"2281 eslint-visitor-keys "^2.0.0"22822115"@ungap/promise-all-settled@1.1.2":2283"@ungap/promise-all-settled@1.1.2":2116 version "1.1.2"2284 version "1.1.2"2117 resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"2285 resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"2118 integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==2286 integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==211922872120"@vue/component-compiler-utils@^3.2.0":2288"@vue/component-compiler-utils@^3.2.0":2121 version "3.2.0"2289 version "3.2.2"2122 resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d"2290 resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460"2123 integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==2291 integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==2124 dependencies:2292 dependencies:2125 consolidate "^0.15.1"2293 consolidate "^0.15.1"2126 hash-sum "^1.0.2"2294 hash-sum "^1.0.2"2127 lru-cache "^4.1.2"2295 lru-cache "^4.1.2"2128 merge-source-map "^1.1.0"2296 merge-source-map "^1.1.0"2129 postcss "^7.0.14"2297 postcss "^7.0.36"2130 postcss-selector-parser "^6.0.2"2298 postcss-selector-parser "^6.0.2"2131 source-map "~0.6.1"2299 source-map "~0.6.1"2132 vue-template-es2015-compiler "^1.9.0"2300 vue-template-es2015-compiler "^1.9.0"2169 resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"2337 resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"2170 integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==2338 integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==217123392172acorn@^8.1.0:2340acorn@^8.2.4:2173 version "8.2.1"2341 version "8.4.0"2174 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.1.tgz#0d36af126fb6755095879c1dc6fd7edf7d60a5fb"2342 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60"2175 integrity sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==2343 integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==217623442345agent-base@6:2346 version "6.0.2"2347 resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"2348 integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==2349 dependencies:2350 debug "4"23512177ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:2352ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:2178 version "6.12.6"2353 version "6.12.6"2179 resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"2354 resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"2185 uri-js "^4.2.2"2360 uri-js "^4.2.2"218623612187ajv@^8.0.1:2362ajv@^8.0.1:2188 version "8.2.0"2363 version "8.6.0"2189 resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602"2364 resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720"2190 integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==2365 integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==2191 dependencies:2366 dependencies:2192 fast-deep-equal "^3.1.1"2367 fast-deep-equal "^3.1.1"2193 json-schema-traverse "^1.0.0"2368 json-schema-traverse "^1.0.0"2247 dependencies:2422 dependencies:2248 color-convert "^2.0.1"2423 color-convert "^2.0.1"224924242425ansi-styles@^5.0.0:2426 version "5.2.0"2427 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"2428 integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==24292250anymatch@^2.0.0:2430anymatch@^2.0.0:2251 version "2.0.0"2431 version "2.0.0"2252 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"2432 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"2255 micromatch "^3.1.4"2435 micromatch "^3.1.4"2256 normalize-path "^2.1.1"2436 normalize-path "^2.1.1"225724372258anymatch@^3.0.3, anymatch@~3.1.1:2438anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2:2259 version "3.1.2"2439 version "3.1.2"2260 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"2440 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"2261 integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==2441 integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==2319 resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"2499 resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"2320 integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=2500 integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=232125012322array-filter@^1.0.0:2323 version "1.0.0"2324 resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83"2325 integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=23262327array-flatten@1.1.1:2502array-flatten@1.1.1:2328 version "1.1.1"2503 version "1.1.1"2329 resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"2504 resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"2330 integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=2505 integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=233125062332array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3:2507array-includes@^3.1.2, array-includes@^3.1.3:2333 version "3.1.3"2508 version "3.1.3"2334 resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"2509 resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"2335 integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==2510 integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==2362 resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"2537 resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"2363 integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=2538 integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=236425392365array.prototype.flat@^1.2.3:2540array.prototype.flat@^1.2.4:2366 version "1.2.4"2541 version "1.2.4"2367 resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"2542 resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"2368 integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==2543 integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==2450 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"2625 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"2451 integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=2626 integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=245226272453at-least-node@^1.0.0:2454 version "1.0.0"2455 resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"2456 integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==24572458atob@^2.1.2:2628atob@^2.1.2:2459 version "2.1.2"2629 version "2.1.2"2460 resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"2630 resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"2461 integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==2631 integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==246226322463available-typed-arrays@^1.0.2:2633available-typed-arrays@^1.0.2:2464 version "1.0.2"2634 version "1.0.4"2465 resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5"2635 resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9"2466 integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==2636 integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==2467 dependencies:2468 array-filter "^1.0.0"246926372470aws-sign2@~0.7.0:2638aws-sign2@~0.7.0:2471 version "0.7.0"2639 version "0.7.0"2477 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"2645 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"2478 integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==2646 integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==247926472480babel-jest@^26.6.3:2648babel-jest@^27.0.2:2481 version "26.6.3"2649 version "27.0.2"2482 resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"2650 resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.2.tgz#7dc18adb01322acce62c2af76ea2c7cd186ade37"2483 integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==2651 integrity sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==2484 dependencies:2652 dependencies:2485 "@jest/transform" "^26.6.2"2653 "@jest/transform" "^27.0.2"2486 "@jest/types" "^26.6.2"2654 "@jest/types" "^27.0.2"2487 "@types/babel__core" "^7.1.7"2655 "@types/babel__core" "^7.1.14"2488 babel-plugin-istanbul "^6.0.0"2656 babel-plugin-istanbul "^6.0.0"2489 babel-preset-jest "^26.6.2"2657 babel-preset-jest "^27.0.1"2490 chalk "^4.0.0"2658 chalk "^4.0.0"2491 graceful-fs "^4.2.4"2659 graceful-fs "^4.2.4"2492 slash "^3.0.0"2660 slash "^3.0.0"2509 istanbul-lib-instrument "^4.0.0"2677 istanbul-lib-instrument "^4.0.0"2510 test-exclude "^6.0.0"2678 test-exclude "^6.0.0"251126792512babel-plugin-jest-hoist@^26.6.2:2680babel-plugin-jest-hoist@^27.0.1:2513 version "26.6.2"2681 version "27.0.1"2514 resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d"2682 resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz#a6d10e484c93abff0f4e95f437dad26e5736ea11"2515 integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==2683 integrity sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==2516 dependencies:2684 dependencies:2517 "@babel/template" "^7.3.3"2685 "@babel/template" "^7.3.3"2518 "@babel/types" "^7.3.3"2686 "@babel/types" "^7.3.3"2535 reselect "^4.0.0"2703 reselect "^4.0.0"2536 resolve "^1.13.1"2704 resolve "^1.13.1"253727052538babel-plugin-polyfill-corejs2@^0.2.0:2706babel-plugin-polyfill-corejs2@^0.2.2:2539 version "0.2.0"2707 version "0.2.2"2540 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4"2708 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"2541 integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==2709 integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==2542 dependencies:2710 dependencies:2543 "@babel/compat-data" "^7.13.11"2711 "@babel/compat-data" "^7.13.11"2544 "@babel/helper-define-polyfill-provider" "^0.2.0"2712 "@babel/helper-define-polyfill-provider" "^0.2.2"2545 semver "^6.1.1"2713 semver "^6.1.1"254627142547babel-plugin-polyfill-corejs3@^0.2.0:2715babel-plugin-polyfill-corejs3@^0.2.2:2548 version "0.2.0"2716 version "0.2.3"2549 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2"2717 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b"2550 integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==2718 integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==2551 dependencies:2719 dependencies:2552 "@babel/helper-define-polyfill-provider" "^0.2.0"2720 "@babel/helper-define-polyfill-provider" "^0.2.2"2553 core-js-compat "^3.9.1"2721 core-js-compat "^3.14.0"255427222555babel-plugin-polyfill-regenerator@^0.2.0:2723babel-plugin-polyfill-regenerator@^0.2.2:2556 version "0.2.0"2724 version "0.2.2"2557 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8"2725 resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"2558 integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==2726 integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==2559 dependencies:2727 dependencies:2560 "@babel/helper-define-polyfill-provider" "^0.2.0"2728 "@babel/helper-define-polyfill-provider" "^0.2.2"256127292562babel-plugin-styled-components@^1.12.0:2730babel-plugin-styled-components@^1.12.0:2563 version "1.12.0"2731 version "1.12.0"2592 "@babel/plugin-syntax-optional-chaining" "^7.8.3"2760 "@babel/plugin-syntax-optional-chaining" "^7.8.3"2593 "@babel/plugin-syntax-top-level-await" "^7.8.3"2761 "@babel/plugin-syntax-top-level-await" "^7.8.3"259427622595babel-preset-jest@^26.6.2:2763babel-preset-jest@^27.0.1:2596 version "26.6.2"2764 version "27.0.1"2597 resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee"2765 resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz#7a50c75d16647c23a2cf5158d5bb9eb206b10e20"2598 integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==2766 integrity sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==2599 dependencies:2767 dependencies:2600 babel-plugin-jest-hoist "^26.6.2"2768 babel-plugin-jest-hoist "^27.0.1"2601 babel-preset-current-node-syntax "^1.0.0"2769 babel-preset-current-node-syntax "^1.0.0"260227702603balanced-match@^1.0.0:2771balanced-match@^1.0.0:2638 tweetnacl "^0.14.3"2806 tweetnacl "^0.14.3"263928072640before-after-hook@^2.2.0:2808before-after-hook@^2.2.0:2641 version "2.2.1"2809 version "2.2.2"2642 resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c"2810 resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e"2643 integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==2811 integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==264428122645bignumber.js@^9.0.0, bignumber.js@^9.0.1:2813bignumber.js@^9.0.0, bignumber.js@^9.0.1:2646 version "9.0.1"2814 version "9.0.1"2681 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"2849 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"2682 integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU=2850 integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU=268328512684bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.9, bn.js@^4.4.0:2852bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.9:2685 version "4.12.0"2853 version "4.12.0"2686 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"2854 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"2687 integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==2855 integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==2821 readable-stream "^3.6.0"2989 readable-stream "^3.6.0"2822 safe-buffer "^5.2.0"2990 safe-buffer "^5.2.0"282329912824browserslist@^4.14.5, browserslist@^4.16.4, browserslist@^4.16.5:2992browserslist@^4.16.6:2825 version "4.16.5"2993 version "4.16.6"2826 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae"2994 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"2827 integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==2995 integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==2828 dependencies:2996 dependencies:2829 caniuse-lite "^1.0.30001214"2997 caniuse-lite "^1.0.30001219"2830 colorette "^1.2.2"2998 colorette "^1.2.2"2831 electron-to-chromium "^1.3.719"2999 electron-to-chromium "^1.3.723"2832 escalade "^3.1.1"3000 escalade "^3.1.1"2833 node-releases "^1.1.71"3001 node-releases "^1.1.71"283430022936 resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"3104 resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"2937 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==3105 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==293831062939camelcase@^5.0.0, camelcase@^5.3.1:3107camelcase@^5.3.1:2940 version "5.3.1"3108 version "5.3.1"2941 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"3109 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"2942 integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==3110 integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==2946 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"3114 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"2947 integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==3115 integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==294831162949caniuse-lite@^1.0.30001214:3117caniuse-lite@^1.0.30001219:2950 version "1.0.30001219"3118 version "1.0.30001238"2951 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz#5bfa5d0519f41f993618bd318f606a4c4c16156b"3119 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001238.tgz#e6a8b45455c5de601718736d0242feef0ecdda15"2952 integrity sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==3120 integrity sha512-bZGam2MxEt7YNsa2VwshqWQMwrYs5tR5WZQRYSuFxsBQunWjBuXhN4cS9nV5FFb1Z9y+DoQcQ0COyQbv6A+CKw==295331212954capture-exit@^2.0.0:2955 version "2.0.0"2956 resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"2957 integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==2958 dependencies:2959 rsvp "^4.8.4"29602961caseless@~0.12.0:3122caseless@~0.12.0:2962 version "0.12.0"3123 version "0.12.0"2963 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"3124 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"3030 resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"3191 resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"3031 integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=3192 integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=303231933033chokidar@3.5.1, chokidar@^3.4.0:3194chokidar@3.5.1:3034 version "3.5.1"3195 version "3.5.1"3035 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"3196 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"3036 integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==3197 integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==3045 optionalDependencies:3206 optionalDependencies:3046 fsevents "~2.3.1"3207 fsevents "~2.3.1"304732083209chokidar@^3.4.0:3210 version "3.5.2"3211 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"3212 integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==3213 dependencies:3214 anymatch "~3.1.2"3215 braces "~3.0.2"3216 glob-parent "~5.1.2"3217 is-binary-path "~2.1.0"3218 is-glob "~4.0.1"3219 normalize-path "~3.0.0"3220 readdirp "~3.6.0"3221 optionalDependencies:3222 fsevents "~2.3.2"32233048chownr@^1.1.1:3224chownr@^1.1.1:3049 version "1.1.4"3225 version "1.1.4"3050 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"3226 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"3055 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"3231 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"3056 integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==3232 integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==305732333234ci-info@^3.1.1:3235 version "3.2.0"3236 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"3237 integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==32383058cids@^0.7.1:3239cids@^0.7.1:3059 version "0.7.5"3240 version "0.7.5"3060 resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2"3241 resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2"3074 inherits "^2.0.1"3255 inherits "^2.0.1"3075 safe-buffer "^5.0.1"3256 safe-buffer "^5.0.1"307632573077cjs-module-lexer@^0.6.0:3258cjs-module-lexer@^1.0.0:3078 version "0.6.0"3259 version "1.2.1"3079 resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"3260 resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73"3080 integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==3261 integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==308132623082class-is@^1.1.0:3263class-is@^1.1.0:3083 version "1.1.0"3264 version "1.1.0"3116 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"3297 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"3117 integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==3298 integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==311832993119cliui@^6.0.0:3120 version "6.0.0"3121 resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"3122 integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==3123 dependencies:3124 string-width "^4.2.0"3125 strip-ansi "^6.0.0"3126 wrap-ansi "^6.2.0"31273128cliui@^7.0.2:3300cliui@^7.0.2:3129 version "7.0.4"3301 version "7.0.4"3130 resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"3302 resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"3268 dependencies:3440 dependencies:3269 bluebird "^3.1.1"3441 bluebird "^3.1.1"327034423271contains-path@^0.1.0:3272 version "0.1.0"3273 resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"3274 integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=32753276content-disposition@0.5.3:3443content-disposition@0.5.3:3277 version "0.5.3"3444 version "0.5.3"3278 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"3445 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"3321 resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"3488 resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"3322 integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=3489 integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=332334903324core-js-compat@^3.9.0, core-js-compat@^3.9.1:3491core-js-compat@^3.14.0:3325 version "3.11.0"3492 version "3.14.0"3326 resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.11.0.tgz#635683f43480a0b41e3f6be3b1c648dadb8b4390"3493 resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5"3327 integrity sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==3494 integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==3328 dependencies:3495 dependencies:3329 browserslist "^4.16.4"3496 browserslist "^4.16.6"3330 semver "7.0.0"3497 semver "7.0.0"333134983332core-util-is@1.0.2, core-util-is@~1.0.0:3499core-util-is@1.0.2, core-util-is@~1.0.0:3389 resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"3556 resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"3390 integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==3557 integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==339135583392cross-spawn@^6.0.0:3559cross-spawn@^7.0.2, cross-spawn@^7.0.3:3393 version "6.0.5"3394 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"3395 integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==3396 dependencies:3397 nice-try "^1.0.4"3398 path-key "^2.0.1"3399 semver "^5.5.0"3400 shebang-command "^1.2.0"3401 which "^1.2.9"34023403cross-spawn@^7.0.0, cross-spawn@^7.0.2:3404 version "7.0.3"3560 version "7.0.3"3405 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"3561 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"3406 integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==3562 integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==3489 dependencies:3645 dependencies:3490 ms "2.0.0"3646 ms "2.0.0"349136473492debug@4.3.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:3648debug@4, debug@4.3.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:3493 version "4.3.1"3649 version "4.3.1"3494 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"3650 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"3495 integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==3651 integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==3496 dependencies:3652 dependencies:3497 ms "2.1.2"3653 ms "2.1.2"349836543499decamelize@^1.2.0:3655debug@^3.2.7:3500 version "1.2.0"3656 version "3.2.7"3501 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"3657 resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"3502 integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=3658 integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==3659 dependencies:3660 ms "^2.1.1"350336613504decamelize@^4.0.0:3662decamelize@^4.0.0:3505 version "4.0.0"3663 version "4.0.0"3537 dependencies:3695 dependencies:3538 mimic-response "^3.1.0"3696 mimic-response "^3.1.0"353936973698dedent@^0.7.0:3699 version "0.7.0"3700 resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"3701 integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=37023540deep-eql@^3.0.1:3703deep-eql@^3.0.1:3541 version "3.0.1"3704 version "3.0.1"3542 resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"3705 resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"3611 integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=3774 integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=361237753613dependency-tree@^8.0.0:3776dependency-tree@^8.0.0:3614 version "8.1.0"3777 version "8.1.1"3615 resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.0.tgz#1b896a0418bd7ba3e6d55c39bb664452a001579f"3778 resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.1.tgz#1a309f5a860b3285f7b1638c98ce48c8906ae6e6"3616 integrity sha512-YKFK+1KXJOqVpsW6MkrIl/DyiW+KVG25V8NfRs27ANe+oSeCkQx2ROW1mBpp1bcm++5zj3Xv8wyFxHgX6TbM1w==3779 integrity sha512-bl5U16VQpaYxD0xvcnCH/dTctCiWnsVWymh9dNjbm4T00Hm21flu1VLnNueKCj7+3uusbcJhKKKtiWrpU0I+Nw==3617 dependencies:3780 dependencies:3618 commander "^2.20.3"3781 commander "^2.20.3"3619 debug "^4.3.1"3782 debug "^4.3.1"3620 filing-cabinet "^3.0.0"3783 filing-cabinet "^3.0.0"3621 precinct "^7.0.0"3784 precinct "^8.0.0"3622 typescript "^3.9.7"3785 typescript "^3.9.7"362337863624deprecation@^2.0.0, deprecation@^2.3.1:3787deprecation@^2.0.0, deprecation@^2.3.1:3640 integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=3803 integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=364138043642detect-indent@^6.0.0:3805detect-indent@^6.0.0:3643 version "6.0.0"3806 version "6.1.0"3644 resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd"3807 resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"3645 integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==3808 integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==364638093647detect-newline@^3.0.0:3810detect-newline@^3.0.0:3648 version "3.1.0"3811 version "3.1.0"3736 node-source-walk "^4.2.0"3899 node-source-walk "^4.2.0"3737 typescript "^3.9.7"3900 typescript "^3.9.7"373839013739diff-sequences@^26.6.2:3902diff-sequences@^27.0.1:3740 version "26.6.2"3903 version "27.0.1"3741 resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"3904 resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz#9c9801d52ed5f576ff0a20e3022a13ee6e297e7c"3742 integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==3905 integrity sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==374339063744diff@5.0.0:3907diff@5.0.0:3745 version "5.0.0"3908 version "5.0.0"3767 dependencies:3930 dependencies:3768 path-type "^4.0.0"3931 path-type "^4.0.0"376939323770doctrine@1.5.0:3771 version "1.5.0"3772 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"3773 integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=3774 dependencies:3775 esutils "^2.0.2"3776 isarray "^1.0.0"37773778doctrine@^2.1.0:3933doctrine@^2.1.0:3779 version "2.1.0"3934 version "2.1.0"3780 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"3935 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"3836 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"3991 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"3837 integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=3992 integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=383839933839electron-to-chromium@^1.3.719:3994electron-to-chromium@^1.3.723:3840 version "1.3.723"3995 version "1.3.752"3841 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz#52769a75635342a4db29af5f1e40bd3dad02c877"3996 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09"3842 integrity sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==3997 integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==384339983844elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4:3999elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4:3845 version "6.5.4"4000 version "6.5.4"3859 resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb"4014 resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb"3860 integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==4015 integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==386140163862emittery@^0.7.1:4017emittery@^0.8.1:3863 version "0.7.2"4018 version "0.8.1"3864 resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82"4019 resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"3865 integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==4020 integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==386640213867emoji-regex@^7.0.1:4022emoji-regex@^7.0.1:3868 version "7.0.3"4023 version "7.0.3"3887 once "^1.4.0"4042 once "^1.4.0"388840433889enhanced-resolve@^5.3.2:4044enhanced-resolve@^5.3.2:3890 version "5.8.0"4045 version "5.8.2"3891 resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0"4046 resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b"3892 integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==4047 integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==3893 dependencies:4048 dependencies:3894 graceful-fs "^4.2.4"4049 graceful-fs "^4.2.4"3895 tapable "^2.2.0"4050 tapable "^2.2.0"3901 dependencies:4056 dependencies:3902 ansi-colors "^4.1.1"4057 ansi-colors "^4.1.1"390340583904error-ex@^1.2.0, error-ex@^1.3.1:4059error-ex@^1.3.1:3905 version "1.3.2"4060 version "1.3.2"3906 resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"4061 resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"3907 integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==4062 integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==3908 dependencies:4063 dependencies:3909 is-arrayish "^0.2.1"4064 is-arrayish "^0.2.1"391040653911es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:4066es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:3912 version "1.18.0"4067 version "1.18.3"3913 resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4"4068 resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"3914 integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==4069 integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==3915 dependencies:4070 dependencies:3916 call-bind "^1.0.2"4071 call-bind "^1.0.2"3917 es-to-primitive "^1.2.1"4072 es-to-primitive "^1.2.1"3921 has-symbols "^1.0.2"4076 has-symbols "^1.0.2"3922 is-callable "^1.2.3"4077 is-callable "^1.2.3"3923 is-negative-zero "^2.0.1"4078 is-negative-zero "^2.0.1"3924 is-regex "^1.1.2"4079 is-regex "^1.1.3"3925 is-string "^1.0.5"4080 is-string "^1.0.6"3926 object-inspect "^1.9.0"4081 object-inspect "^1.10.3"3927 object-keys "^1.1.1"4082 object-keys "^1.1.1"3928 object.assign "^4.1.2"4083 object.assign "^4.1.2"3929 string.prototype.trimend "^1.0.4"4084 string.prototype.trimend "^1.0.4"3930 string.prototype.trimstart "^1.0.4"4085 string.prototype.trimstart "^1.0.4"3931 unbox-primitive "^1.0.0"4086 unbox-primitive "^1.0.1"393240873933es-to-primitive@^1.2.1:4088es-to-primitive@^1.2.1:3934 version "1.2.1"4089 version "1.2.1"3980 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"4135 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"3981 integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=4136 integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=398241373983escape-string-regexp@4.0.0:4138escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:3984 version "4.0.0"4139 version "4.0.0"3985 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"4140 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"3986 integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==4141 integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==4007 optionalDependencies:4162 optionalDependencies:4008 source-map "~0.6.1"4163 source-map "~0.6.1"400941644010eslint-config-standard@^16.0.2:4165eslint-config-standard@^16.0.3:4011 version "16.0.2"4166 version "16.0.3"4012 resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6"4167 resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516"4013 integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==4168 integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==401441694015eslint-import-resolver-node@^0.3.4:4170eslint-import-resolver-node@^0.3.4:4016 version "0.3.4"4171 version "0.3.4"4020 debug "^2.6.9"4175 debug "^2.6.9"4021 resolve "^1.13.1"4176 resolve "^1.13.1"402241774023eslint-module-utils@^2.6.0:4178eslint-module-utils@^2.6.1:4024 version "2.6.0"4179 version "2.6.1"4025 resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6"4180 resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233"4026 integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==4181 integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==4027 dependencies:4182 dependencies:4028 debug "^2.6.9"4183 debug "^3.2.7"4029 pkg-dir "^2.0.0"4184 pkg-dir "^2.0.0"403041854031eslint-plugin-es@^3.0.0:4186eslint-plugin-es@^3.0.0:4041 resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6"4196 resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6"4042 integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==4197 integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==404341984044eslint-plugin-import@^2.22.1:4199eslint-plugin-import@^2.23.4:4045 version "2.22.1"4200 version "2.23.4"4046 resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702"4201 resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97"4047 integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==4202 integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==4048 dependencies:4203 dependencies:4049 array-includes "^3.1.1"4204 array-includes "^3.1.3"4050 array.prototype.flat "^1.2.3"4205 array.prototype.flat "^1.2.4"4051 contains-path "^0.1.0"4052 debug "^2.6.9"4206 debug "^2.6.9"4053 doctrine "1.5.0"4207 doctrine "^2.1.0"4054 eslint-import-resolver-node "^0.3.4"4208 eslint-import-resolver-node "^0.3.4"4055 eslint-module-utils "^2.6.0"4209 eslint-module-utils "^2.6.1"4210 find-up "^2.0.0"4056 has "^1.0.3"4211 has "^1.0.3"4212 is-core-module "^2.4.0"4057 minimatch "^3.0.4"4213 minimatch "^3.0.4"4058 object.values "^1.1.1"4214 object.values "^1.1.3"4059 read-pkg-up "^2.0.0"4215 pkg-up "^2.0.0"4216 read-pkg-up "^3.0.0"4060 resolve "^1.17.0"4217 resolve "^1.20.0"4061 tsconfig-paths "^3.9.0"4218 tsconfig-paths "^3.9.0"406242194063eslint-plugin-node@^11.1.0:4220eslint-plugin-node@^11.1.0:4082 resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"4239 resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"4083 integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==4240 integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==408442414085eslint-plugin-react@^7.23.2:4242eslint-plugin-react@^7.24.0:4086 version "7.23.2"4243 version "7.24.0"4087 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494"4244 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4"4088 integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==4245 integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==4089 dependencies:4246 dependencies:4090 array-includes "^3.1.3"4247 array-includes "^3.1.3"4091 array.prototype.flatmap "^1.2.4"4248 array.prototype.flatmap "^1.2.4"4092 doctrine "^2.1.0"4249 doctrine "^2.1.0"4093 has "^1.0.3"4250 has "^1.0.3"4094 jsx-ast-utils "^2.4.1 || ^3.0.0"4251 jsx-ast-utils "^2.4.1 || ^3.0.0"4095 minimatch "^3.0.4"4252 minimatch "^3.0.4"4096 object.entries "^1.1.3"4253 object.entries "^1.1.4"4097 object.fromentries "^2.0.4"4254 object.fromentries "^2.0.4"4098 object.values "^1.1.3"4255 object.values "^1.1.4"4099 prop-types "^15.7.2"4256 prop-types "^15.7.2"4100 resolve "^2.0.0-next.3"4257 resolve "^2.0.0-next.3"4101 string.prototype.matchall "^4.0.4"4258 string.prototype.matchall "^4.0.5"410242594103eslint-plugin-simple-import-sort@^7.0.0:4260eslint-plugin-simple-import-sort@^7.0.0:4104 version "7.0.0"4261 version "7.0.0"4112 dependencies:4269 dependencies:4113 natural-compare-lite "^1.4.0"4270 natural-compare-lite "^1.4.0"411442714115eslint-scope@^5.0.0, eslint-scope@^5.1.1:4272eslint-scope@^5.1.1:4116 version "5.1.1"4273 version "5.1.1"4117 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"4274 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"4118 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==4275 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==4127 dependencies:4284 dependencies:4128 eslint-visitor-keys "^1.1.0"4285 eslint-visitor-keys "^1.1.0"412942864287eslint-utils@^3.0.0:4288 version "3.0.0"4289 resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"4290 integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==4291 dependencies:4292 eslint-visitor-keys "^2.0.0"42934130eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:4294eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:4131 version "1.3.0"4295 version "1.3.0"4132 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"4296 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"4133 integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==4297 integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==413442984135eslint-visitor-keys@^2.0.0:4299eslint-visitor-keys@^2.0.0:4136 version "2.0.0"4300 version "2.1.0"4137 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"4301 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"4138 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==4302 integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==413943034140eslint@^7.25.0:4304eslint@^7.27.0:4141 version "7.25.0"4305 version "7.28.0"4142 resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67"4306 resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820"4143 integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==4307 integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==4144 dependencies:4308 dependencies:4145 "@babel/code-frame" "7.12.11"4309 "@babel/code-frame" "7.12.11"4146 "@eslint/eslintrc" "^0.4.0"4310 "@eslint/eslintrc" "^0.4.2"4147 ajv "^6.10.0"4311 ajv "^6.10.0"4148 chalk "^4.0.0"4312 chalk "^4.0.0"4149 cross-spawn "^7.0.2"4313 cross-spawn "^7.0.2"4150 debug "^4.0.1"4314 debug "^4.0.1"4151 doctrine "^3.0.0"4315 doctrine "^3.0.0"4152 enquirer "^2.3.5"4316 enquirer "^2.3.5"4317 escape-string-regexp "^4.0.0"4153 eslint-scope "^5.1.1"4318 eslint-scope "^5.1.1"4154 eslint-utils "^2.1.0"4319 eslint-utils "^2.1.0"4155 eslint-visitor-keys "^2.0.0"4320 eslint-visitor-keys "^2.0.0"4156 espree "^7.3.1"4321 espree "^7.3.1"4157 esquery "^1.4.0"4322 esquery "^1.4.0"4158 esutils "^2.0.2"4323 esutils "^2.0.2"4324 fast-deep-equal "^3.1.3"4159 file-entry-cache "^6.0.1"4325 file-entry-cache "^6.0.1"4160 functional-red-black-tree "^1.0.1"4326 functional-red-black-tree "^1.0.1"4161 glob-parent "^5.0.0"4327 glob-parent "^5.1.2"4162 globals "^13.6.0"4328 globals "^13.6.0"4163 ignore "^4.0.6"4329 ignore "^4.0.6"4164 import-fresh "^3.0.0"4330 import-fresh "^3.0.0"4167 js-yaml "^3.13.1"4333 js-yaml "^3.13.1"4168 json-stable-stringify-without-jsonify "^1.0.1"4334 json-stable-stringify-without-jsonify "^1.0.1"4169 levn "^0.4.1"4335 levn "^0.4.1"4170 lodash "^4.17.21"4336 lodash.merge "^4.6.2"4171 minimatch "^3.0.4"4337 minimatch "^3.0.4"4172 natural-compare "^1.4.0"4338 natural-compare "^1.4.0"4173 optionator "^0.9.1"4339 optionator "^0.9.1"4176 semver "^7.2.1"4342 semver "^7.2.1"4177 strip-ansi "^6.0.0"4343 strip-ansi "^6.0.0"4178 strip-json-comments "^3.1.0"4344 strip-json-comments "^3.1.0"4179 table "^6.0.4"4345 table "^6.0.9"4180 text-table "^0.2.0"4346 text-table "^0.2.0"4181 v8-compile-cache "^2.0.3"4347 v8-compile-cache "^2.0.3"418243484258 xhr-request-promise "^0.1.2"4424 xhr-request-promise "^0.1.2"425944254260ethereum-bloom-filters@^1.0.6:4426ethereum-bloom-filters@^1.0.6:4261 version "1.0.9"4427 version "1.0.10"4262 resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz#4a59dead803af0c9e33834170bd7695df67061ec"4428 resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a"4263 integrity sha512-GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==4429 integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==4264 dependencies:4430 dependencies:4265 js-sha3 "^0.8.0"4431 js-sha3 "^0.8.0"426644324345 md5.js "^1.3.4"4511 md5.js "^1.3.4"4346 safe-buffer "^5.1.1"4512 safe-buffer "^5.1.1"434745134348exec-sh@^0.3.2:4349 version "0.3.6"4350 resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc"4351 integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==43524353execa@^1.0.0:4514execa@^5.0.0:4354 version "1.0.0"4515 version "5.1.1"4355 resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"4516 resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"4356 integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==4517 integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==4357 dependencies:4518 dependencies:4358 cross-spawn "^6.0.0"4519 cross-spawn "^7.0.3"4359 get-stream "^4.0.0"4360 is-stream "^1.1.0"4361 npm-run-path "^2.0.0"4362 p-finally "^1.0.0"4363 signal-exit "^3.0.0"4364 strip-eof "^1.0.0"4520 get-stream "^6.0.0"43654366execa@^4.0.0:4367 version "4.1.0"4368 resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"4369 integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==4370 dependencies:4371 cross-spawn "^7.0.0"4372 get-stream "^5.0.0"4373 human-signals "^1.1.1"4521 human-signals "^2.1.0"4374 is-stream "^2.0.0"4522 is-stream "^2.0.0"4375 merge-stream "^2.0.0"4523 merge-stream "^2.0.0"4376 npm-run-path "^4.0.0"4524 npm-run-path "^4.0.1"4377 onetime "^5.1.0"4525 onetime "^5.1.2"4378 signal-exit "^3.0.2"4526 signal-exit "^3.0.3"4379 strip-final-newline "^2.0.0"4527 strip-final-newline "^2.0.0"438045284381exit@^0.1.2:4529exit@^0.1.2:4396 snapdragon "^0.8.1"4544 snapdragon "^0.8.1"4397 to-regex "^3.0.1"4545 to-regex "^3.0.1"439845464399expect@^26.6.2:4547expect@^27.0.2:4400 version "26.6.2"4548 version "27.0.2"4401 resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417"4549 resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz#e66ca3a4c9592f1c019fa1d46459a9d2084f3422"4402 integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==4550 integrity sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==4403 dependencies:4551 dependencies:4404 "@jest/types" "^26.6.2"4552 "@jest/types" "^27.0.2"4405 ansi-styles "^4.0.0"4553 ansi-styles "^5.0.0"4406 jest-get-type "^26.3.0"4554 jest-get-type "^27.0.1"4407 jest-matcher-utils "^26.6.2"4555 jest-matcher-utils "^27.0.2"4408 jest-message-util "^26.6.2"4556 jest-message-util "^27.0.2"4409 jest-regex-util "^26.0.0"4557 jest-regex-util "^27.0.1"441045584411express@^4.14.0:4559express@^4.14.0:4412 version "4.17.1"4560 version "4.17.1"4504 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"4652 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"4505 integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=4653 integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=450646544507fast-deep-equal@^3.1.1:4655fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:4508 version "3.1.3"4656 version "3.1.3"4509 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"4657 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"4510 integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==4658 integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==4747 combined-stream "^1.0.6"4895 combined-stream "^1.0.6"4748 mime-types "^2.1.12"4896 mime-types "^2.1.12"474948974750forwarded@~0.1.2:4898forwarded@0.2.0:4751 version "0.1.2"4899 version "0.2.0"4752 resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"4900 resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"4753 integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=4901 integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==475449024755fragment-cache@^0.2.1:4903fragment-cache@^0.2.1:4756 version "0.2.1"4904 version "0.2.1"4764 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"4912 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"4765 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=4913 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=476649144915fs-extra@^10.0.0:4916 version "10.0.0"4917 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"4918 integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==4919 dependencies:4920 graceful-fs "^4.2.0"4921 jsonfile "^6.0.1"4922 universalify "^2.0.0"49234767fs-extra@^4.0.2:4924fs-extra@^4.0.2:4768 version "4.0.3"4925 version "4.0.3"4769 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"4926 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"4782 jsonfile "^4.0.0"4939 jsonfile "^4.0.0"4783 universalify "^0.1.0"4940 universalify "^0.1.0"478449414785fs-extra@^9.1.0:4786 version "9.1.0"4787 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"4788 integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==4789 dependencies:4790 at-least-node "^1.0.0"4791 graceful-fs "^4.2.0"4792 jsonfile "^6.0.1"4793 universalify "^2.0.0"47944795fs-minipass@^1.2.5:4942fs-minipass@^1.2.5:4796 version "1.2.7"4943 version "1.2.7"4797 resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"4944 resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"4809 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"4956 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"4810 integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=4957 integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=481149584812fsevents@^2.1.2, fsevents@~2.3.1:4959fsevents@^2.3.2, fsevents@~2.3.1, fsevents@~2.3.2:4813 version "2.3.2"4960 version "2.3.2"4814 resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"4961 resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"4815 integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==4962 integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==4851 ast-module-types "^2.3.2"4998 ast-module-types "^2.3.2"4852 node-source-walk "^4.0.0"4999 node-source-walk "^4.0.0"485350004854get-caller-file@^2.0.1, get-caller-file@^2.0.5:5001get-caller-file@^2.0.5:4855 version "2.0.5"5002 version "2.0.5"4856 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"5003 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"4857 integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==5004 integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==4885 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"5032 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"4886 integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=5033 integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=488750344888get-stream@^4.0.0, get-stream@^4.1.0:5035get-stream@^4.1.0:4889 version "4.1.0"5036 version "4.1.0"4890 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"5037 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"4891 integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==5038 integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==4892 dependencies:5039 dependencies:4893 pump "^3.0.0"5040 pump "^3.0.0"489450414895get-stream@^5.0.0, get-stream@^5.1.0:5042get-stream@^5.1.0:4896 version "5.2.0"5043 version "5.2.0"4897 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"5044 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"4898 integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==5045 integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==4899 dependencies:5046 dependencies:4900 pump "^3.0.0"5047 pump "^3.0.0"490150485049get-stream@^6.0.0:5050 version "6.0.1"5051 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"5052 integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==50534902get-value@^2.0.3, get-value@^2.0.6:5054get-value@^2.0.3, get-value@^2.0.6:4903 version "2.0.6"5055 version "2.0.6"4904 resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"5056 resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"4911 dependencies:5063 dependencies:4912 assert-plus "^1.0.0"5064 assert-plus "^1.0.0"491350654914gh-pages@^3.1.0:5066gh-pages@^3.2.0:4915 version "3.1.0"5067 version "3.2.2"4916 resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-3.1.0.tgz#ec3ed0f6a6e3fc3d888758fa018f08191c96bd55"5068 resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-3.2.2.tgz#3177ef792f8cfcd6872c252c3482910d88b46bbb"4917 integrity sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==5069 integrity sha512-szdkmGpVqMBUZkjgsEXQm5wkLvx/XNvWf3HzL+2ETpLtpaXvSvIzpNgLiiojDzxmbFDf3M5CFK7p/3eYi8U83A==4918 dependencies:5070 dependencies:4919 async "^2.6.1"5071 async "^2.6.1"4920 commander "^2.18.0"5072 commander "^2.18.0"4936 simple-get "^4.0.0"5088 simple-get "^4.0.0"4937 util-extend "^1.0.1"5089 util-extend "^1.0.1"493850904939gh-release@^5.0.0:5091gh-release@^6.0.0:4940 version "5.0.0"5092 version "6.0.0"4941 resolved "https://registry.yarnpkg.com/gh-release/-/gh-release-5.0.0.tgz#20ee85758f3ad24548e7573b92d2bfaaa4cec9f5"5093 resolved "https://registry.yarnpkg.com/gh-release/-/gh-release-6.0.0.tgz#5e20a914f8dd2579bdebcab56a7e12f497767be6"4942 integrity sha512-nuVsQGWx3ecdJ1LcN3TIzaxygua5JWx5eCm6qReH2qXVApNQV6JZaYi/bMMGC70YCLlLElQ//pykBX8alIjYyw==5094 integrity sha512-FNITfykM63cwMCwLaf/GVkmBVM4xP2FlMD0h2OcDoDhS//3mMtYL3m2sHSMRKzxUjRHPIs7hqIatUzso+4JawQ==4943 dependencies:5095 dependencies:4944 "@octokit/rest" "^18.0.9"5096 "@octokit/rest" "^18.0.9"4945 chalk "^4.1.0"5097 chalk "^4.1.0"4949 gh-release-assets "^2.0.0"5101 gh-release-assets "^2.0.0"4950 ghauth "^5.0.0"5102 ghauth "^5.0.0"4951 github-url-to-object "^4.0.4"5103 github-url-to-object "^4.0.4"4952 inquirer "^7.3.3"5104 inquirer "^8.0.0"4953 shelljs "^0.8.4"5105 shelljs "^0.8.4"4954 update-notifier "^5.0.0"5106 update-notifier "^5.0.0"4955 yargs "^16.0.3"5107 yargs "^17.0.0"495651084957ghauth@^5.0.0:5109ghauth@^5.0.0:4958 version "5.0.1"5110 version "5.0.1"4971 dependencies:5123 dependencies:4972 is-url "^1.1.0"5124 is-url "^1.1.0"497351254974glob-parent@^3.1.0:5126glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2:4975 version "3.1.0"4976 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"4977 integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=4978 dependencies:4979 is-glob "^3.1.0"4980 path-dirname "^1.0.0"49814982glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:4983 version "5.1.2"5127 version "5.1.2"4984 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"5128 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"4985 integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==5129 integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==4993 dependencies:5137 dependencies:4994 find-index "^0.1.1"5138 find-index "^0.1.1"499551394996glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:5140glob@7.1.6:4997 version "7.1.6"5141 version "7.1.6"4998 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"5142 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"4999 integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==5143 integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==5005 once "^1.3.0"5149 once "^1.3.0"5006 path-is-absolute "^1.0.0"5150 path-is-absolute "^1.0.0"500751515152glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:5153 version "7.1.7"5154 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"5155 integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==5156 dependencies:5157 fs.realpath "^1.0.0"5158 inflight "^1.0.4"5159 inherits "2"5160 minimatch "^3.0.4"5161 once "^1.3.0"5162 path-is-absolute "^1.0.0"51635008global-dirs@^3.0.0:5164global-dirs@^3.0.0:5009 version "3.0.0"5165 version "3.0.0"5010 resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"5166 resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"5025 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"5181 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"5026 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==5182 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==502751835028globals@^12.1.0:5184globals@^13.6.0, globals@^13.9.0:5029 version "12.4.0"5185 version "13.9.0"5030 resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"5186 resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"5031 integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==5187 integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==5032 dependencies:5188 dependencies:5033 type-fest "^0.8.1"50345035globals@^13.6.0:5036 version "13.8.0"5037 resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"5038 integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==5039 dependencies:5040 type-fest "^0.20.2"5189 type-fest "^0.20.2"504151905042globby@^11.0.1:5191globby@^11.0.3:5043 version "11.0.3"5192 version "11.0.4"5044 resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"5193 resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"5045 integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==5194 integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==5046 dependencies:5195 dependencies:5047 array-union "^2.1.0"5196 array-union "^2.1.0"5048 dir-glob "^3.0.1"5197 dir-glob "^3.0.1"5123 resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"5272 resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"5124 integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==5273 integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==512552745126growly@^1.3.0:5127 version "1.3.0"5128 resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"5129 integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=51305131handlebars@^4.7.7:5275handlebars@^4.7.7:5132 version "4.7.7"5276 version "4.7.7"5133 resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"5277 resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"5247 resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"5391 resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"5248 integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=5392 integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=524953935250hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:5394hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:5251 version "1.1.7"5395 version "1.1.7"5252 resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"5396 resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"5253 integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==5397 integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==5318 resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"5462 resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"5319 integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=5463 integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=532054645465http-proxy-agent@^4.0.1:5466 version "4.0.1"5467 resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"5468 integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==5469 dependencies:5470 "@tootallnate/once" "1"5471 agent-base "6"5472 debug "4"54735321http-signature@~1.2.0:5474http-signature@~1.2.0:5322 version "1.2.0"5475 version "1.2.0"5323 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"5476 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"5327 jsprim "^1.2.2"5480 jsprim "^1.2.2"5328 sshpk "^1.7.0"5481 sshpk "^1.7.0"532954825330human-signals@^1.1.1:5483https-proxy-agent@^5.0.0:5331 version "1.1.1"5484 version "5.0.0"5332 resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"5485 resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"5333 integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==5486 integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==5487 dependencies:5488 agent-base "6"5489 debug "4"533454905491human-signals@^2.1.0:5492 version "2.1.0"5493 resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"5494 integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==54955335humanize-url@^1.0.0:5496humanize-url@^1.0.0:5336 version "1.0.1"5497 version "1.0.1"5337 resolved "https://registry.yarnpkg.com/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff"5498 resolved "https://registry.yarnpkg.com/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff"5428 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"5589 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"5429 integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==5590 integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==543055915431inquirer@^7.3.3:5592inquirer@^8.0.0:5432 version "7.3.3"5593 version "8.1.1"5433 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"5594 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.1.tgz#7c53d94c6d03011c7bb2a947f0dca3b98246c26a"5434 integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==5595 integrity sha512-hUDjc3vBkh/uk1gPfMAD/7Z188Q8cvTGl0nxwaCdwSbzFh6ZKkZh+s2ozVxbE5G9ZNRyeY0+lgbAIOUFsFf98w==5435 dependencies:5596 dependencies:5436 ansi-escapes "^4.2.1"5597 ansi-escapes "^4.2.1"5437 chalk "^4.1.0"5598 chalk "^4.1.1"5438 cli-cursor "^3.1.0"5599 cli-cursor "^3.1.0"5439 cli-width "^3.0.0"5600 cli-width "^3.0.0"5440 external-editor "^3.0.3"5601 external-editor "^3.0.3"5441 figures "^3.0.0"5602 figures "^3.0.0"5442 lodash "^4.17.19"5603 lodash "^4.17.21"5443 mute-stream "0.0.8"5604 mute-stream "0.0.8"5605 ora "^5.3.0"5444 run-async "^2.4.0"5606 run-async "^2.4.0"5445 rxjs "^6.6.0"5607 rxjs "^6.6.6"5446 string-width "^4.1.0"5608 string-width "^4.1.0"5447 strip-ansi "^6.0.0"5609 strip-ansi "^6.0.0"5448 through "^2.3.6"5610 through "^2.3.6"5498 integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=5660 integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=549956615500is-bigint@^1.0.1:5662is-bigint@^1.0.1:5501 version "1.0.1"5663 version "1.0.2"5502 resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2"5664 resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"5503 integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==5665 integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==550456665505is-binary-path@^1.0.0:5667is-binary-path@^1.0.0:5506 version "1.0.1"5668 version "1.0.1"5517 binary-extensions "^2.0.0"5679 binary-extensions "^2.0.0"551856805519is-boolean-object@^1.1.0:5681is-boolean-object@^1.1.0:5520 version "1.1.0"5682 version "1.1.1"5521 resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0"5683 resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"5522 integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==5684 integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==5523 dependencies:5685 dependencies:5524 call-bind "^1.0.0"5686 call-bind "^1.0.2"552556875526is-buffer@^1.1.5:5688is-buffer@^1.1.5:5527 version "1.1.6"5689 version "1.1.6"5540 dependencies:5702 dependencies:5541 ci-info "^2.0.0"5703 ci-info "^2.0.0"554257045543is-core-module@^2.2.0:5705is-ci@^3.0.0:5544 version "2.3.0"5706 version "3.0.0"5545 resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887"5707 resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"5546 integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==5708 integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==5547 dependencies:5709 dependencies:5710 ci-info "^3.1.1"57115712is-core-module@^2.2.0, is-core-module@^2.4.0:5713 version "2.4.0"5714 resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"5715 integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==5716 dependencies:5548 has "^1.0.3"5717 has "^1.0.3"554957185550is-data-descriptor@^0.1.4:5719is-data-descriptor@^0.1.4:5562 kind-of "^6.0.0"5731 kind-of "^6.0.0"556357325564is-date-object@^1.0.1:5733is-date-object@^1.0.1:5565 version "1.0.2"5734 version "1.0.4"5566 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"5735 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"5567 integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==5736 integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==556857375569is-descriptor@^0.1.0:5738is-descriptor@^0.1.0:5570 version "0.1.6"5739 version "0.1.6"5584 is-data-descriptor "^1.0.0"5753 is-data-descriptor "^1.0.0"5585 kind-of "^6.0.2"5754 kind-of "^6.0.2"558657555587is-docker@^2.0.0:5588 version "2.2.1"5589 resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"5590 integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==55915592is-extendable@^0.1.0, is-extendable@^0.1.1:5756is-extendable@^0.1.0, is-extendable@^0.1.1:5593 version "0.1.1"5757 version "0.1.1"5594 resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"5758 resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"5601 dependencies:5765 dependencies:5602 is-plain-object "^2.0.4"5766 is-plain-object "^2.0.4"560357675604is-extglob@^2.1.0, is-extglob@^2.1.1:5768is-extglob@^2.1.1:5605 version "2.1.1"5769 version "2.1.1"5606 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"5770 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"5607 integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=5771 integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=5634 integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==5798 integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==563557995636is-generator-function@^1.0.7:5800is-generator-function@^1.0.7:5637 version "1.0.8"5801 version "1.0.9"5638 resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"5802 resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c"5639 integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==5803 integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==564058045641is-glob@^3.1.0:5642 version "3.1.0"5643 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"5644 integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=5645 dependencies:5646 is-extglob "^2.1.0"56475648is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:5805is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:5649 version "4.0.1"5806 version "4.0.1"5650 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"5807 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"5681 integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==5838 integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==568258395683is-number-object@^1.0.4:5840is-number-object@^1.0.4:5684 version "1.0.4"5841 version "1.0.5"5685 resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"5842 resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"5686 integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==5843 integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==568758445688is-number@^3.0.0:5845is-number@^3.0.0:5689 version "3.0.0"5846 version "3.0.0"5739 resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"5896 resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"5740 integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==5897 integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==574158985742is-potential-custom-element-name@^1.0.0:5899is-potential-custom-element-name@^1.0.1:5743 version "1.0.1"5900 version "1.0.1"5744 resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"5901 resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"5745 integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==5902 integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==574659035747is-regex@^1.1.2:5904is-regex@^1.1.3:5748 version "1.1.2"5905 version "1.1.3"5749 resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251"5906 resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"5750 integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==5907 integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==5751 dependencies:5908 dependencies:5752 call-bind "^1.0.2"5909 call-bind "^1.0.2"5753 has-symbols "^1.0.1"5910 has-symbols "^1.0.2"575459115755is-regexp@^1.0.0:5912is-regexp@^1.0.0:5756 version "1.0.0"5913 version "1.0.0"5767 resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"5924 resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"5768 integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==5925 integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==576959265770is-stream@^1.0.0, is-stream@^1.1.0:5927is-stream@^1.0.0:5771 version "1.1.0"5928 version "1.1.0"5772 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"5929 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"5773 integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=5930 integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=5777 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"5934 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"5778 integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==5935 integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==577959365780is-string@^1.0.5:5937is-string@^1.0.5, is-string@^1.0.6:5781 version "1.0.5"5938 version "1.0.6"5782 resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"5939 resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"5783 integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==5940 integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==578459415785is-symbol@^1.0.2, is-symbol@^1.0.3:5942is-symbol@^1.0.2, is-symbol@^1.0.3:5786 version "1.0.3"5943 version "1.0.4"5787 resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"5944 resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"5788 integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==5945 integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==5789 dependencies:5946 dependencies:5790 has-symbols "^1.0.1"5947 has-symbols "^1.0.2"579159485792is-typed-array@^1.1.3:5949is-typed-array@^1.1.3:5793 version "1.1.5"5950 version "1.1.5"5820 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"5977 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"5821 integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==5978 integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==582259795823is-wsl@^2.2.0:5824 version "2.2.0"5825 resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"5826 integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==5827 dependencies:5828 is-docker "^2.0.0"58295830is-yarn-global@^0.3.0:5980is-yarn-global@^0.3.0:5831 version "0.3.0"5981 version "0.3.0"5832 resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"5982 resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"5833 integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==5983 integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==583459845835isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:5985isarray@1.0.0, isarray@~1.0.0:5836 version "1.0.0"5986 version "1.0.0"5837 resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"5987 resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"5838 integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=5988 integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=5908 has-to-string-tag-x "^1.2.0"6058 has-to-string-tag-x "^1.2.0"5909 is-object "^1.0.1"6059 is-object "^1.0.1"591060605911jest-changed-files@^26.6.2:6061jest-changed-files@^27.0.2:5912 version "26.6.2"6062 version "27.0.2"5913 resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0"6063 resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz#997253042b4a032950fc5f56abf3c5d1f8560801"5914 integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==6064 integrity sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==5915 dependencies:6065 dependencies:5916 "@jest/types" "^26.6.2"6066 "@jest/types" "^27.0.2"5917 execa "^4.0.0"6067 execa "^5.0.0"5918 throat "^5.0.0"6068 throat "^6.0.1"591960695920jest-cli@^26.6.3:6070jest-circus@^27.0.4:5921 version "26.6.3"6071 version "27.0.4"5922 resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a"6072 resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.4.tgz#3b261514ee3b3da33def736a6352c98ff56bb6e6"5923 integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==6073 integrity sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==5924 dependencies:6074 dependencies:5925 "@jest/core" "^26.6.3"6075 "@jest/environment" "^27.0.3"5926 "@jest/test-result" "^26.6.2"6076 "@jest/test-result" "^27.0.2"5927 "@jest/types" "^26.6.2"6077 "@jest/types" "^27.0.2"6078 "@types/node" "*"5928 chalk "^4.0.0"6079 chalk "^4.0.0"6080 co "^4.6.0"6081 dedent "^0.7.0"6082 expect "^27.0.2"6083 is-generator-fn "^2.0.0"6084 jest-each "^27.0.2"6085 jest-matcher-utils "^27.0.2"6086 jest-message-util "^27.0.2"6087 jest-runtime "^27.0.4"6088 jest-snapshot "^27.0.4"6089 jest-util "^27.0.2"6090 pretty-format "^27.0.2"6091 slash "^3.0.0"6092 stack-utils "^2.0.3"6093 throat "^6.0.1"60946095jest-cli@^27.0.4:6096 version "27.0.4"6097 resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.4.tgz#491b12c754c0d7c6873b13a66f26b3a80a852910"6098 integrity sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==6099 dependencies:6100 "@jest/core" "^27.0.4"6101 "@jest/test-result" "^27.0.2"6102 "@jest/types" "^27.0.2"6103 chalk "^4.0.0"5929 exit "^0.1.2"6104 exit "^0.1.2"5930 graceful-fs "^4.2.4"6105 graceful-fs "^4.2.4"5931 import-local "^3.0.2"6106 import-local "^3.0.2"5932 is-ci "^2.0.0"6107 jest-config "^27.0.4"5933 jest-config "^26.6.3"5934 jest-util "^26.6.2"6108 jest-util "^27.0.2"5935 jest-validate "^26.6.2"6109 jest-validate "^27.0.2"5936 prompts "^2.0.1"6110 prompts "^2.0.1"5937 yargs "^15.4.1"6111 yargs "^16.0.3"593861125939jest-config@^26.6.3:6113jest-config@^27.0.4:5940 version "26.6.3"6114 version "27.0.4"5941 resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349"6115 resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.4.tgz#c4f41378acf40ca77860fb4e213b12109d87b8cf"5942 integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==6116 integrity sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==5943 dependencies:6117 dependencies:5944 "@babel/core" "^7.1.0"6118 "@babel/core" "^7.1.0"5945 "@jest/test-sequencer" "^26.6.3"6119 "@jest/test-sequencer" "^27.0.4"5946 "@jest/types" "^26.6.2"6120 "@jest/types" "^27.0.2"5947 babel-jest "^26.6.3"6121 babel-jest "^27.0.2"5948 chalk "^4.0.0"6122 chalk "^4.0.0"5949 deepmerge "^4.2.2"6123 deepmerge "^4.2.2"5950 glob "^7.1.1"6124 glob "^7.1.1"5951 graceful-fs "^4.2.4"6125 graceful-fs "^4.2.4"5952 jest-environment-jsdom "^26.6.2"6126 is-ci "^3.0.0"6127 jest-circus "^27.0.4"6128 jest-environment-jsdom "^27.0.3"5953 jest-environment-node "^26.6.2"6129 jest-environment-node "^27.0.3"5954 jest-get-type "^26.3.0"6130 jest-get-type "^27.0.1"5955 jest-jasmine2 "^26.6.3"6131 jest-jasmine2 "^27.0.4"5956 jest-regex-util "^26.0.0"6132 jest-regex-util "^27.0.1"5957 jest-resolve "^26.6.2"6133 jest-resolve "^27.0.4"5958 jest-util "^26.6.2"6134 jest-runner "^27.0.4"6135 jest-util "^27.0.2"5959 jest-validate "^26.6.2"6136 jest-validate "^27.0.2"5960 micromatch "^4.0.2"6137 micromatch "^4.0.4"5961 pretty-format "^26.6.2"6138 pretty-format "^27.0.2"596261395963jest-diff@^26.6.2:6140jest-diff@^27.0.2:5964 version "26.6.2"6141 version "27.0.2"5965 resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"6142 resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz#f315b87cee5dc134cf42c2708ab27375cc3f5a7e"5966 integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==6143 integrity sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==5967 dependencies:6144 dependencies:5968 chalk "^4.0.0"6145 chalk "^4.0.0"5969 diff-sequences "^26.6.2"6146 diff-sequences "^27.0.1"5970 jest-get-type "^26.3.0"6147 jest-get-type "^27.0.1"5971 pretty-format "^26.6.2"6148 pretty-format "^27.0.2"597261495973jest-docblock@^26.0.0:6150jest-docblock@^27.0.1:5974 version "26.0.0"6151 version "27.0.1"5975 resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5"6152 resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz#bd9752819b49fa4fab1a50b73eb58c653b962e8b"5976 integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==6153 integrity sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==5977 dependencies:6154 dependencies:5978 detect-newline "^3.0.0"6155 detect-newline "^3.0.0"597961565980jest-each@^26.6.2:6157jest-each@^27.0.2:5981 version "26.6.2"6158 version "27.0.2"5982 resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb"6159 resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz#865ddb4367476ced752167926b656fa0dcecd8c7"5983 integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==6160 integrity sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==5984 dependencies:6161 dependencies:5985 "@jest/types" "^26.6.2"6162 "@jest/types" "^27.0.2"5986 chalk "^4.0.0"6163 chalk "^4.0.0"5987 jest-get-type "^26.3.0"6164 jest-get-type "^27.0.1"5988 jest-util "^26.6.2"6165 jest-util "^27.0.2"5989 pretty-format "^26.6.2"6166 pretty-format "^27.0.2"599061675991jest-environment-jsdom@^26.6.2:6168jest-environment-jsdom@^27.0.3:5992 version "26.6.2"6169 version "27.0.3"5993 resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e"6170 resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz#ed73e913ddc03864eb9f934b5cbabf1b63504e2e"5994 integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==6171 integrity sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==5995 dependencies:6172 dependencies:5996 "@jest/environment" "^26.6.2"6173 "@jest/environment" "^27.0.3"5997 "@jest/fake-timers" "^26.6.2"6174 "@jest/fake-timers" "^27.0.3"5998 "@jest/types" "^26.6.2"6175 "@jest/types" "^27.0.2"5999 "@types/node" "*"6176 "@types/node" "*"6000 jest-mock "^26.6.2"6177 jest-mock "^27.0.3"6001 jest-util "^26.6.2"6178 jest-util "^27.0.2"6002 jsdom "^16.4.0"6179 jsdom "^16.6.0"600361806004jest-environment-node@^26.6.2:6181jest-environment-node@^27.0.3:6005 version "26.6.2"6182 version "27.0.3"6006 resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c"6183 resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.3.tgz#b4acb3679d2552a4215732cab8b0ca7ec4398ee0"6007 integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==6184 integrity sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==6008 dependencies:6185 dependencies:6009 "@jest/environment" "^26.6.2"6186 "@jest/environment" "^27.0.3"6010 "@jest/fake-timers" "^26.6.2"6187 "@jest/fake-timers" "^27.0.3"6011 "@jest/types" "^26.6.2"6188 "@jest/types" "^27.0.2"6012 "@types/node" "*"6189 "@types/node" "*"6013 jest-mock "^26.6.2"6190 jest-mock "^27.0.3"6014 jest-util "^26.6.2"6191 jest-util "^27.0.2"601561926016jest-get-type@^26.3.0:6193jest-get-type@^27.0.1:6017 version "26.3.0"6194 version "27.0.1"6018 resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"6195 resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz#34951e2b08c8801eb28559d7eb732b04bbcf7815"6019 integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==6196 integrity sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==602061976021jest-haste-map@^26.6.2:6198jest-haste-map@^27.0.2:6022 version "26.6.2"6199 version "27.0.2"6023 resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"6200 resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.2.tgz#3f1819400c671237e48b4d4b76a80a0dbed7577f"6024 integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==6201 integrity sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==6025 dependencies:6202 dependencies:6026 "@jest/types" "^26.6.2"6203 "@jest/types" "^27.0.2"6027 "@types/graceful-fs" "^4.1.2"6204 "@types/graceful-fs" "^4.1.2"6028 "@types/node" "*"6205 "@types/node" "*"6029 anymatch "^3.0.3"6206 anymatch "^3.0.3"6030 fb-watchman "^2.0.0"6207 fb-watchman "^2.0.0"6031 graceful-fs "^4.2.4"6208 graceful-fs "^4.2.4"6032 jest-regex-util "^26.0.0"6209 jest-regex-util "^27.0.1"6033 jest-serializer "^26.6.2"6210 jest-serializer "^27.0.1"6034 jest-util "^26.6.2"6211 jest-util "^27.0.2"6035 jest-worker "^26.6.2"6212 jest-worker "^27.0.2"6036 micromatch "^4.0.2"6213 micromatch "^4.0.4"6037 sane "^4.0.3"6038 walker "^1.0.7"6214 walker "^1.0.7"6039 optionalDependencies:6215 optionalDependencies:6040 fsevents "^2.1.2"6216 fsevents "^2.3.2"604162176042jest-jasmine2@^26.6.3:6218jest-jasmine2@^27.0.4:6043 version "26.6.3"6219 version "27.0.4"6044 resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd"6220 resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz#c669519ccf4904a485338555e1e66cad36bb0670"6045 integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==6221 integrity sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==6046 dependencies:6222 dependencies:6047 "@babel/traverse" "^7.1.0"6223 "@babel/traverse" "^7.1.0"6048 "@jest/environment" "^26.6.2"6224 "@jest/environment" "^27.0.3"6049 "@jest/source-map" "^26.6.2"6225 "@jest/source-map" "^27.0.1"6050 "@jest/test-result" "^26.6.2"6226 "@jest/test-result" "^27.0.2"6051 "@jest/types" "^26.6.2"6227 "@jest/types" "^27.0.2"6052 "@types/node" "*"6228 "@types/node" "*"6053 chalk "^4.0.0"6229 chalk "^4.0.0"6054 co "^4.6.0"6230 co "^4.6.0"6055 expect "^26.6.2"6231 expect "^27.0.2"6056 is-generator-fn "^2.0.0"6232 is-generator-fn "^2.0.0"6057 jest-each "^26.6.2"6233 jest-each "^27.0.2"6058 jest-matcher-utils "^26.6.2"6234 jest-matcher-utils "^27.0.2"6059 jest-message-util "^26.6.2"6235 jest-message-util "^27.0.2"6060 jest-runtime "^26.6.3"6236 jest-runtime "^27.0.4"6061 jest-snapshot "^26.6.2"6237 jest-snapshot "^27.0.4"6062 jest-util "^26.6.2"6238 jest-util "^27.0.2"6063 pretty-format "^26.6.2"6239 pretty-format "^27.0.2"6064 throat "^5.0.0"6240 throat "^6.0.1"606562416066jest-leak-detector@^26.6.2:6242jest-leak-detector@^27.0.2:6067 version "26.6.2"6243 version "27.0.2"6068 resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af"6244 resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz#ce19aa9dbcf7a72a9d58907a970427506f624e69"6069 integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==6245 integrity sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==6070 dependencies:6246 dependencies:6071 jest-get-type "^26.3.0"6247 jest-get-type "^27.0.1"6072 pretty-format "^26.6.2"6248 pretty-format "^27.0.2"607362496074jest-matcher-utils@^26.6.2:6250jest-matcher-utils@^27.0.2:6075 version "26.6.2"6251 version "27.0.2"6076 resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a"6252 resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz#f14c060605a95a466cdc759acc546c6f4cbfc4f0"6077 integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==6253 integrity sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==6078 dependencies:6254 dependencies:6079 chalk "^4.0.0"6255 chalk "^4.0.0"6080 jest-diff "^26.6.2"6256 jest-diff "^27.0.2"6081 jest-get-type "^26.3.0"6257 jest-get-type "^27.0.1"6082 pretty-format "^26.6.2"6258 pretty-format "^27.0.2"608362596084jest-message-util@^26.6.2:6260jest-message-util@^27.0.2:6085 version "26.6.2"6261 version "27.0.2"6086 resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07"6262 resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz#181c9b67dff504d8f4ad15cba10d8b80f272048c"6087 integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==6263 integrity sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==6088 dependencies:6264 dependencies:6089 "@babel/code-frame" "^7.0.0"6265 "@babel/code-frame" "^7.12.13"6090 "@jest/types" "^26.6.2"6266 "@jest/types" "^27.0.2"6091 "@types/stack-utils" "^2.0.0"6267 "@types/stack-utils" "^2.0.0"6092 chalk "^4.0.0"6268 chalk "^4.0.0"6093 graceful-fs "^4.2.4"6269 graceful-fs "^4.2.4"6094 micromatch "^4.0.2"6270 micromatch "^4.0.4"6095 pretty-format "^26.6.2"6271 pretty-format "^27.0.2"6096 slash "^3.0.0"6272 slash "^3.0.0"6097 stack-utils "^2.0.2"6273 stack-utils "^2.0.3"609862746099jest-mock@^26.6.2:6275jest-mock@^27.0.3:6100 version "26.6.2"6276 version "27.0.3"6101 resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"6277 resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz#5591844f9192b3335c0dca38e8e45ed297d4d23d"6102 integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==6278 integrity sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==6103 dependencies:6279 dependencies:6104 "@jest/types" "^26.6.2"6280 "@jest/types" "^27.0.2"6105 "@types/node" "*"6281 "@types/node" "*"610662826107jest-pnp-resolver@^1.2.2:6283jest-pnp-resolver@^1.2.2:6108 version "1.2.2"6284 version "1.2.2"6109 resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"6285 resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"6110 integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==6286 integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==611162876112jest-regex-util@^26.0.0:6288jest-regex-util@^27.0.1:6113 version "26.0.0"6289 version "27.0.1"6114 resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"6290 resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz#69d4b1bf5b690faa3490113c47486ed85dd45b68"6115 integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==6291 integrity sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==611662926117jest-resolve-dependencies@^26.6.3:6293jest-resolve-dependencies@^27.0.4:6118 version "26.6.3"6294 version "27.0.4"6119 resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6"6295 resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz#a07a242d70d668afd3fcf7f4270755eebb1fe579"6120 integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==6296 integrity sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==6121 dependencies:6297 dependencies:6122 "@jest/types" "^26.6.2"6298 "@jest/types" "^27.0.2"6123 jest-regex-util "^26.0.0"6299 jest-regex-util "^27.0.1"6124 jest-snapshot "^26.6.2"6300 jest-snapshot "^27.0.4"612563016126jest-resolve@^26.6.2:6302jest-resolve@^27.0.4:6127 version "26.6.2"6303 version "27.0.4"6128 resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507"6304 resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.4.tgz#8a27bc3f2f00c8ea28f3bc99bbf6f468300a703d"6129 integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==6305 integrity sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==6130 dependencies:6306 dependencies:6131 "@jest/types" "^26.6.2"6307 "@jest/types" "^27.0.2"6132 chalk "^4.0.0"6308 chalk "^4.0.0"6309 escalade "^3.1.1"6133 graceful-fs "^4.2.4"6310 graceful-fs "^4.2.4"6134 jest-pnp-resolver "^1.2.2"6311 jest-pnp-resolver "^1.2.2"6135 jest-util "^26.6.2"6312 jest-util "^27.0.2"6136 read-pkg-up "^7.0.1"6313 jest-validate "^27.0.2"6137 resolve "^1.18.1"6314 resolve "^1.20.0"6138 slash "^3.0.0"6315 slash "^3.0.0"613963166140jest-runner@^26.6.3:6317jest-runner@^27.0.4:6141 version "26.6.3"6318 version "27.0.4"6142 resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159"6319 resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.4.tgz#2787170a9509b792ae129794f6944d27d5d12a4f"6143 integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==6320 integrity sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==6144 dependencies:6321 dependencies:6145 "@jest/console" "^26.6.2"6322 "@jest/console" "^27.0.2"6146 "@jest/environment" "^26.6.2"6323 "@jest/environment" "^27.0.3"6147 "@jest/test-result" "^26.6.2"6324 "@jest/test-result" "^27.0.2"6325 "@jest/transform" "^27.0.2"6148 "@jest/types" "^26.6.2"6326 "@jest/types" "^27.0.2"6149 "@types/node" "*"6327 "@types/node" "*"6150 chalk "^4.0.0"6328 chalk "^4.0.0"6151 emittery "^0.7.1"6329 emittery "^0.8.1"6152 exit "^0.1.2"6330 exit "^0.1.2"6153 graceful-fs "^4.2.4"6331 graceful-fs "^4.2.4"6154 jest-config "^26.6.3"6332 jest-docblock "^27.0.1"6333 jest-environment-jsdom "^27.0.3"6155 jest-docblock "^26.0.0"6334 jest-environment-node "^27.0.3"6156 jest-haste-map "^26.6.2"6335 jest-haste-map "^27.0.2"6157 jest-leak-detector "^26.6.2"6336 jest-leak-detector "^27.0.2"6158 jest-message-util "^26.6.2"6337 jest-message-util "^27.0.2"6159 jest-resolve "^26.6.2"6338 jest-resolve "^27.0.4"6160 jest-runtime "^26.6.3"6339 jest-runtime "^27.0.4"6161 jest-util "^26.6.2"6340 jest-util "^27.0.2"6162 jest-worker "^26.6.2"6341 jest-worker "^27.0.2"6163 source-map-support "^0.5.6"6342 source-map-support "^0.5.6"6164 throat "^5.0.0"6343 throat "^6.0.1"616563446166jest-runtime@^26.6.3:6345jest-runtime@^27.0.4:6167 version "26.6.3"6346 version "27.0.4"6168 resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b"6347 resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.4.tgz#2e4a6aa77cac32ac612dfe12768387a8aa15c2f0"6169 integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==6348 integrity sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==6170 dependencies:6349 dependencies:6171 "@jest/console" "^26.6.2"6350 "@jest/console" "^27.0.2"6172 "@jest/environment" "^26.6.2"6351 "@jest/environment" "^27.0.3"6173 "@jest/fake-timers" "^26.6.2"6352 "@jest/fake-timers" "^27.0.3"6174 "@jest/globals" "^26.6.2"6353 "@jest/globals" "^27.0.3"6175 "@jest/source-map" "^26.6.2"6354 "@jest/source-map" "^27.0.1"6176 "@jest/test-result" "^26.6.2"6355 "@jest/test-result" "^27.0.2"6177 "@jest/transform" "^26.6.2"6356 "@jest/transform" "^27.0.2"6178 "@jest/types" "^26.6.2"6357 "@jest/types" "^27.0.2"6179 "@types/yargs" "^15.0.0"6358 "@types/yargs" "^16.0.0"6180 chalk "^4.0.0"6359 chalk "^4.0.0"6181 cjs-module-lexer "^0.6.0"6360 cjs-module-lexer "^1.0.0"6182 collect-v8-coverage "^1.0.0"6361 collect-v8-coverage "^1.0.0"6183 exit "^0.1.2"6362 exit "^0.1.2"6184 glob "^7.1.3"6363 glob "^7.1.3"6185 graceful-fs "^4.2.4"6364 graceful-fs "^4.2.4"6186 jest-config "^26.6.3"6365 jest-haste-map "^27.0.2"6187 jest-haste-map "^26.6.2"6188 jest-message-util "^26.6.2"6366 jest-message-util "^27.0.2"6189 jest-mock "^26.6.2"6367 jest-mock "^27.0.3"6190 jest-regex-util "^26.0.0"6368 jest-regex-util "^27.0.1"6191 jest-resolve "^26.6.2"6369 jest-resolve "^27.0.4"6192 jest-snapshot "^26.6.2"6370 jest-snapshot "^27.0.4"6193 jest-util "^26.6.2"6371 jest-util "^27.0.2"6194 jest-validate "^26.6.2"6372 jest-validate "^27.0.2"6195 slash "^3.0.0"6373 slash "^3.0.0"6196 strip-bom "^4.0.0"6374 strip-bom "^4.0.0"6197 yargs "^15.4.1"6375 yargs "^16.0.3"619863766199jest-serializer@^26.6.2:6377jest-serializer@^27.0.1:6200 version "26.6.2"6378 version "27.0.1"6201 resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"6379 resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz#2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020"6202 integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==6380 integrity sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==6203 dependencies:6381 dependencies:6204 "@types/node" "*"6382 "@types/node" "*"6205 graceful-fs "^4.2.4"6383 graceful-fs "^4.2.4"620663846207jest-snapshot@^26.6.2:6385jest-snapshot@^27.0.4:6208 version "26.6.2"6386 version "27.0.4"6209 resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84"6387 resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.4.tgz#2b96e22ca90382b3e93bd0aae2ce4c78bf51fb5b"6210 integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==6388 integrity sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==6211 dependencies:6389 dependencies:6390 "@babel/core" "^7.7.2"6391 "@babel/generator" "^7.7.2"6392 "@babel/parser" "^7.7.2"6393 "@babel/plugin-syntax-typescript" "^7.7.2"6394 "@babel/traverse" "^7.7.2"6212 "@babel/types" "^7.0.0"6395 "@babel/types" "^7.0.0"6213 "@jest/types" "^26.6.2"6396 "@jest/transform" "^27.0.2"6397 "@jest/types" "^27.0.2"6214 "@types/babel__traverse" "^7.0.4"6398 "@types/babel__traverse" "^7.0.4"6215 "@types/prettier" "^2.0.0"6399 "@types/prettier" "^2.1.5"6400 babel-preset-current-node-syntax "^1.0.0"6216 chalk "^4.0.0"6401 chalk "^4.0.0"6217 expect "^26.6.2"6402 expect "^27.0.2"6218 graceful-fs "^4.2.4"6403 graceful-fs "^4.2.4"6219 jest-diff "^26.6.2"6404 jest-diff "^27.0.2"6220 jest-get-type "^26.3.0"6405 jest-get-type "^27.0.1"6221 jest-haste-map "^26.6.2"6406 jest-haste-map "^27.0.2"6222 jest-matcher-utils "^26.6.2"6407 jest-matcher-utils "^27.0.2"6223 jest-message-util "^26.6.2"6408 jest-message-util "^27.0.2"6224 jest-resolve "^26.6.2"6409 jest-resolve "^27.0.4"6410 jest-util "^27.0.2"6225 natural-compare "^1.4.0"6411 natural-compare "^1.4.0"6226 pretty-format "^26.6.2"6412 pretty-format "^27.0.2"6227 semver "^7.3.2"6413 semver "^7.3.2"622864146229jest-util@^26.6.2:6415jest-util@^27.0.2:6230 version "26.6.2"6416 version "27.0.2"6231 resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"6417 resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz#fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7"6232 integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==6418 integrity sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==6233 dependencies:6419 dependencies:6234 "@jest/types" "^26.6.2"6420 "@jest/types" "^27.0.2"6235 "@types/node" "*"6421 "@types/node" "*"6236 chalk "^4.0.0"6422 chalk "^4.0.0"6237 graceful-fs "^4.2.4"6423 graceful-fs "^4.2.4"6238 is-ci "^2.0.0"6424 is-ci "^3.0.0"6239 micromatch "^4.0.2"6425 picomatch "^2.2.3"624064266241jest-validate@^26.6.2:6427jest-validate@^27.0.2:6242 version "26.6.2"6428 version "27.0.2"6243 resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"6429 resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz#7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5"6244 integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==6430 integrity sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==6245 dependencies:6431 dependencies:6246 "@jest/types" "^26.6.2"6432 "@jest/types" "^27.0.2"6247 camelcase "^6.0.0"6433 camelcase "^6.2.0"6248 chalk "^4.0.0"6434 chalk "^4.0.0"6249 jest-get-type "^26.3.0"6435 jest-get-type "^27.0.1"6250 leven "^3.1.0"6436 leven "^3.1.0"6251 pretty-format "^26.6.2"6437 pretty-format "^27.0.2"625264386253jest-watcher@^26.6.2:6439jest-watcher@^27.0.2:6254 version "26.6.2"6440 version "27.0.2"6255 resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975"6441 resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz#dab5f9443e2d7f52597186480731a8c6335c5deb"6256 integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==6442 integrity sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==6257 dependencies:6443 dependencies:6258 "@jest/test-result" "^26.6.2"6444 "@jest/test-result" "^27.0.2"6259 "@jest/types" "^26.6.2"6445 "@jest/types" "^27.0.2"6260 "@types/node" "*"6446 "@types/node" "*"6261 ansi-escapes "^4.2.1"6447 ansi-escapes "^4.2.1"6262 chalk "^4.0.0"6448 chalk "^4.0.0"6263 jest-util "^26.6.2"6449 jest-util "^27.0.2"6264 string-length "^4.0.1"6450 string-length "^4.0.1"626564516266jest-worker@^26.6.2:6452jest-worker@^27.0.2:6267 version "26.6.2"6453 version "27.0.2"6268 resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"6454 resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05"6269 integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==6455 integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==6270 dependencies:6456 dependencies:6271 "@types/node" "*"6457 "@types/node" "*"6272 merge-stream "^2.0.0"6458 merge-stream "^2.0.0"6273 supports-color "^7.0.0"6459 supports-color "^8.0.0"627464606275jest@^26.6.3:6461jest@^27.0.4:6276 version "26.6.3"6462 version "27.0.4"6277 resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef"6463 resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.4.tgz#91d4d564b36bcf93b98dac1ab19f07089e670f53"6278 integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==6464 integrity sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==6279 dependencies:6465 dependencies:6280 "@jest/core" "^26.6.3"6466 "@jest/core" "^27.0.4"6281 import-local "^3.0.2"6467 import-local "^3.0.2"6282 jest-cli "^26.6.3"6468 jest-cli "^27.0.4"628364696284js-sha3@0.5.7, js-sha3@^0.5.7:6470js-sha3@0.5.7, js-sha3@^0.5.7:6285 version "0.5.7"6471 version "0.5.7"6316 resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"6502 resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"6317 integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=6503 integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=631865046319jsdom@^16.4.0:6505jsdom@^16.6.0:6320 version "16.5.3"6506 version "16.6.0"6321 resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.3.tgz#13a755b3950eb938b4482c407238ddf16f0d2136"6507 resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac"6322 integrity sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==6508 integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==6323 dependencies:6509 dependencies:6324 abab "^2.0.5"6510 abab "^2.0.5"6325 acorn "^8.1.0"6511 acorn "^8.2.4"6326 acorn-globals "^6.0.0"6512 acorn-globals "^6.0.0"6327 cssom "^0.4.4"6513 cssom "^0.4.4"6328 cssstyle "^2.3.0"6514 cssstyle "^2.3.0"6329 data-urls "^2.0.0"6515 data-urls "^2.0.0"6330 decimal.js "^10.2.1"6516 decimal.js "^10.2.1"6331 domexception "^2.0.1"6517 domexception "^2.0.1"6332 escodegen "^2.0.0"6518 escodegen "^2.0.0"6519 form-data "^3.0.0"6333 html-encoding-sniffer "^2.0.1"6520 html-encoding-sniffer "^2.0.1"6334 is-potential-custom-element-name "^1.0.0"6521 http-proxy-agent "^4.0.1"6522 https-proxy-agent "^5.0.0"6523 is-potential-custom-element-name "^1.0.1"6335 nwsapi "^2.2.0"6524 nwsapi "^2.2.0"6336 parse5 "6.0.1"6525 parse5 "6.0.1"6337 request "^2.88.2"6338 request-promise-native "^1.0.9"6339 saxes "^5.0.1"6526 saxes "^5.0.1"6340 symbol-tree "^3.2.4"6527 symbol-tree "^3.2.4"6341 tough-cookie "^4.0.0"6528 tough-cookie "^4.0.0"6345 whatwg-encoding "^1.0.5"6532 whatwg-encoding "^1.0.5"6346 whatwg-mimetype "^2.3.0"6533 whatwg-mimetype "^2.3.0"6347 whatwg-url "^8.5.0"6534 whatwg-url "^8.5.0"6348 ws "^7.4.4"6535 ws "^7.4.5"6349 xml-name-validator "^3.0.0"6536 xml-name-validator "^3.0.0"635065376351jsesc@^2.5.1:6538jsesc@^2.5.1:6363 resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"6550 resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"6364 integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=6551 integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=636565526553json-parse-better-errors@^1.0.1:6554 version "1.0.2"6555 resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"6556 integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==65576366json-parse-even-better-errors@^2.3.0:6558json-parse-even-better-errors@^2.3.0:6367 version "2.3.1"6559 version "2.3.1"6368 resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"6560 resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"6533 resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"6725 resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"6534 integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=6726 integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=653567276536load-json-file@^2.0.0:6728load-json-file@^4.0.0:6537 version "2.0.0"6729 version "4.0.0"6538 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"6730 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"6539 integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=6731 integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=6540 dependencies:6732 dependencies:6541 graceful-fs "^4.1.2"6733 graceful-fs "^4.1.2"6542 parse-json "^2.2.0"6734 parse-json "^4.0.0"6543 pify "^2.0.0"6735 pify "^3.0.0"6544 strip-bom "^3.0.0"6736 strip-bom "^3.0.0"654567376546load-json-file@^6.2.0:6738load-json-file@^6.2.0:6593 resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"6785 resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"6594 integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=6786 integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=659567876596lodash.flatten@^4.4.0:6788lodash.merge@^4.6.2:6597 version "4.4.0"6789 version "4.6.2"6598 resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"6790 resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"6599 integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=6791 integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==660067926601lodash.truncate@^4.4.2:6793lodash.truncate@^4.4.2:6602 version "4.4.2"6794 version "4.4.2"6603 resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"6795 resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"6604 integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=6796 integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=660567976606lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0:6798lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.7.0:6607 version "4.17.21"6799 version "4.17.21"6608 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"6800 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"6609 integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==6801 integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==6794 snapdragon "^0.8.1"6986 snapdragon "^0.8.1"6795 to-regex "^3.0.2"6987 to-regex "^3.0.2"679669886797micromatch@^4.0.2:6989micromatch@^4.0.2, micromatch@^4.0.4:6798 version "4.0.4"6990 version "4.0.4"6799 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"6991 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"6800 integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==6992 integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==6810 bn.js "^4.0.0"7002 bn.js "^4.0.0"6811 brorand "^1.0.1"7003 brorand "^1.0.1"681270046813mime-db@1.47.0:7005mime-db@1.48.0:6814 version "1.47.0"7006 version "1.48.0"6815 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"7007 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"6816 integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==7008 integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==681770096818mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24:7010mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24:6819 version "2.1.30"7011 version "2.1.31"6820 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"7012 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"6821 integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==7013 integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==6822 dependencies:7014 dependencies:6823 mime-db "1.47.0"7015 mime-db "1.48.0"682470166825mime@1.6.0:7017mime@1.6.0:6826 version "1.6.0"7018 version "1.6.0"6871 dependencies:7063 dependencies:6872 brace-expansion "^1.1.7"7064 brace-expansion "^1.1.7"687370656874minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:7066minimist@^1.2.0, minimist@^1.2.5:6875 version "1.2.5"7067 version "1.2.5"6876 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"7068 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"6877 integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==7069 integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==6919 minimist "^1.2.5"7111 minimist "^1.2.5"692071126921mocha@^8.3.2:7113mocha@^8.3.2:6922 version "8.3.2"7114 version "8.4.0"6923 resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.3.2.tgz#53406f195fa86fbdebe71f8b1c6fb23221d69fcc"7115 resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff"6924 integrity sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==7116 integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==6925 dependencies:7117 dependencies:6926 "@ungap/promise-all-settled" "1.1.2"7118 "@ungap/promise-all-settled" "1.1.2"6927 ansi-colors "4.1.1"7119 ansi-colors "4.1.1"6988 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"7180 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"6989 integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==7181 integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==699071826991ms@2.1.3:7183ms@2.1.3, ms@^2.1.1:6992 version "2.1.3"7184 version "2.1.3"6993 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"7185 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"6994 integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==7186 integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==7048 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"7240 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"7049 integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==7241 integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==705072427051nanoid@^3.1.22:7243nanoid@^3.1.23:7052 version "3.1.22"7244 version "3.1.23"7053 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844"7245 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"7054 integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==7246 integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==705572477056nanomatch@^1.2.9:7248nanomatch@^1.2.9:7057 version "1.2.13"7249 version "1.2.13"7095 resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"7287 resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"7096 integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=7288 integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=709772897098nice-try@^1.0.4:7099 version "1.0.5"7100 resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"7101 integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==71027103node-addon-api@^2.0.0:7290node-addon-api@^2.0.0:7104 version "2.0.2"7291 version "2.0.2"7105 resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"7292 resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"7125 resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"7312 resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"7126 integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=7313 integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=712773147128node-notifier@^8.0.0:7129 version "8.0.2"7130 resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5"7131 integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==7132 dependencies:7133 growly "^1.3.0"7134 is-wsl "^2.2.0"7135 semver "^7.3.2"7136 shellwords "^0.1.1"7137 uuid "^8.3.0"7138 which "^2.0.2"71397140node-releases@^1.1.71:7315node-releases@^1.1.71:7141 version "1.1.71"7316 version "1.1.73"7142 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"7317 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"7143 integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==7318 integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==714473197145node-source-walk@^4.0.0, node-source-walk@^4.2.0:7320node-source-walk@^4.0.0, node-source-walk@^4.2.0:7146 version "4.2.0"7321 version "4.2.0"7149 dependencies:7324 dependencies:7150 "@babel/parser" "^7.0.0"7325 "@babel/parser" "^7.0.0"715173267152normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:7327normalize-package-data@^2.3.2:7153 version "2.5.0"7328 version "2.5.0"7154 resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"7329 resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"7155 integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==7330 integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==7182 sort-keys "^1.0.0"7357 sort-keys "^1.0.0"718373587184normalize-url@^4.1.0:7359normalize-url@^4.1.0:7185 version "4.5.0"7360 version "4.5.1"7186 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"7361 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"7187 integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==7362 integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==718873637189npm-run-path@^2.0.0:7364npm-run-path@^4.0.1:7190 version "2.0.2"7191 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"7192 integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=7193 dependencies:7194 path-key "^2.0.0"71957196npm-run-path@^4.0.0:7197 version "4.0.1"7365 version "4.0.1"7198 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"7366 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"7199 integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==7367 integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==7237 define-property "^0.2.5"7405 define-property "^0.2.5"7238 kind-of "^3.0.3"7406 kind-of "^3.0.3"723974077240object-inspect@^1.9.0:7408object-inspect@^1.10.3, object-inspect@^1.9.0:7241 version "1.10.2"7409 version "1.10.3"7242 resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30"7410 resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"7243 integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==7411 integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==724474127245object-keys@^1.0.12, object-keys@^1.1.1:7413object-keys@^1.0.12, object-keys@^1.1.1:7246 version "1.1.1"7414 version "1.1.1"7264 has-symbols "^1.0.1"7432 has-symbols "^1.0.1"7265 object-keys "^1.1.1"7433 object-keys "^1.1.1"726674347267object.entries@^1.1.3:7435object.entries@^1.1.4:7268 version "1.1.3"7436 version "1.1.4"7269 resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6"7437 resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd"7270 integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==7438 integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==7271 dependencies:7439 dependencies:7272 call-bind "^1.0.0"7440 call-bind "^1.0.2"7273 define-properties "^1.1.3"7441 define-properties "^1.1.3"7274 es-abstract "^1.18.0-next.1"7442 es-abstract "^1.18.2"7275 has "^1.0.3"727674437277object.fromentries@^2.0.4:7444object.fromentries@^2.0.4:7278 version "2.0.4"7445 version "2.0.4"7291 dependencies:7458 dependencies:7292 isobject "^3.0.1"7459 isobject "^3.0.1"729374607294object.values@^1.1.1, object.values@^1.1.3:7461object.values@^1.1.3, object.values@^1.1.4:7295 version "1.1.3"7462 version "1.1.4"7296 resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee"7463 resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"7297 integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==7464 integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==7298 dependencies:7465 dependencies:7299 call-bind "^1.0.2"7466 call-bind "^1.0.2"7300 define-properties "^1.1.3"7467 define-properties "^1.1.3"7301 es-abstract "^1.18.0-next.2"7468 es-abstract "^1.18.2"7302 has "^1.0.3"730374697304oboe@2.1.5:7470oboe@2.1.5:7305 version "2.1.5"7471 version "2.1.5"7322 dependencies:7488 dependencies:7323 wrappy "1"7489 wrappy "1"732474907325onetime@^5.1.0:7491onetime@^5.1.0, onetime@^5.1.2:7326 version "5.1.2"7492 version "5.1.2"7327 resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"7493 resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"7328 integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==7494 integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==7367 strip-ansi "^6.0.0"7533 strip-ansi "^6.0.0"7368 wcwidth "^1.0.1"7534 wcwidth "^1.0.1"736975357370ora@^5.1.0:7536ora@^5.1.0, ora@^5.3.0:7371 version "5.4.0"7537 version "5.4.1"7372 resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.0.tgz#42eda4855835b9cd14d33864c97a3c95a3f56bf4"7538 resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"7373 integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==7539 integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==7374 dependencies:7540 dependencies:7375 bl "^4.1.0"7541 bl "^4.1.0"7376 chalk "^4.1.0"7542 chalk "^4.1.0"7506 resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"7672 resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"7507 integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==7673 integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==750876747509parse-json@^2.2.0:7675parse-json@^4.0.0:7510 version "2.2.0"7676 version "4.0.0"7511 resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"7677 resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"7512 integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=7678 integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=7513 dependencies:7679 dependencies:7514 error-ex "^1.2.0"7680 error-ex "^1.3.1"7681 json-parse-better-errors "^1.0.1"751576827516parse-json@^5.0.0:7683parse-json@^5.0.0:7517 version "5.2.0"7684 version "5.2.0"7543 resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"7710 resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"7544 integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=7711 integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=754577127546path-dirname@^1.0.0:7547 version "1.0.2"7548 resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"7549 integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=75507551path-exists@^3.0.0:7713path-exists@^3.0.0:7552 version "3.0.0"7714 version "3.0.0"7553 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"7715 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"7563 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"7725 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"7564 integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=7726 integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=756577277566path-key@^2.0.0, path-key@^2.0.1:7567 version "2.0.1"7568 resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"7569 integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=75707571path-key@^3.0.0, path-key@^3.1.0:7728path-key@^3.0.0, path-key@^3.1.0:7572 version "3.1.1"7729 version "3.1.1"7573 resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"7730 resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"7574 integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==7731 integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==757577327576path-parse@^1.0.6:7733path-parse@^1.0.6:7577 version "1.0.6"7734 version "1.0.7"7578 resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"7735 resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"7579 integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==7736 integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==758077377581path-to-regexp@0.1.7:7738path-to-regexp@0.1.7:7582 version "0.1.7"7739 version "0.1.7"7583 resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"7740 resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"7584 integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=7741 integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=758577427586path-type@^2.0.0:7743path-type@^3.0.0:7587 version "2.0.0"7744 version "3.0.0"7588 resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"7745 resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"7589 integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=7746 integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==7590 dependencies:7747 dependencies:7591 pify "^2.0.0"7748 pify "^3.0.0"759277497593path-type@^4.0.0:7750path-type@^4.0.0:7594 version "4.0.0"7751 version "4.0.0"7617 integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=7774 integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=761877757619picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:7776picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:7620 version "2.2.3"7777 version "2.3.0"7621 resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"7778 resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"7622 integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==7779 integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==762377807624pify@^2.0.0:7781pify@^2.0.0:7625 version "2.3.0"7782 version "2.3.0"7626 resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"7783 resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"7627 integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=7784 integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=762877857786pify@^3.0.0:7787 version "3.0.0"7788 resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"7789 integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=77907629pify@^4.0.1:7791pify@^4.0.1:7630 version "4.0.1"7792 version "4.0.1"7631 resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"7793 resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"7671 dependencies:7833 dependencies:7672 find-up "^4.0.0"7834 find-up "^4.0.0"767378357836pkg-up@^2.0.0:7837 version "2.0.0"7838 resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"7839 integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=7840 dependencies:7841 find-up "^2.1.0"78427674pkg-up@^3.1.0:7843pkg-up@^3.1.0:7675 version "3.1.0"7844 version "3.1.0"7676 resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"7845 resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"7689 integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=7858 integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=769078597691postcss-selector-parser@^6.0.2:7860postcss-selector-parser@^6.0.2:7692 version "6.0.5"7861 version "6.0.6"7693 resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4"7862 resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"7694 integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==7863 integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==7695 dependencies:7864 dependencies:7696 cssesc "^3.0.0"7865 cssesc "^3.0.0"7697 util-deprecate "^1.0.2"7866 util-deprecate "^1.0.2"7705 indexes-of "^1.0.1"7874 indexes-of "^1.0.1"7706 uniq "^1.0.1"7875 uniq "^1.0.1"770778767708postcss@^7.0.14:7877postcss@^7.0.36:7709 version "7.0.35"7878 version "7.0.36"7710 resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"7879 resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb"7711 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==7880 integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==7712 dependencies:7881 dependencies:7713 chalk "^2.4.2"7882 chalk "^2.4.2"7714 source-map "^0.6.1"7883 source-map "^0.6.1"7715 supports-color "^6.1.0"7884 supports-color "^6.1.0"771678857717postcss@^8.1.7:7886postcss@^8.1.7:7718 version "8.2.13"7887 version "8.3.5"7719 resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.13.tgz#dbe043e26e3c068e45113b1ed6375d2d37e2129f"7888 resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709"7720 integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==7889 integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==7721 dependencies:7890 dependencies:7722 colorette "^1.2.2"7891 colorette "^1.2.2"7723 nanoid "^3.1.22"7892 nanoid "^3.1.23"7724 source-map "^0.6.1"7893 source-map-js "^0.6.2"772578947726precinct@^7.0.0:7895precinct@^7.0.0:7727 version "7.1.0"7896 version "7.1.0"7742 module-definition "^3.3.1"7911 module-definition "^3.3.1"7743 node-source-walk "^4.2.0"7912 node-source-walk "^4.2.0"774479137914precinct@^8.0.0:7915 version "8.1.0"7916 resolved "https://registry.yarnpkg.com/precinct/-/precinct-8.1.0.tgz#6b8f2389ba2ca61c466731390b0d7e25da3fd996"7917 integrity sha512-oeZBR9IdER42Ef6Rz11z1oOUqicsI5J1Qffj6tYghKLhxN2UnHy7uE1axxNr0VZRevPK2HWkROk36uXrbJwHFA==7918 dependencies:7919 commander "^2.20.3"7920 debug "^4.3.1"7921 detective-amd "^3.0.1"7922 detective-cjs "^3.1.1"7923 detective-es6 "^2.2.0"7924 detective-less "^1.0.2"7925 detective-postcss "^4.0.0"7926 detective-sass "^3.0.1"7927 detective-scss "^2.0.1"7928 detective-stylus "^1.0.0"7929 detective-typescript "^7.0.0"7930 module-definition "^3.3.1"7931 node-source-walk "^4.2.0"79327745prelude-ls@^1.2.1:7933prelude-ls@^1.2.1:7746 version "1.2.1"7934 version "1.2.1"7747 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"7935 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"7767 resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"7955 resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"7768 integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==7956 integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==776979577770prettier@^2.2.1:7958prettier@^2.3.0:7771 version "2.2.1"7959 version "2.3.1"7772 resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"7960 resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"7773 integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==7961 integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==777479627775pretty-format@^26.6.2:7963pretty-format@^27.0.2:7776 version "26.6.2"7964 version "27.0.2"7777 resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"7965 resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz#9283ff8c4f581b186b2d4da461617143dca478a4"7778 integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==7966 integrity sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==7779 dependencies:7967 dependencies:7780 "@jest/types" "^26.6.2"7968 "@jest/types" "^27.0.2"7781 ansi-regex "^5.0.0"7969 ansi-regex "^5.0.0"7782 ansi-styles "^4.0.0"7970 ansi-styles "^5.0.0"7783 react-is "^17.0.1"7971 react-is "^17.0.1"778479727785pretty-ms@^7.0.0:7973pretty-ms@^7.0.0:7830 react-is "^16.8.1"8018 react-is "^16.8.1"783180197832proxy-addr@~2.0.5:8020proxy-addr@~2.0.5:7833 version "2.0.6"8021 version "2.0.7"7834 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"8022 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"7835 integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==8023 integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==7836 dependencies:8024 dependencies:7837 forwarded "~0.1.2"8025 forwarded "0.2.0"7838 ipaddr.js "1.9.1"8026 ipaddr.js "1.9.1"783980277840pseudomap@^1.0.2:8028pseudomap@^1.0.2:7975 resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"8163 resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"7976 integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==8164 integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==797781657978read-pkg-up@^2.0.0:8166read-pkg-up@^3.0.0:7979 version "2.0.0"8167 version "3.0.0"7980 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"8168 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"7981 integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=8169 integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=7982 dependencies:8170 dependencies:7983 find-up "^2.0.0"8171 find-up "^2.0.0"7984 read-pkg "^2.0.0"8172 read-pkg "^3.0.0"798581737986read-pkg-up@^7.0.1:8174read-pkg@^3.0.0:7987 version "7.0.1"8175 version "3.0.0"7988 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"8176 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"7989 integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==8177 integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=7990 dependencies:8178 dependencies:7991 find-up "^4.1.0"8179 load-json-file "^4.0.0"7992 read-pkg "^5.2.0"7993 type-fest "^0.8.1"79947995read-pkg@^2.0.0:7996 version "2.0.0"7997 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"7998 integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=7999 dependencies:8000 load-json-file "^2.0.0"8001 normalize-package-data "^2.3.2"8180 normalize-package-data "^2.3.2"8002 path-type "^2.0.0"8181 path-type "^3.0.0"800381828004read-pkg@^5.2.0:8005 version "5.2.0"8006 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"8007 integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==8008 dependencies:8009 "@types/normalize-package-data" "^2.4.0"8010 normalize-package-data "^2.5.0"8011 parse-json "^5.0.0"8012 type-fest "^0.6.0"80138014read@^1.0.7:8183read@^1.0.7:8015 version "1.0.7"8184 version "1.0.7"8016 resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"8185 resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"8056 dependencies:8225 dependencies:8057 picomatch "^2.2.1"8226 picomatch "^2.2.1"805882278228readdirp@~3.6.0:8229 version "3.6.0"8230 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"8231 integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==8232 dependencies:8233 picomatch "^2.2.1"82348059rechoir@^0.6.2:8235rechoir@^0.6.2:8060 version "0.6.2"8236 version "0.6.2"8061 resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"8237 resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"8104 define-properties "^1.1.3"8280 define-properties "^1.1.3"810582818106regexpp@^3.0.0, regexpp@^3.1.0:8282regexpp@^3.0.0, regexpp@^3.1.0:8107 version "3.1.0"8283 version "3.2.0"8108 resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"8284 resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"8109 integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==8285 integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==811082868111regexpu-core@^4.7.1:8287regexpu-core@^4.7.1:8112 version "4.7.1"8288 version "4.7.1"8166 resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"8342 resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"8167 integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=8343 integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=816883448169request-promise-core@1.1.4:8170 version "1.1.4"8171 resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"8172 integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==8173 dependencies:8174 lodash "^4.17.19"81758176request-promise-native@^1.0.9:8177 version "1.0.9"8178 resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"8179 integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==8180 dependencies:8181 request-promise-core "1.1.4"8182 stealthy-require "^1.1.1"8183 tough-cookie "^2.3.3"81848185request@^2.79.0, request@^2.88.2:8345request@^2.79.0, request@^2.88.2:8186 version "2.88.2"8346 version "2.88.2"8187 resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"8347 resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"8218 resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"8378 resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"8219 integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==8379 integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==822083808221require-main-filename@^2.0.0:8222 version "2.0.0"8223 resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"8224 integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==82258226requirejs-config-file@^4.0.0:8381requirejs-config-file@^4.0.0:8227 version "4.0.0"8382 version "4.0.0"8228 resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc"8383 resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc"8268 resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"8423 resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"8269 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=8424 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=827084258271resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.3.2:8426resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2:8272 version "1.20.0"8427 version "1.20.0"8273 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"8428 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"8274 integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==8429 integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==8331 dependencies:8486 dependencies:8332 bn.js "^4.11.1"8487 bn.js "^4.11.1"833384888334rsvp@^4.8.4:8335 version "4.8.5"8336 resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"8337 integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==83388339run-async@^2.4.0:8489run-async@^2.4.0:8340 version "2.4.1"8490 version "2.4.1"8341 resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"8491 resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"8348 dependencies:8498 dependencies:8349 queue-microtask "^1.2.2"8499 queue-microtask "^1.2.2"835085008351rxjs@^6.6.0, rxjs@^6.6.7:8501rxjs@^6.6.6, rxjs@^6.6.7:8352 version "6.6.7"8502 version "6.6.7"8353 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"8503 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"8354 integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==8504 integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==8377 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"8527 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"8378 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==8528 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==837985298380sane@^4.0.3:8381 version "4.1.0"8382 resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"8383 integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==8384 dependencies:8385 "@cnakazawa/watch" "^1.0.3"8386 anymatch "^2.0.0"8387 capture-exit "^2.0.0"8388 exec-sh "^0.3.2"8389 execa "^1.0.0"8390 fb-watchman "^2.0.0"8391 micromatch "^3.1.4"8392 minimist "^1.1.1"8393 walker "~1.0.5"83948395sass-lookup@^3.0.0:8530sass-lookup@^3.0.0:8396 version "3.0.0"8531 version "3.0.0"8397 resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-3.0.0.tgz#3b395fa40569738ce857bc258e04df2617c48cac"8532 resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-3.0.0.tgz#3b395fa40569738ce857bc258e04df2617c48cac"8432 dependencies:8567 dependencies:8433 semver "^6.3.0"8568 semver "^6.3.0"843485698435"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:8570"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0:8436 version "5.7.1"8571 version "5.7.1"8437 resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"8572 resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"8438 integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==8573 integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==8447 resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"8582 resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"8448 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==8583 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==844985848450semver@^7.2.1, semver@^7.3.2, semver@^7.3.4:8585semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:8451 version "7.3.5"8586 version "7.3.5"8452 resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"8587 resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"8453 integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==8588 integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==8501 request "^2.79.0"8636 request "^2.79.0"8502 xhr "^2.3.3"8637 xhr "^2.3.3"850386388504set-blocking@^2.0.0:8505 version "2.0.0"8506 resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"8507 integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=85088509set-value@^2.0.0, set-value@^2.0.1:8639set-value@^2.0.0, set-value@^2.0.1:8510 version "2.0.1"8640 version "2.0.1"8511 resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"8641 resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"8541 dependencies:8671 dependencies:8542 kind-of "^6.0.2"8672 kind-of "^6.0.2"854386738544shebang-command@^1.2.0:8545 version "1.2.0"8546 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"8547 integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=8548 dependencies:8549 shebang-regex "^1.0.0"85508551shebang-command@^2.0.0:8674shebang-command@^2.0.0:8552 version "2.0.0"8675 version "2.0.0"8553 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"8676 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"8554 integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==8677 integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==8555 dependencies:8678 dependencies:8556 shebang-regex "^3.0.0"8679 shebang-regex "^3.0.0"855786808558shebang-regex@^1.0.0:8559 version "1.0.0"8560 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"8561 integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=85628563shebang-regex@^3.0.0:8681shebang-regex@^3.0.0:8564 version "3.0.0"8682 version "3.0.0"8565 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"8683 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"8574 interpret "^1.0.0"8692 interpret "^1.0.0"8575 rechoir "^0.6.2"8693 rechoir "^0.6.2"857686948577shellwords@^0.1.1:8578 version "0.1.1"8579 resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"8580 integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==85818582side-channel@^1.0.4:8695side-channel@^1.0.4:8583 version "1.0.4"8696 version "1.0.4"8584 resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"8697 resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"8588 get-intrinsic "^1.0.2"8701 get-intrinsic "^1.0.2"8589 object-inspect "^1.9.0"8702 object-inspect "^1.9.0"859087038591signal-exit@^3.0.0, signal-exit@^3.0.2:8704signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:8592 version "3.0.3"8705 version "3.0.3"8593 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"8706 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"8594 integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==8707 integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==8684 dependencies:8797 dependencies:8685 is-plain-obj "^2.0.0"8798 is-plain-obj "^2.0.0"868687998800source-map-js@^0.6.2:8801 version "0.6.2"8802 resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"8803 integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==88048687source-map-resolve@^0.5.0:8805source-map-resolve@^0.5.0:8688 version "0.5.3"8806 version "0.5.3"8689 resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"8807 resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"8745 spdx-license-ids "^3.0.0"8863 spdx-license-ids "^3.0.0"874688648747spdx-license-ids@^3.0.0:8865spdx-license-ids@^3.0.0:8748 version "3.0.7"8866 version "3.0.9"8749 resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"8867 resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"8750 integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==8868 integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==875188698752speedometer@~1.0.0:8870speedometer@~1.0.0:8753 version "1.0.0"8871 version "1.0.0"8781 safer-buffer "^2.0.2"8899 safer-buffer "^2.0.2"8782 tweetnacl "~0.14.0"8900 tweetnacl "~0.14.0"878389018784stack-utils@^2.0.2:8902stack-utils@^2.0.3:8785 version "2.0.3"8903 version "2.0.3"8786 resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277"8904 resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277"8787 integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==8905 integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==8801 resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"8919 resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"8802 integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=8920 integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=880389218804stealthy-require@^1.1.1:8805 version "1.1.1"8806 resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"8807 integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=88088809stream-shift@^1.0.0:8922stream-shift@^1.0.0:8810 version "1.0.1"8923 version "1.0.1"8811 resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"8924 resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"8859 is-fullwidth-code-point "^3.0.0"8972 is-fullwidth-code-point "^3.0.0"8860 strip-ansi "^6.0.0"8973 strip-ansi "^6.0.0"886189748862string.prototype.matchall@^4.0.4:8975string.prototype.matchall@^4.0.5:8863 version "4.0.4"8976 version "4.0.5"8864 resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29"8977 resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da"8865 integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==8978 integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==8866 dependencies:8979 dependencies:8867 call-bind "^1.0.2"8980 call-bind "^1.0.2"8868 define-properties "^1.1.3"8981 define-properties "^1.1.3"8869 es-abstract "^1.18.0-next.2"8982 es-abstract "^1.18.2"8983 get-intrinsic "^1.1.1"8870 has-symbols "^1.0.1"8984 has-symbols "^1.0.2"8871 internal-slot "^1.0.3"8985 internal-slot "^1.0.3"8872 regexp.prototype.flags "^1.3.1"8986 regexp.prototype.flags "^1.3.1"8873 side-channel "^1.0.4"8987 side-channel "^1.0.4"8949 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"9063 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"8950 integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==9064 integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==895190658952strip-eof@^1.0.0:8953 version "1.0.0"8954 resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"8955 integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=89568957strip-final-newline@^2.0.0:9066strip-final-newline@^2.0.0:8958 version "2.0.0"9067 version "2.0.0"8959 resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"9068 resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"8996 commander "^2.8.1"9105 commander "^2.8.1"8997 debug "^4.1.0"9106 debug "^4.1.0"899891078999supports-color@8.1.1:9108supports-color@8.1.1, supports-color@^8.0.0:9000 version "8.1.1"9109 version "8.1.1"9001 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"9110 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"9002 integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==9111 integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==9054 resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"9163 resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"9055 integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==9164 integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==905691659057table@^6.0.4:9166table@^6.0.9:9058 version "6.6.0"9167 version "6.7.1"9059 resolved "https://registry.yarnpkg.com/table/-/table-6.6.0.tgz#905654b79df98d9e9a973de1dd58682532c40e8e"9168 resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"9060 integrity sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==9169 integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==9061 dependencies:9170 dependencies:9062 ajv "^8.0.1"9171 ajv "^8.0.1"9063 lodash.clonedeep "^4.5.0"9172 lodash.clonedeep "^4.5.0"9064 lodash.flatten "^4.4.0"9065 lodash.truncate "^4.4.2"9173 lodash.truncate "^4.4.2"9066 slice-ansi "^4.0.0"9174 slice-ansi "^4.0.0"9067 string-width "^4.2.0"9175 string-width "^4.2.0"9112 resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"9220 resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"9113 integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=9221 integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=911492229115throat@^5.0.0:9223throat@^6.0.1:9116 version "5.0.0"9224 version "6.0.1"9117 resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"9225 resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"9118 integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==9226 integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==911992279120through2@~2.0.3:9228through2@~2.0.3:9121 version "2.0.5"9229 version "2.0.5"9194 resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"9302 resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"9195 integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==9303 integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==919693049197tough-cookie@^2.3.3, tough-cookie@~2.5.0:9198 version "2.5.0"9199 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"9200 integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==9201 dependencies:9202 psl "^1.1.28"9203 punycode "^2.1.1"92049205tough-cookie@^4.0.0:9305tough-cookie@^4.0.0:9206 version "4.0.0"9306 version "4.0.0"9207 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"9307 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"9211 punycode "^2.1.1"9311 punycode "^2.1.1"9212 universalify "^0.1.2"9312 universalify "^0.1.2"921393139214tr46@^2.0.2:9314tough-cookie@~2.5.0:9215 version "2.0.2"9315 version "2.5.0"9216 resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"9316 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"9217 integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==9317 integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==9218 dependencies:9318 dependencies:9319 psl "^1.1.28"9219 punycode "^2.1.1"9320 punycode "^2.1.1"922093219322tr46@^2.1.0:9323 version "2.1.0"9324 resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"9325 integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==9326 dependencies:9327 punycode "^2.1.1"93289221trim-repeated@^1.0.0:9329trim-repeated@^1.0.0:9222 version "1.0.0"9330 version "1.0.0"9223 resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"9331 resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"9278 dependencies:9386 dependencies:9279 tslib "^1.8.1"9387 tslib "^1.8.1"928093889281tsutils@^3.17.1:9389tsutils@^3.21.0:9282 version "3.21.0"9390 version "3.21.0"9283 resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"9391 resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"9284 integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==9392 integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==9336 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"9444 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"9337 integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==9445 integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==933894469339type-fest@^0.8.1:9340 version "0.8.1"9341 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"9342 integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==93439344type-is@~1.6.17, type-is@~1.6.18:9447type-is@~1.6.17, type-is@~1.6.18:9345 version "1.6.18"9448 version "1.6.18"9346 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"9449 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"9367 is-typedarray "^1.0.0"9470 is-typedarray "^1.0.0"936894719369typescript@^3.9.5, typescript@^3.9.7:9472typescript@^3.9.5, typescript@^3.9.7:9370 version "3.9.9"9473 version "3.9.10"9371 resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674"9474 resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"9372 integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==9475 integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==937394769374typescript@^4.2.4:9477typescript@^4.2.4, typescript@^4.3.2:9375 version "4.2.4"9478 version "4.3.4"9376 resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"9479 resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"9377 integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==9480 integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==937894819379uglify-js@^3.1.4:9482uglify-js@^3.1.4:9380 version "3.13.4"9483 version "3.13.9"9381 resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574"9484 resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b"9382 integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==9485 integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==938394869384ultron@~1.1.0:9487ultron@~1.1.0:9385 version "1.1.1"9488 version "1.1.1"9386 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"9489 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"9387 integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==9490 integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==938894919389unbox-primitive@^1.0.0:9492unbox-primitive@^1.0.1:9390 version "1.0.1"9493 version "1.0.1"9391 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"9494 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"9392 integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==9495 integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==9396 has-symbols "^1.0.2"9499 has-symbols "^1.0.2"9397 which-boxed-primitive "^1.0.2"9500 which-boxed-primitive "^1.0.2"939895019399underscore@1.9.1:9502underscore@1.12.1:9400 version "1.9.1"9503 version "1.12.1"9401 resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"9504 resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e"9402 integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==9505 integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==940395069404unicode-canonical-property-names-ecmascript@^1.0.4:9507unicode-canonical-property-names-ecmascript@^1.0.4:9405 version "1.0.4"9508 version "1.0.4"9541 integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==9644 integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==954296459543utf-8-validate@^5.0.2:9646utf-8-validate@^5.0.2:9544 version "5.0.4"9647 version "5.0.5"9545 resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.4.tgz#72a1735983ddf7a05a43a9c6b67c5ce1c910f9b8"9648 resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1"9546 integrity sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==9649 integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==9547 dependencies:9650 dependencies:9548 node-gyp-build "^4.2.0"9651 node-gyp-build "^4.2.0"954996529563 integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=9666 integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=956496679565util@^0.12.0:9668util@^0.12.0:9566 version "0.12.3"9669 version "0.12.4"9567 resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888"9670 resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253"9568 integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==9671 integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==9569 dependencies:9672 dependencies:9570 inherits "^2.0.3"9673 inherits "^2.0.3"9571 is-arguments "^1.0.4"9674 is-arguments "^1.0.4"9589 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"9692 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"9590 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==9693 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==959196949592uuid@^8.3.0:9593 version "8.3.2"9594 resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"9595 integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==95969597v8-compile-cache@^2.0.3:9695v8-compile-cache@^2.0.3:9598 version "2.3.0"9696 version "2.3.0"9599 resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"9697 resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"9600 integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==9698 integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==960196999602v8-to-istanbul@^7.0.0:9700v8-to-istanbul@^7.0.0:9603 version "7.1.1"9701 version "7.1.2"9604 resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz#04bfd1026ba4577de5472df4f5e89af49de5edda"9702 resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1"9605 integrity sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==9703 integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==9606 dependencies:9704 dependencies:9607 "@types/istanbul-lib-coverage" "^2.0.1"9705 "@types/istanbul-lib-coverage" "^2.0.1"9608 convert-source-map "^1.6.0"9706 convert-source-map "^1.6.0"9659 resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39"9757 resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39"9660 integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==9758 integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==966197599662walker@^1.0.7, walker@~1.0.5:9760walker@^1.0.7:9663 version "1.0.7"9761 version "1.0.7"9664 resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"9762 resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"9665 integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=9763 integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=9673 dependencies:9771 dependencies:9674 defaults "^1.0.3"9772 defaults "^1.0.3"967597739676web3-bzz@1.3.5:9774web3-bzz@1.3.6:9677 version "1.3.5"9775 version "1.3.6"9678 resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.5.tgz#f181a1319d9f867f4183b147e7aebd21aecff4a0"9776 resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde"9679 integrity sha512-XiEUAbB1uKm/agqfwBsCW8fbw+sma85TfwuDpdcy591vinVk0S9TfWgLxro6v1KJ6nSELySIbKGbAJbh2GSyxw==9777 integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw==9680 dependencies:9778 dependencies:9681 "@types/node" "^12.12.6"9779 "@types/node" "^12.12.6"9682 got "9.6.0"9780 got "9.6.0"9683 swarm-js "^0.1.40"9781 swarm-js "^0.1.40"9684 underscore "1.9.1"9782 underscore "1.12.1"968597839686web3-core-helpers@1.3.5:9784web3-core-helpers@1.3.6:9687 version "1.3.5"9785 version "1.3.6"9688 resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.5.tgz#9f0ff7ed40befb9f691986e66fd94c828c7b1b13"9786 resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74"9689 integrity sha512-HYh3ix5FjysgT0jyzD8s/X5ym0b4BGU7I2QtuBiydMnE0mQEWy7GcT9XKpTySA8FTOHHIAQYvQS07DN/ky3UzA==9787 integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA==9690 dependencies:9788 dependencies:9691 underscore "1.9.1"9789 underscore "1.12.1"9692 web3-eth-iban "1.3.5"9790 web3-eth-iban "1.3.6"9693 web3-utils "1.3.5"9791 web3-utils "1.3.6"969497929695web3-core-method@1.3.5:9793web3-core-method@1.3.6:9696 version "1.3.5"9794 version "1.3.6"9697 resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.5.tgz#995fe12f3b364469e5208a88d72736327b231faa"9795 resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae"9698 integrity sha512-hCbmgQ+At6OTuaNGAdjXMsCr4eUCmp9yGKSuaB5HdkNVDpqFso4HHjVxcjNrTyJp3OZnyjKBzQzK1ZWLpLl84Q==9796 integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg==9699 dependencies:9797 dependencies:9700 "@ethersproject/transactions" "^5.0.0-beta.135"9798 "@ethersproject/transactions" "^5.0.0-beta.135"9701 underscore "1.9.1"9799 underscore "1.12.1"9702 web3-core-helpers "1.3.5"9800 web3-core-helpers "1.3.6"9703 web3-core-promievent "1.3.5"9801 web3-core-promievent "1.3.6"9704 web3-core-subscriptions "1.3.5"9802 web3-core-subscriptions "1.3.6"9705 web3-utils "1.3.5"9803 web3-utils "1.3.6"970698049707web3-core-promievent@1.3.5:9805web3-core-promievent@1.3.6:9708 version "1.3.5"9806 version "1.3.6"9709 resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.5.tgz#33c34811cc4e2987c56e5192f9a014368c42ca39"9807 resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9"9710 integrity sha512-K0j8x3ZJr0eAyNvyUCxOUsSTd4hco0/9nxxlyOuijcsa6YV8l9NL6eqhniWbSyxCJT8ka5Mb7yAiUZe69EDLBQ==9808 integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw==9711 dependencies:9809 dependencies:9712 eventemitter3 "4.0.4"9810 eventemitter3 "4.0.4"971398119714web3-core-requestmanager@1.3.5:9812web3-core-requestmanager@1.3.6:9715 version "1.3.5"9813 version "1.3.6"9716 resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.5.tgz#c452ea85fcffdf5b82b84c250707b638790d0e75"9814 resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a"9717 integrity sha512-9l294U3Ga8qmvv8E37BqjQREfMs+kFnkU3PY28g9DZGYzKvl3V1dgDYqxyrOBdCFhc7rNSpHdgC4PrVHjouspg==9815 integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA==9718 dependencies:9816 dependencies:9719 underscore "1.9.1"9817 underscore "1.12.1"9720 util "^0.12.0"9818 util "^0.12.0"9721 web3-core-helpers "1.3.5"9819 web3-core-helpers "1.3.6"9722 web3-providers-http "1.3.5"9820 web3-providers-http "1.3.6"9723 web3-providers-ipc "1.3.5"9821 web3-providers-ipc "1.3.6"9724 web3-providers-ws "1.3.5"9822 web3-providers-ws "1.3.6"972598239726web3-core-subscriptions@1.3.5:9824web3-core-subscriptions@1.3.6:9727 version "1.3.5"9825 version "1.3.6"9728 resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.5.tgz#7c4dc9d559e344d852de2cf01bd0cc13c94023cb"9826 resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415"9729 integrity sha512-6mtXdaEB1V1zKLqYBq7RF2W75AK5ZJNGpW6QYC7Zvbku7zq1ZlgaUkJo88JKMWJ7etfaHaYqQ/7VveHk5sQynA==9827 integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g==9730 dependencies:9828 dependencies:9731 eventemitter3 "4.0.4"9829 eventemitter3 "4.0.4"9732 underscore "1.9.1"9830 underscore "1.12.1"9733 web3-core-helpers "1.3.5"9831 web3-core-helpers "1.3.6"973498329735web3-core@1.3.5:9833web3-core@1.3.6:9736 version "1.3.5"9834 version "1.3.6"9737 resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.5.tgz#1e9335e6c4549dac09aaa07157242ebd6d097226"9835 resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504"9738 integrity sha512-VQjTvnGTqJwDwjKEHSApea3RmgtFGLDSJ6bqrOyHROYNyTyKYjFQ/drG9zs3rjDkND9mgh8foI1ty37Qua3QCQ==9836 integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q==9739 dependencies:9837 dependencies:9740 "@types/bn.js" "^4.11.5"9838 "@types/bn.js" "^4.11.5"9741 "@types/node" "^12.12.6"9839 "@types/node" "^12.12.6"9742 bignumber.js "^9.0.0"9840 bignumber.js "^9.0.0"9743 web3-core-helpers "1.3.5"9841 web3-core-helpers "1.3.6"9744 web3-core-method "1.3.5"9842 web3-core-method "1.3.6"9745 web3-core-requestmanager "1.3.5"9843 web3-core-requestmanager "1.3.6"9746 web3-utils "1.3.5"9844 web3-utils "1.3.6"974798459748web3-eth-abi@1.3.5:9846web3-eth-abi@1.3.6:9749 version "1.3.5"9847 version "1.3.6"9750 resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.5.tgz#eeffab0a4b318c47b8777de90983ca45614f8173"9848 resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9"9751 integrity sha512-bkbG2v/mOW5DH6rF/SEgqunusjYoEi2IBw+fkmD3rzWDaEY7+/i1xY94AeO257d06QMgld75GtV/N+aEs7A6vQ==9849 integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ==9752 dependencies:9850 dependencies:9753 "@ethersproject/abi" "5.0.7"9851 "@ethersproject/abi" "5.0.7"9754 underscore "1.9.1"9852 underscore "1.12.1"9755 web3-utils "1.3.5"9853 web3-utils "1.3.6"975698549757web3-eth-accounts@1.3.5:9855web3-eth-accounts@1.3.6:9758 version "1.3.5"9856 version "1.3.6"9759 resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.5.tgz#c23ee748759a6a06d6485a9322b106baa944dcdd"9857 resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474"9760 integrity sha512-r3WOR21rgm6Cd6OFnifr3Tizdm5K+g2TsSOPySwX4FrgLrYDL6ck4zr5VXUPz+llpSExb/JztpE8pqEHr3U2NA==9858 integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA==9761 dependencies:9859 dependencies:9762 crypto-browserify "3.12.0"9860 crypto-browserify "3.12.0"9763 eth-lib "0.2.8"9861 eth-lib "0.2.8"9764 ethereumjs-common "^1.3.2"9862 ethereumjs-common "^1.3.2"9765 ethereumjs-tx "^2.1.1"9863 ethereumjs-tx "^2.1.1"9766 scrypt-js "^3.0.1"9864 scrypt-js "^3.0.1"9767 underscore "1.9.1"9865 underscore "1.12.1"9768 uuid "3.3.2"9866 uuid "3.3.2"9769 web3-core "1.3.5"9867 web3-core "1.3.6"9770 web3-core-helpers "1.3.5"9868 web3-core-helpers "1.3.6"9771 web3-core-method "1.3.5"9869 web3-core-method "1.3.6"9772 web3-utils "1.3.5"9870 web3-utils "1.3.6"977398719774web3-eth-contract@1.3.5:9872web3-eth-contract@1.3.6:9775 version "1.3.5"9873 version "1.3.6"9776 resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.5.tgz#b41ecf8612b379c4fb1c614e950135717aa8f919"9874 resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866"9777 integrity sha512-WfGVeQquN3D7Qm+KEIN9EI7yrm/fL2V9Y4+YhDWiKA/ns1pX1LYcEWojTOnBXCnPF3tcvoKKL+KBxXg1iKm38A==9875 integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA==9778 dependencies:9876 dependencies:9779 "@types/bn.js" "^4.11.5"9877 "@types/bn.js" "^4.11.5"9780 underscore "1.9.1"9878 underscore "1.12.1"9781 web3-core "1.3.5"9879 web3-core "1.3.6"9782 web3-core-helpers "1.3.5"9880 web3-core-helpers "1.3.6"9783 web3-core-method "1.3.5"9881 web3-core-method "1.3.6"9784 web3-core-promievent "1.3.5"9882 web3-core-promievent "1.3.6"9785 web3-core-subscriptions "1.3.5"9883 web3-core-subscriptions "1.3.6"9786 web3-eth-abi "1.3.5"9884 web3-eth-abi "1.3.6"9787 web3-utils "1.3.5"9885 web3-utils "1.3.6"978898869789web3-eth-ens@1.3.5:9887web3-eth-ens@1.3.6:9790 version "1.3.5"9888 version "1.3.6"9791 resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.5.tgz#5a28d23eb402fb1f6964da60ea60641e4d24d366"9889 resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175"9792 integrity sha512-5bkpFTXV18CvaVP8kCbLZZm2r1TWUv9AsXH+80yz8bTZulUGvXsBMRfK6e5nfEr2Yv59xlIXCFoalmmySI9EJw==9890 integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA==9793 dependencies:9891 dependencies:9794 content-hash "^2.5.2"9892 content-hash "^2.5.2"9795 eth-ens-namehash "2.0.8"9893 eth-ens-namehash "2.0.8"9796 underscore "1.9.1"9894 underscore "1.12.1"9797 web3-core "1.3.5"9895 web3-core "1.3.6"9798 web3-core-helpers "1.3.5"9896 web3-core-helpers "1.3.6"9799 web3-core-promievent "1.3.5"9897 web3-core-promievent "1.3.6"9800 web3-eth-abi "1.3.5"9898 web3-eth-abi "1.3.6"9801 web3-eth-contract "1.3.5"9899 web3-eth-contract "1.3.6"9802 web3-utils "1.3.5"9900 web3-utils "1.3.6"980399019804web3-eth-iban@1.3.5:9902web3-eth-iban@1.3.6:9805 version "1.3.5"9903 version "1.3.6"9806 resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.5.tgz#dff1e37864e23a3387016ec4db96cdc290a6fbd6"9904 resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0"9807 integrity sha512-x+BI/d2Vt0J1cKK8eFd4W0f1TDjgEOYCwiViTb28lLE+tqrgyPqWDA+l6UlKYLF/yMFX3Dym4ofcCOtgcn4q4g==9905 integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ==9808 dependencies:9906 dependencies:9809 bn.js "^4.11.9"9907 bn.js "^4.11.9"9810 web3-utils "1.3.5"9908 web3-utils "1.3.6"981199099812web3-eth-personal@1.3.5:9910web3-eth-personal@1.3.6:9813 version "1.3.5"9911 version "1.3.6"9814 resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.5.tgz#bc5d5b900bc4824139af2ef01eaf8e9855c644ba"9912 resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0"9815 integrity sha512-xELQHNZ8p3VoO1582ghCaq+Bx7pSkOOalc6/ACOCGtHDMelqgVejrmSIZGScYl+k0HzngmQAzURZWQocaoGM1g==9913 integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ==9816 dependencies:9914 dependencies:9817 "@types/node" "^12.12.6"9915 "@types/node" "^12.12.6"9818 web3-core "1.3.5"9916 web3-core "1.3.6"9819 web3-core-helpers "1.3.5"9917 web3-core-helpers "1.3.6"9820 web3-core-method "1.3.5"9918 web3-core-method "1.3.6"9821 web3-net "1.3.5"9919 web3-net "1.3.6"9822 web3-utils "1.3.5"9920 web3-utils "1.3.6"982399219824web3-eth@1.3.5:9922web3-eth@1.3.6:9825 version "1.3.5"9923 version "1.3.6"9826 resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.5.tgz#2a3d0db870ef7921942a5d798ba0569175cc4de1"9924 resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c"9827 integrity sha512-5qqDPMMD+D0xRqOV2ePU2G7/uQmhn0FgCEhFzKDMHrssDQJyQLW/VgfA0NLn64lWnuUrGnQStGvNxrWf7MgsfA==9925 integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA==9828 dependencies:9926 dependencies:9829 underscore "1.9.1"9927 underscore "1.12.1"9830 web3-core "1.3.5"9928 web3-core "1.3.6"9831 web3-core-helpers "1.3.5"9929 web3-core-helpers "1.3.6"9832 web3-core-method "1.3.5"9930 web3-core-method "1.3.6"9833 web3-core-subscriptions "1.3.5"9931 web3-core-subscriptions "1.3.6"9834 web3-eth-abi "1.3.5"9932 web3-eth-abi "1.3.6"9835 web3-eth-accounts "1.3.5"9933 web3-eth-accounts "1.3.6"9836 web3-eth-contract "1.3.5"9934 web3-eth-contract "1.3.6"9837 web3-eth-ens "1.3.5"9935 web3-eth-ens "1.3.6"9838 web3-eth-iban "1.3.5"9936 web3-eth-iban "1.3.6"9839 web3-eth-personal "1.3.5"9937 web3-eth-personal "1.3.6"9840 web3-net "1.3.5"9938 web3-net "1.3.6"9841 web3-utils "1.3.5"9939 web3-utils "1.3.6"984299409843web3-net@1.3.5:9941web3-net@1.3.6:9844 version "1.3.5"9942 version "1.3.6"9845 resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.5.tgz#06e3465a9fbbeec1240160e2fd66ddb07b6af944"9943 resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41"9846 integrity sha512-usbFbuUpKK8s7jPLGoUzi/WpNnefGFPTj948aJv8BZ04UQA4L/XS5NNkkhk358zNMmhGfEFW8wrWy+0Oy0njtA==9944 integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw==9847 dependencies:9945 dependencies:9848 web3-core "1.3.5"9946 web3-core "1.3.6"9849 web3-core-method "1.3.5"9947 web3-core-method "1.3.6"9850 web3-utils "1.3.5"9948 web3-utils "1.3.6"985199499852web3-providers-http@1.3.5:9950web3-providers-http@1.3.6:9853 version "1.3.5"9951 version "1.3.6"9854 resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.5.tgz#cdada6fb342e08fd75aea249fceb6eee467beffc"9952 resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2"9855 integrity sha512-ZQOmceFjcajEZdiuqciXjijwIYWNmEJ1oxMtbrwB2eGxHRCMXEH2xGRUZuhOFNF88yQC/VXVi14yvYg5ZlFJlA==9953 integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q==9856 dependencies:9954 dependencies:9857 web3-core-helpers "1.3.5"9955 web3-core-helpers "1.3.6"9858 xhr2-cookies "1.1.0"9956 xhr2-cookies "1.1.0"985999579860web3-providers-ipc@1.3.5:9958web3-providers-ipc@1.3.6:9861 version "1.3.5"9959 version "1.3.6"9862 resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.5.tgz#2f5536abfe03f3824e00dedc614d8f46db72b57f"9960 resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a"9863 integrity sha512-cbZOeb/sALiHjzMolJjIyHla/J5wdL2JKUtRO66Nh/uLALBCpU8JUgzNvpAdJ1ae3+A33+EdFStdzuDYHKtQew==9961 integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA==9864 dependencies:9962 dependencies:9865 oboe "2.1.5"9963 oboe "2.1.5"9866 underscore "1.9.1"9964 underscore "1.12.1"9867 web3-core-helpers "1.3.5"9965 web3-core-helpers "1.3.6"986899669869web3-providers-ws@1.3.5:9967web3-providers-ws@1.3.6:9870 version "1.3.5"9968 version "1.3.6"9871 resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.5.tgz#7f841ec79358d90c4a803d1291157b5ffb15aeb7"9969 resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac"9872 integrity sha512-zeZ4LMvKhYaJBDCqA//Bzgp4r/T0tNq5U/xvN0axA4YflzF7yqlsbzGwCkcZYDbrUaK3Ltl2uOmvwjbWALOZ1A==9970 integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ==9873 dependencies:9971 dependencies:9874 eventemitter3 "4.0.4"9972 eventemitter3 "4.0.4"9875 underscore "1.9.1"9973 underscore "1.12.1"9876 web3-core-helpers "1.3.5"9974 web3-core-helpers "1.3.6"9877 websocket "^1.0.32"9975 websocket "^1.0.32"987899769879web3-shh@1.3.5:9977web3-shh@1.3.6:9880 version "1.3.5"9978 version "1.3.6"9881 resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.5.tgz#af0b8ebca90a3652dbbb90d351395f36ca91f40b"9979 resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20"9882 integrity sha512-aRwzCduXvuGVslLL/Y15VcOHa70Qr2kxZI7UwOzQVhaaOdxuRRvo3AK/cmyln1Tsd54/n93Yk8I3qg5I2+6alw==9980 integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw==9883 dependencies:9981 dependencies:9884 web3-core "1.3.5"9982 web3-core "1.3.6"9885 web3-core-method "1.3.5"9983 web3-core-method "1.3.6"9886 web3-core-subscriptions "1.3.5"9984 web3-core-subscriptions "1.3.6"9887 web3-net "1.3.5"9985 web3-net "1.3.6"988899869889web3-utils@1.3.5:9987web3-utils@1.3.6:9890 version "1.3.5"9988 version "1.3.6"9891 resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.5.tgz#14ee2ff1a7a226867698d6eaffd21aa97aed422e"9989 resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10"9892 integrity sha512-5apMRm8ElYjI/92GHqijmaLC+s+d5lgjpjHft+rJSs/dsnX8I8tQreqev0dmU+wzU+2EEe4Sx9a/OwGWHhQv3A==9990 integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==9893 dependencies:9991 dependencies:9894 bn.js "^4.11.9"9992 bn.js "^4.11.9"9895 eth-lib "0.2.8"9993 eth-lib "0.2.8"9896 ethereum-bloom-filters "^1.0.6"9994 ethereum-bloom-filters "^1.0.6"9897 ethjs-unit "0.1.6"9995 ethjs-unit "0.1.6"9898 number-to-bn "1.7.0"9996 number-to-bn "1.7.0"9899 randombytes "^2.1.0"9997 randombytes "^2.1.0"9900 underscore "1.9.1"9998 underscore "1.12.1"9901 utf8 "3.0.0"9999 utf8 "3.0.0"9902100009903web3@^1.3.5:10001web3@^1.3.5:9904 version "1.3.5"10002 version "1.3.6"9905 resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.5.tgz#ef4c3a2241fdd74f2f7794e839f30bc6f9814e46"10003 resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc"9906 integrity sha512-UyQW/MT5EIGBrXPCh/FDIaD7RtJTn5/rJUNw2FOglp0qoXnCQHNKvntiR1ylztk05fYxIF6UgsC76IrazlKJjw==10004 integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA==9907 dependencies:10005 dependencies:9908 web3-bzz "1.3.5"10006 web3-bzz "1.3.6"9909 web3-core "1.3.5"10007 web3-core "1.3.6"9910 web3-eth "1.3.5"10008 web3-eth "1.3.6"9911 web3-eth-personal "1.3.5"10009 web3-eth-personal "1.3.6"9912 web3-net "1.3.5"10010 web3-net "1.3.6"9913 web3-shh "1.3.5"10011 web3-shh "1.3.6"9914 web3-utils "1.3.5"10012 web3-utils "1.3.6"9915100139916webidl-conversions@^5.0.0:10014webidl-conversions@^5.0.0:9917 version "5.0.0"10015 version "5.0.0"9948 integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==10046 integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==9949100479950whatwg-url@^8.0.0, whatwg-url@^8.5.0:10048whatwg-url@^8.0.0, whatwg-url@^8.5.0:9951 version "8.5.0"10049 version "8.6.0"9952 resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3"10050 resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c"9953 integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==10051 integrity sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw==9954 dependencies:10052 dependencies:9955 lodash "^4.7.0"10053 lodash "^4.7.0"9956 tr46 "^2.0.2"10054 tr46 "^2.1.0"9957 webidl-conversions "^6.1.0"10055 webidl-conversions "^6.1.0"9958100569959which-boxed-primitive@^1.0.2:10057which-boxed-primitive@^1.0.2:9967 is-string "^1.0.5"10065 is-string "^1.0.5"9968 is-symbol "^1.0.3"10066 is-symbol "^1.0.3"9969100679970which-module@^2.0.0:9971 version "2.0.0"9972 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"9973 integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=99749975which-typed-array@^1.1.2:10068which-typed-array@^1.1.2:9976 version "1.1.4"10069 version "1.1.4"9977 resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff"10070 resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff"9985 has-symbols "^1.0.1"10078 has-symbols "^1.0.1"9986 is-typed-array "^1.1.3"10079 is-typed-array "^1.1.3"9987100809988which@2.0.2, which@^2.0.1, which@^2.0.2:10081which@2.0.2, which@^2.0.1:9989 version "2.0.2"10082 version "2.0.2"9990 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"10083 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"9991 integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==10084 integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==9992 dependencies:10085 dependencies:9993 isexe "^2.0.0"10086 isexe "^2.0.0"9994100879995which@^1.2.9:9996 version "1.3.1"9997 resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"9998 integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==9999 dependencies:10000 isexe "^2.0.0"1000110002wide-align@1.1.3, wide-align@^1.1.0:10088wide-align@1.1.3, wide-align@^1.1.0:10003 version "1.1.3"10089 version "1.1.3"10004 resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"10090 resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"10028 resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"10114 resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"10029 integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==10115 integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==100301011610031wrap-ansi@^6.2.0:10032 version "6.2.0"10033 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"10034 integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==10035 dependencies:10036 ansi-styles "^4.0.0"10037 string-width "^4.1.0"10038 strip-ansi "^6.0.0"1003910040wrap-ansi@^7.0.0:10117wrap-ansi@^7.0.0:10041 version "7.0.0"10118 version "7.0.0"10042 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"10119 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"10082 safe-buffer "~5.1.0"10159 safe-buffer "~5.1.0"10083 ultron "~1.1.0"10160 ultron "~1.1.0"100841016110085ws@^7.4.4:10162ws@^7.4.5:10086 version "7.4.5"10163 version "7.5.0"10087 resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"10164 resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691"10088 integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==10165 integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==100891016610090xdg-basedir@^4.0.0:10167xdg-basedir@^4.0.0:10091 version "4.0.0"10168 version "4.0.0"10151 dependencies:10228 dependencies:10152 cuint "^0.2.2"10229 cuint "^0.2.2"101531023010154y18n@^4.0.0:10155 version "4.0.3"10156 resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"10157 integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==1015810159y18n@^5.0.5:10231y18n@^5.0.5:10160 version "5.0.8"10232 version "5.0.8"10161 resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"10233 resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"10186 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"10258 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"10187 integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==10259 integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==101881026010189yargs-parser@^18.1.2:10190 version "18.1.3"10191 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"10192 integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==10193 dependencies:10194 camelcase "^5.0.0"10195 decamelize "^1.2.0"1019610197yargs-parser@^20.2.2:10261yargs-parser@^20.2.2:10198 version "20.2.7"10262 version "20.2.7"10199 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"10263 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"10209 flat "^5.0.2"10273 flat "^5.0.2"10210 is-plain-obj "^2.1.0"10274 is-plain-obj "^2.1.0"102111027510212yargs@16.2.0, yargs@^16.0.3, yargs@^16.2.0:10276yargs@16.2.0, yargs@^16.0.3:10213 version "16.2.0"10277 version "16.2.0"10214 resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"10278 resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"10215 integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==10279 integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==10222 y18n "^5.0.5"10286 y18n "^5.0.5"10223 yargs-parser "^20.2.2"10287 yargs-parser "^20.2.2"102241028810225yargs@^15.4.1:10289yargs@^17.0.0, yargs@^17.0.1:10226 version "15.4.1"10290 version "17.0.1"10227 resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"10291 resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"10228 integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==10292 integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==10229 dependencies:10293 dependencies:10230 cliui "^6.0.0"10294 cliui "^7.0.2"10231 decamelize "^1.2.0"10232 find-up "^4.1.0"10295 escalade "^3.1.1"10233 get-caller-file "^2.0.1"10296 get-caller-file "^2.0.5"10234 require-directory "^2.1.1"10297 require-directory "^2.1.1"10235 require-main-filename "^2.0.0"10236 set-blocking "^2.0.0"10237 string-width "^4.2.0"10298 string-width "^4.2.0"10238 which-module "^2.0.0"10299 y18n "^5.0.5"10239 y18n "^4.0.0"10240 yargs-parser "^18.1.2"10300 yargs-parser "^20.2.2"102411030110242yn@3.1.1:10302yn@3.1.1:10243 version "3.1.1"10303 version "3.1.1"