difftreelog
Merge branch 'develop' into feature/evm-collection-calls
in: master
10 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,10 +18,19 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a"
dependencies = [
- "gimli",
+ "gimli 0.24.0",
]
[[package]]
+name = "addr2line"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd"
+dependencies = [
+ "gimli 0.25.0",
+]
+
+[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -57,7 +66,7 @@
"aes",
"block-cipher",
"ghash",
- "subtle 2.4.0",
+ "subtle 2.4.1",
]
[[package]]
@@ -88,6 +97,17 @@
checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
[[package]]
+name = "ahash"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
+dependencies = [
+ "getrandom 0.2.3",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -122,18 +142,9 @@
[[package]]
name = "anyhow"
-version = "1.0.41"
+version = "1.0.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61"
-
-[[package]]
-name = "approx"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
-dependencies = [
- "num-traits",
-]
+checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486"
[[package]]
name = "approx"
@@ -236,12 +247,11 @@
[[package]]
name = "async-io"
-version = "1.4.1"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bbfd5cf2794b1e908ea8457e6c45f8f8f1f6ec5f74617bf4662623f47503c3b"
+checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
dependencies = [
"concurrent-queue",
- "fastrand",
"futures-lite",
"libc",
"log",
@@ -312,7 +322,7 @@
"memchr",
"num_cpus",
"once_cell",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"pin-utils",
"slab",
"wasm-bindgen-futures",
@@ -359,7 +369,7 @@
"futures-sink",
"futures-util",
"memchr",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
]
[[package]]
@@ -372,7 +382,7 @@
"futures-sink",
"futures-util",
"memchr",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
]
[[package]]
@@ -409,16 +419,16 @@
[[package]]
name = "backtrace"
-version = "0.3.60"
+version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282"
+checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01"
dependencies = [
- "addr2line",
+ "addr2line 0.16.0",
"cc",
"cfg-if 1.0.0",
"libc",
"miniz_oxide",
- "object 0.25.3",
+ "object 0.26.0",
"rustc-demangle",
]
@@ -448,9 +458,9 @@
[[package]]
name = "beef"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409"
+checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736"
dependencies = [
"serde",
]
@@ -461,7 +471,7 @@
source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555"
dependencies = [
"beefy-primitives",
- "futures 0.3.15",
+ "futures 0.3.16",
"hex",
"log",
"parity-scale-codec",
@@ -490,7 +500,7 @@
dependencies = [
"beefy-gadget",
"beefy-primitives",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
@@ -528,9 +538,9 @@
[[package]]
name = "bindgen"
-version = "0.57.0"
+version = "0.59.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
+checksum = "453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375"
dependencies = [
"bitflags",
"cexpr",
@@ -553,12 +563,24 @@
[[package]]
name = "bitvec"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
+dependencies = [
+ "funty",
+ "radium 0.5.3",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "bitvec"
version = "0.20.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848"
dependencies = [
"funty",
- "radium",
+ "radium 0.6.2",
"tap",
"wyz",
]
@@ -760,9 +782,9 @@
[[package]]
name = "camino"
-version = "1.0.5"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2b"
+checksum = "d4648c6d00a709aa069a236adcaae4f605a6241c72bf5bee79331a4b625921a9"
dependencies = [
"serde",
]
@@ -805,18 +827,18 @@
[[package]]
name = "cc"
-version = "1.0.68"
+version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787"
+checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
dependencies = [
"jobserver",
]
[[package]]
name = "cexpr"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+checksum = "db507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89"
dependencies = [
"nom",
]
@@ -994,19 +1016,18 @@
[[package]]
name = "cpp_demangle"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44919ecaf6f99e8e737bc239408931c9a01e9a6c74814fee8242dd2506b65390"
+checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a"
dependencies = [
"cfg-if 1.0.0",
- "glob",
]
[[package]]
name = "cpufeatures"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8"
+checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
dependencies = [
"libc",
]
@@ -1036,7 +1057,7 @@
"cranelift-codegen-meta",
"cranelift-codegen-shared",
"cranelift-entity",
- "gimli",
+ "gimli 0.24.0",
"log",
"regalloc",
"serde",
@@ -1235,7 +1256,7 @@
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
dependencies = [
"generic-array 0.14.4",
- "subtle 2.4.0",
+ "subtle 2.4.1",
]
[[package]]
@@ -1286,7 +1307,7 @@
"cumulus-client-consensus-common",
"cumulus-client-network",
"cumulus-primitives-core",
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"parking_lot 0.10.2",
"polkadot-node-primitives",
@@ -1310,7 +1331,7 @@
"async-trait",
"cumulus-client-consensus-common",
"cumulus-primitives-core",
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"parking_lot 0.10.2",
"polkadot-client",
@@ -1339,7 +1360,7 @@
dependencies = [
"async-trait",
"dyn-clone",
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"polkadot-primitives",
"polkadot-runtime",
@@ -1362,7 +1383,7 @@
source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.8#ed6ba5dfb2c112c29505e856e8971da3420ce6d0"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"parity-scale-codec",
"parking_lot 0.10.2",
@@ -1386,7 +1407,7 @@
source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.8#ed6ba5dfb2c112c29505e856e8971da3420ce6d0"
dependencies = [
"cumulus-primitives-core",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"parity-scale-codec",
"polkadot-node-primitives",
@@ -1623,14 +1644,14 @@
[[package]]
name = "curve25519-dalek"
-version = "2.1.2"
+version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8"
+checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216"
dependencies = [
"byteorder",
"digest 0.8.1",
"rand_core 0.5.1",
- "subtle 2.4.0",
+ "subtle 2.4.1",
"zeroize",
]
@@ -1643,7 +1664,7 @@
"byteorder",
"digest 0.9.0",
"rand_core 0.5.1",
- "subtle 2.4.0",
+ "subtle 2.4.1",
"zeroize",
]
@@ -1721,13 +1742,14 @@
[[package]]
name = "derive_more"
-version = "0.99.14"
+version = "0.99.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320"
+checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
+ "rustc_version 0.3.3",
"syn",
]
@@ -1835,9 +1857,9 @@
[[package]]
name = "ed25519"
-version = "1.1.1"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d0860415b12243916284c67a9be413e044ee6668247b99ba26d94b2bc06c8f6"
+checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc"
dependencies = [
"signature",
]
@@ -1939,9 +1961,9 @@
[[package]]
name = "erased-serde"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5b36e6f2295f393f44894c6031f67df4d185b984cd54d08f768ce678007efcd"
+checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa"
dependencies = [
"serde",
]
@@ -2103,7 +2125,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
]
[[package]]
@@ -2142,9 +2164,9 @@
[[package]]
name = "fastrand"
-version = "1.4.1"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb"
+checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
dependencies = [
"instant",
]
@@ -2159,7 +2181,7 @@
"fc-db",
"fp-consensus",
"fp-rpc",
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"parity-scale-codec",
"sc-client-api",
@@ -2197,7 +2219,7 @@
"fc-db",
"fp-consensus",
"fp-rpc",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"sc-client-api",
@@ -2221,7 +2243,7 @@
"fp-evm",
"fp-rpc",
"fp-storage",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 14.2.0",
"jsonrpc-derive 14.2.2",
@@ -2288,7 +2310,7 @@
checksum = "74a1bfdcc776e63e49f741c7ce6116fa1b887e8ac2e3ccb14dd4aa113e54feb9"
dependencies = [
"either",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"num-traits",
@@ -2673,9 +2695,9 @@
[[package]]
name = "futures"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
+checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b"
dependencies = [
"futures-channel",
"futures-core",
@@ -2688,9 +2710,9 @@
[[package]]
name = "futures-channel"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
+checksum = "74ed2411805f6e4e3d9bc904c95d5d423b89b3b25dc0250aa74729de20629ff9"
dependencies = [
"futures-core",
"futures-sink",
@@ -2698,9 +2720,9 @@
[[package]]
name = "futures-core"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
+checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99"
[[package]]
name = "futures-cpupool"
@@ -2714,9 +2736,9 @@
[[package]]
name = "futures-executor"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
+checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c"
dependencies = [
"futures-core",
"futures-task",
@@ -2726,9 +2748,9 @@
[[package]]
name = "futures-io"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
+checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582"
[[package]]
name = "futures-lite"
@@ -2741,15 +2763,15 @@
"futures-io",
"memchr",
"parking",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"waker-fn",
]
[[package]]
name = "futures-macro"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
+checksum = "c54913bae956fb8df7f4dc6fc90362aa72e69148e3f39041fbe8742d21e0ac57"
dependencies = [
"autocfg",
"proc-macro-hack",
@@ -2771,15 +2793,15 @@
[[package]]
name = "futures-sink"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
+checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53"
[[package]]
name = "futures-task"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
+checksum = "bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2"
[[package]]
name = "futures-timer"
@@ -2795,9 +2817,9 @@
[[package]]
name = "futures-util"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
+checksum = "67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78"
dependencies = [
"autocfg",
"futures 0.1.31",
@@ -2808,7 +2830,7 @@
"futures-sink",
"futures-task",
"memchr",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@@ -2884,6 +2906,12 @@
]
[[package]]
+name = "gimli"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7"
+
+[[package]]
name = "glob"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2891,9 +2919,9 @@
[[package]]
name = "globset"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0fc1b9fa0e64ffb1aa5b95daa0f0f167734fd528b7c02eabc581d9d843649b1"
+checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
dependencies = [
"aho-corasick",
"bstr",
@@ -2988,10 +3016,19 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
dependencies = [
- "ahash",
+ "ahash 0.4.7",
]
[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+dependencies = [
+ "ahash 0.7.4",
+]
+
+[[package]]
name = "heck"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3002,9 +3039,9 @@
[[package]]
name = "hermit-abi"
-version = "0.1.18"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
@@ -3017,9 +3054,9 @@
[[package]]
name = "hex-literal"
-version = "0.3.1"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8"
+checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b"
[[package]]
name = "hex_fmt"
@@ -3126,13 +3163,13 @@
[[package]]
name = "http-body"
-version = "0.4.3"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5"
+checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9"
dependencies = [
"bytes 1.0.1",
"http 0.2.4",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
]
[[package]]
@@ -3185,7 +3222,7 @@
"itoa",
"log",
"net2",
- "rustc_version",
+ "rustc_version 0.2.3",
"time",
"tokio 0.1.22",
"tokio-buf",
@@ -3214,7 +3251,7 @@
"httparse",
"httpdate 0.3.2",
"itoa",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"socket2 0.3.19",
"tokio 0.2.25",
"tower-service",
@@ -3233,11 +3270,11 @@
"futures-core",
"futures-util",
"http 0.2.4",
- "http-body 0.4.3",
+ "http-body 0.4.2",
"httparse",
"httpdate 1.0.1",
"itoa",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"tokio 1.9.0",
"tower-service",
"tracing",
@@ -3318,7 +3355,7 @@
checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179"
dependencies = [
"async-io",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-lite",
"if-addrs",
"ipnet",
@@ -3329,9 +3366,9 @@
[[package]]
name = "impl-codec"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df170efa359aebdd5cb7fe78edcc67107748e4737bdca8a8fb40d15ea7a877ed"
+checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443"
dependencies = [
"parity-scale-codec",
]
@@ -3367,20 +3404,20 @@
[[package]]
name = "indexmap"
-version = "1.6.2"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
+checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
dependencies = [
"autocfg",
- "hashbrown",
+ "hashbrown 0.11.2",
"serde",
]
[[package]]
name = "instant"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
+checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
dependencies = [
"cfg-if 1.0.0",
]
@@ -3406,7 +3443,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 2.0.2",
]
@@ -3709,10 +3746,10 @@
dependencies = [
"async-trait",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpsee-types",
"log",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"rustls 0.19.1",
"rustls-native-certs 0.5.0",
"serde",
@@ -3809,9 +3846,9 @@
[[package]]
name = "libc"
-version = "0.2.97"
+version = "0.2.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
+checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
[[package]]
name = "libloading"
@@ -3847,7 +3884,7 @@
dependencies = [
"atomic",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"lazy_static",
"libp2p-core",
"libp2p-deflate",
@@ -3873,7 +3910,7 @@
"libp2p-yamux",
"parity-multiaddr",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"smallvec 1.6.1",
"wasm-timer",
]
@@ -3889,7 +3926,7 @@
"ed25519-dalek",
"either",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"lazy_static",
"libsecp256k1 0.3.5",
@@ -3898,7 +3935,7 @@
"multistream-select",
"parity-multiaddr",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"prost",
"prost-build",
"rand 0.7.3",
@@ -3919,7 +3956,7 @@
checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08"
dependencies = [
"flate2",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
]
@@ -3930,7 +3967,7 @@
checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b"
dependencies = [
"async-std-resolver",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"log",
"smallvec 1.6.1",
@@ -3945,7 +3982,7 @@
dependencies = [
"cuckoofilter",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3966,7 +4003,7 @@
"byteorder",
"bytes 1.0.1",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"hex_fmt",
"libp2p-core",
"libp2p-swarm",
@@ -3987,7 +4024,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -4008,7 +4045,7 @@
"bytes 1.0.1",
"either",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -4032,7 +4069,7 @@
"async-io",
"data-encoding",
"dns-parser",
- "futures 0.3.15",
+ "futures 0.3.16",
"if-watch",
"lazy_static",
"libp2p-core",
@@ -4052,7 +4089,7 @@
dependencies = [
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"log",
"nohash-hasher",
@@ -4070,7 +4107,7 @@
dependencies = [
"bytes 1.0.1",
"curve25519-dalek 3.1.0",
- "futures 0.3.15",
+ "futures 0.3.16",
"lazy_static",
"libp2p-core",
"log",
@@ -4090,7 +4127,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -4107,7 +4144,7 @@
dependencies = [
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"log",
"prost",
@@ -4122,9 +4159,9 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"rand 0.7.3",
"salsa20",
"sha3 0.9.1",
@@ -4138,12 +4175,12 @@
dependencies = [
"asynchronous-codec 0.6.0",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"libp2p-core",
"libp2p-swarm",
"log",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"prost",
"prost-build",
"rand 0.7.3",
@@ -4161,7 +4198,7 @@
dependencies = [
"async-trait",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -4180,7 +4217,7 @@
checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92"
dependencies = [
"either",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"log",
"rand 0.7.3",
@@ -4206,7 +4243,7 @@
checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9"
dependencies = [
"async-io",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"if-watch",
"ipnet",
@@ -4223,7 +4260,7 @@
checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5"
dependencies = [
"async-std",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"log",
]
@@ -4234,7 +4271,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d413e4cf9b8e5dfbcd2a60d3dc5a3391308bdb463684093d4f67137b7113de"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"js-sys",
"libp2p-core",
"parity-send-wrapper",
@@ -4249,7 +4286,7 @@
checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74"
dependencies = [
"either",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-rustls",
"libp2p-core",
"log",
@@ -4266,7 +4303,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p-core",
"parking_lot 0.11.1",
"thiserror",
@@ -4275,9 +4312,9 @@
[[package]]
name = "librocksdb-sys"
-version = "6.17.3"
+version = "6.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5da125e1c0f22c7cae785982115523a0738728498547f415c9054cb17c7e89f9"
+checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d"
dependencies = [
"bindgen",
"cc",
@@ -4297,7 +4334,7 @@
"hmac-drbg 0.2.0",
"rand 0.7.3",
"sha2 0.8.2",
- "subtle 2.4.0",
+ "subtle 2.4.1",
"typenum",
]
@@ -4328,7 +4365,7 @@
dependencies = [
"crunchy",
"digest 0.9.0",
- "subtle 2.4.0",
+ "subtle 2.4.1",
]
[[package]]
@@ -4377,11 +4414,11 @@
[[package]]
name = "linregress"
-version = "0.4.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1ff7f341d23e1275eec0656a9a07225fcc86216c4322392868adffe59023d1a"
+checksum = "1e6e407dadb4ca4b31bc69c27aff00e7ca4534fdcee855159b039a7cebb5f395"
dependencies = [
- "nalgebra 0.27.1",
+ "nalgebra",
"statrs",
]
@@ -4419,7 +4456,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f374d42cdfc1d7dbf3d3dec28afab2eb97ffbf43a3234d795b5986dbf4b90ba"
dependencies = [
- "hashbrown",
+ "hashbrown 0.9.1",
]
[[package]]
@@ -4544,7 +4581,7 @@
checksum = "814bbecfc0451fc314eeea34f05bbcd5b98a7ad7af37faee088b86a1e633f1d4"
dependencies = [
"hash-db",
- "hashbrown",
+ "hashbrown 0.9.1",
"parity-util-mem",
]
@@ -4581,7 +4618,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
]
@@ -4591,7 +4628,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"rand 0.7.3",
"thrift",
]
@@ -4607,9 +4644,9 @@
[[package]]
name = "minicbor-derive"
-version = "0.6.3"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2b9e8883d58e34b18facd16c4564a77ea50fce028ad3d0ee6753440e37acc8"
+checksum = "54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788"
dependencies = [
"proc-macro2",
"quote",
@@ -4762,43 +4799,28 @@
checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8"
dependencies = [
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"smallvec 1.6.1",
"unsigned-varint 0.7.0",
]
[[package]]
name = "nalgebra"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476d1d59fe02fe54c86356e91650cd892f392782a1cb9fc524ec84f7aa9e1d06"
-dependencies = [
- "approx 0.4.0",
- "matrixmultiply",
- "num-complex 0.3.1",
- "num-rational 0.3.2",
- "num-traits",
- "rand 0.8.4",
- "rand_distr",
- "simba 0.4.0",
- "typenum",
-]
-
-[[package]]
-name = "nalgebra"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120"
dependencies = [
- "approx 0.5.0",
+ "approx",
"matrixmultiply",
"nalgebra-macros",
- "num-complex 0.4.0",
+ "num-complex",
"num-rational 0.4.0",
"num-traits",
- "simba 0.5.1",
+ "rand 0.8.4",
+ "rand_distr",
+ "simba",
"typenum",
]
@@ -4854,7 +4876,7 @@
"fp-rpc",
"frame-benchmarking",
"frame-benchmarking-cli",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
"log",
@@ -4933,7 +4955,7 @@
"fc-rpc",
"fc-rpc-core",
"fp-rpc",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
"nft-runtime",
@@ -5049,10 +5071,12 @@
[[package]]
name = "nom"
-version = "5.1.2"
+version = "6.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
dependencies = [
+ "bitvec 0.19.5",
+ "funty",
"memchr",
"version_check",
]
@@ -5065,15 +5089,6 @@
dependencies = [
"autocfg",
"num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
-dependencies = [
"num-traits",
]
@@ -5110,17 +5125,6 @@
[[package]]
name = "num-rational"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
@@ -5162,9 +5166,9 @@
[[package]]
name = "object"
-version = "0.25.3"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7"
+checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386"
dependencies = [
"memchr",
]
@@ -5848,34 +5852,34 @@
[[package]]
name = "pallet-scheduler"
version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"log",
"parity-scale-codec",
- "serde",
- "sp-core",
"sp-io",
"sp-runtime",
"sp-std",
- "substrate-test-utils",
- "up-sponsorship",
]
[[package]]
name = "pallet-scheduler"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"log",
"parity-scale-codec",
+ "serde",
+ "sp-core",
"sp-io",
"sp-runtime",
"sp-std",
+ "substrate-test-utils",
+ "up-sponsorship",
]
[[package]]
@@ -6130,7 +6134,7 @@
checksum = "8975095a2a03bbbdc70a74ab11a4f76a6d0b84680d87c68d722531b0ac28e8a9"
dependencies = [
"arrayvec 0.7.1",
- "bitvec",
+ "bitvec 0.20.4",
"byte-slice-cast",
"impl-trait-for-tuples",
"parity-scale-codec-derive",
@@ -6182,7 +6186,7 @@
dependencies = [
"cfg-if 1.0.0",
"ethereum-types",
- "hashbrown",
+ "hashbrown 0.9.1",
"impl-trait-for-tuples",
"lru",
"parity-util-mem-derive",
@@ -6220,9 +6224,9 @@
[[package]]
name = "parity-ws"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61"
+checksum = "322d72dfe461b8b9e367d057ceace105379d64d5b03907d23c481ccf3fbf8aa4"
dependencies = [
"byteorder",
"bytes 0.4.12",
@@ -6250,7 +6254,7 @@
dependencies = [
"lock_api 0.3.4",
"parking_lot_core 0.6.2",
- "rustc_version",
+ "rustc_version 0.2.3",
]
[[package]]
@@ -6284,7 +6288,7 @@
"cloudabi",
"libc",
"redox_syscall 0.1.57",
- "rustc_version",
+ "rustc_version 0.2.3",
"smallvec 0.6.14",
"winapi 0.3.9",
]
@@ -6430,11 +6434,11 @@
[[package]]
name = "pin-project"
-version = "1.0.7"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
+checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
dependencies = [
- "pin-project-internal 1.0.7",
+ "pin-project-internal 1.0.8",
]
[[package]]
@@ -6450,9 +6454,9 @@
[[package]]
name = "pin-project-internal"
-version = "1.0.7"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
+checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
dependencies = [
"proc-macro2",
"quote",
@@ -6467,9 +6471,9 @@
[[package]]
name = "pin-project-lite"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
+checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "pin-utils"
@@ -6494,7 +6498,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem",
@@ -6508,7 +6512,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
"polkadot-node-subsystem-util",
@@ -6521,7 +6525,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"lru",
"parity-scale-codec",
"polkadot-erasure-coding",
@@ -6544,7 +6548,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"lru",
"parity-scale-codec",
"polkadot-erasure-coding",
@@ -6564,7 +6568,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"frame-benchmarking-cli",
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"polkadot-node-core-pvf",
"polkadot-service",
@@ -6613,7 +6617,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"always-assert",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -6658,7 +6662,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
"polkadot-node-subsystem-util",
@@ -6677,7 +6681,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"parking_lot 0.11.1",
"polkadot-node-network-protocol",
@@ -6696,7 +6700,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"polkadot-erasure-coding",
"polkadot-node-primitives",
@@ -6714,9 +6718,9 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
+ "bitvec 0.20.4",
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"kvdb",
"lru",
@@ -6744,8 +6748,8 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
- "futures 0.3.15",
+ "bitvec 0.20.4",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"kvdb",
"parity-scale-codec",
@@ -6764,8 +6768,8 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
- "futures 0.3.15",
+ "bitvec 0.20.4",
+ "futures 0.3.16",
"polkadot-erasure-coding",
"polkadot-node-primitives",
"polkadot-node-subsystem",
@@ -6782,7 +6786,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"polkadot-node-subsystem",
"polkadot-node-subsystem-util",
"polkadot-primitives",
@@ -6798,7 +6802,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"polkadot-node-core-pvf",
"polkadot-node-primitives",
@@ -6815,7 +6819,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"polkadot-node-subsystem",
"polkadot-node-subsystem-util",
"polkadot-primitives",
@@ -6831,7 +6835,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"polkadot-node-subsystem",
"polkadot-overseer",
@@ -6848,8 +6852,8 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
- "futures 0.3.15",
+ "bitvec 0.20.4",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"polkadot-node-subsystem",
"polkadot-node-subsystem-util",
@@ -6867,11 +6871,11 @@
"assert_matches",
"async-process",
"async-std",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"libc",
"parity-scale-codec",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"polkadot-core-primitives",
"polkadot-parachain",
"rand 0.8.4",
@@ -6892,7 +6896,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"memory-lru",
"parity-util-mem",
"polkadot-node-subsystem",
@@ -6928,7 +6932,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"polkadot-node-jaeger",
"polkadot-node-primitives",
@@ -6943,7 +6947,7 @@
version = "0.1.0"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"parity-scale-codec",
"polkadot-parachain",
"polkadot-primitives",
@@ -6969,14 +6973,14 @@
"async-std",
"async-trait",
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"lazy_static",
"log",
"mick-jaeger",
"parity-scale-codec",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"polkadot-node-jaeger",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -6997,13 +7001,13 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"itertools 0.10.1",
"lru",
"metered-channel",
"parity-scale-codec",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"polkadot-node-jaeger",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -7025,7 +7029,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"lru",
"polkadot-node-primitives",
@@ -7058,7 +7062,7 @@
version = "0.9.8"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
+ "bitvec 0.20.4",
"frame-system",
"hex-literal",
"parity-scale-codec",
@@ -7144,7 +7148,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"beefy-primitives",
- "bitvec",
+ "bitvec 0.20.4",
"frame-election-provider-support",
"frame-executive",
"frame-support",
@@ -7215,7 +7219,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"beefy-primitives",
- "bitvec",
+ "bitvec 0.20.4",
"frame-support",
"frame-system",
"impl-trait-for-tuples",
@@ -7257,7 +7261,7 @@
version = "0.9.8"
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
- "bitvec",
+ "bitvec 0.20.4",
"derive_more",
"frame-support",
"frame-system",
@@ -7298,7 +7302,7 @@
"beefy-gadget",
"beefy-primitives",
"frame-system-rpc-runtime-api",
- "futures 0.3.15",
+ "futures 0.3.16",
"hex-literal",
"kvdb",
"kvdb-rocksdb",
@@ -7384,7 +7388,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"arrayvec 0.5.2",
- "futures 0.3.15",
+ "futures 0.3.16",
"indexmap",
"parity-scale-codec",
"polkadot-node-network-protocol",
@@ -7415,7 +7419,7 @@
source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce"
dependencies = [
"beefy-primitives",
- "bitvec",
+ "bitvec 0.20.4",
"frame-election-provider-support",
"frame-executive",
"frame-support",
@@ -7473,7 +7477,7 @@
"frame-benchmarking",
"frame-system",
"futures 0.1.31",
- "futures 0.3.15",
+ "futures 0.3.16",
"hex",
"pallet-balances",
"pallet-staking",
@@ -7559,9 +7563,9 @@
[[package]]
name = "primitive-types"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2415937401cb030a2a0a4d922483f945fa068f52a7dbb22ce0fe5f2b6f6adace"
+checksum = "06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0e"
dependencies = [
"fixed-hash",
"impl-codec",
@@ -7627,9 +7631,9 @@
[[package]]
name = "proc-macro2"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
+checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
dependencies = [
"unicode-xid",
]
@@ -7701,9 +7705,9 @@
[[package]]
name = "psm"
-version = "0.1.13"
+version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21ff0279b4a85e576b97e4a21d13e437ebcd56612706cde5d3f0d5c9399490c0"
+checksum = "14ce37fa8c0428a37307d163292add09b3aedc003472e6b3622486878404191d"
dependencies = [
"cc",
]
@@ -7753,6 +7757,12 @@
[[package]]
name = "radium"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
+
+[[package]]
+name = "radium"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb"
@@ -8145,9 +8155,9 @@
[[package]]
name = "rustc-demangle"
-version = "0.1.19"
+version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce"
+checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49"
[[package]]
name = "rustc-hash"
@@ -8171,6 +8181,15 @@
]
[[package]]
+name = "rustc_version"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+dependencies = [
+ "semver 0.11.0",
+]
+
+[[package]]
name = "rustls"
version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8222,9 +8241,9 @@
[[package]]
name = "ruzstd"
-version = "0.2.2"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d425143485a37727c7a46e689bbe3b883a00f42b4a52c4ac0f44855c1009b00"
+checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100"
dependencies = [
"byteorder",
"twox-hash",
@@ -8236,7 +8255,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"pin-project 0.4.28",
"static_assertions",
]
@@ -8253,7 +8272,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c"
dependencies = [
- "rustc_version",
+ "rustc_version 0.2.3",
]
[[package]]
@@ -8294,7 +8313,7 @@
"async-trait",
"derive_more",
"either",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"ip_network",
"libp2p",
@@ -8320,7 +8339,7 @@
version = "0.9.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
@@ -8392,7 +8411,7 @@
dependencies = [
"chrono",
"fdlimit",
- "futures 0.3.15",
+ "futures 0.3.16",
"hex",
"libp2p",
"log",
@@ -8430,7 +8449,7 @@
dependencies = [
"derive_more",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"hash-db",
"kvdb",
"lazy_static",
@@ -8507,7 +8526,7 @@
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
@@ -8539,7 +8558,7 @@
"async-trait",
"derive_more",
"fork-tree",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"merlin",
@@ -8583,7 +8602,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
@@ -8620,7 +8639,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"impl-trait-for-tuples",
"log",
@@ -8743,13 +8762,13 @@
"dyn-clone",
"finality-grandpa",
"fork-tree",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"linked-hash-map",
"log",
"parity-scale-codec",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"rand 0.7.3",
"sc-block-builder",
"sc-client-api",
@@ -8781,7 +8800,7 @@
dependencies = [
"derive_more",
"finality-grandpa",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
@@ -8804,7 +8823,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"num-traits",
"parity-scale-codec",
@@ -8825,7 +8844,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"ansi_term 0.12.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"log",
"parity-util-mem",
@@ -8844,7 +8863,7 @@
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-util",
"hex",
"merlin",
@@ -8854,7 +8873,7 @@
"sp-application-crypto",
"sp-core",
"sp-keystore",
- "subtle 2.4.0",
+ "subtle 2.4.1",
]
[[package]]
@@ -8893,7 +8912,7 @@
"erased-serde",
"fnv",
"fork-tree",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"hex",
"ip_network",
@@ -8905,7 +8924,7 @@
"nohash-hasher",
"parity-scale-codec",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"prost",
"prost-build",
"rand 0.7.3",
@@ -8934,7 +8953,7 @@
version = "0.9.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -8953,7 +8972,7 @@
dependencies = [
"bytes 0.5.6",
"fnv",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"hex",
"hyper 0.13.10",
@@ -8979,7 +8998,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p",
"log",
"serde_json",
@@ -9001,7 +9020,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"hash-db",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub 15.1.0",
@@ -9037,7 +9056,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
@@ -9083,7 +9102,7 @@
"directories",
"exit-future",
"futures 0.1.31",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"hash-db",
"jsonrpc-core 15.1.0",
@@ -9093,7 +9112,7 @@
"parity-scale-codec",
"parity-util-mem",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"rand 0.7.3",
"sc-block-builder",
"sc-chain-spec",
@@ -9181,11 +9200,11 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"chrono",
- "futures 0.3.15",
+ "futures 0.3.16",
"libp2p",
"log",
"parking_lot 0.11.1",
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"rand 0.7.3",
"serde",
"serde_json",
@@ -9249,7 +9268,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"linked-hash-map",
"log",
"parity-util-mem",
@@ -9270,7 +9289,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"intervalier",
"log",
"parity-scale-codec",
@@ -9308,13 +9327,13 @@
dependencies = [
"arrayref",
"arrayvec 0.5.2",
- "curve25519-dalek 2.1.2",
+ "curve25519-dalek 2.1.3",
"getrandom 0.1.16",
"merlin",
"rand 0.7.3",
"rand_core 0.5.1",
"sha2 0.8.2",
- "subtle 2.4.0",
+ "subtle 2.4.1",
"zeroize",
]
@@ -9503,9 +9522,9 @@
[[package]]
name = "sha-1"
-version = "0.9.6"
+version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16"
+checksum = "1a0c8611594e2ab4ebbf06ec7cbbf0a99450b8570e96cbf5188b5d5f6ef18d81"
dependencies = [
"block-buffer 0.9.0",
"cfg-if 1.0.0",
@@ -9575,9 +9594,9 @@
[[package]]
name = "shlex"
-version = "0.1.1"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d"
[[package]]
name = "signal-hook"
@@ -9600,21 +9619,9 @@
[[package]]
name = "signature"
-version = "1.3.0"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68"
-
-[[package]]
-name = "simba"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5132a955559188f3d13c9ba831e77c802ddc8782783f050ed0c52f5988b95f4c"
-dependencies = [
- "approx 0.4.0",
- "num-complex 0.3.1",
- "num-traits",
- "paste",
-]
+checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335"
[[package]]
name = "simba"
@@ -9622,8 +9629,8 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c"
dependencies = [
- "approx 0.5.0",
- "num-complex 0.4.0",
+ "approx",
+ "num-complex",
"num-traits",
"paste",
]
@@ -9657,9 +9664,9 @@
[[package]]
name = "slotmap"
-version = "1.0.3"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "585cd5dffe4e9e06f6dfdf66708b70aca3f781bed561f4f667b2d9c0d4559e36"
+checksum = "a952280edbecfb1d4bd3cf2dbc309dc6ab523e53487c438ae21a6df09fe84bc4"
dependencies = [
"version_check",
]
@@ -9691,9 +9698,9 @@
"rand 0.7.3",
"rand_core 0.5.1",
"ring",
- "rustc_version",
+ "rustc_version 0.2.3",
"sha2 0.9.5",
- "subtle 2.4.0",
+ "subtle 2.4.1",
"x25519-dalek",
]
@@ -9727,11 +9734,11 @@
"base64 0.12.3",
"bytes 0.5.6",
"flate2",
- "futures 0.3.15",
+ "futures 0.3.16",
"httparse",
"log",
"rand 0.7.3",
- "sha-1 0.9.6",
+ "sha-1 0.9.7",
]
[[package]]
@@ -9742,11 +9749,11 @@
dependencies = [
"base64 0.13.0",
"bytes 1.0.1",
- "futures 0.3.15",
+ "futures 0.3.16",
"httparse",
"log",
"rand 0.8.4",
- "sha-1 0.9.6",
+ "sha-1 0.9.7",
]
[[package]]
@@ -9846,7 +9853,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"lru",
"parity-scale-codec",
@@ -9865,7 +9872,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"async-trait",
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -9957,7 +9964,7 @@
"byteorder",
"dyn-clonable",
"ed25519-dalek",
- "futures 0.3.15",
+ "futures 0.3.16",
"hash-db",
"hash256-std-hasher",
"hex",
@@ -10058,7 +10065,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"hash-db",
"libsecp256k1 0.3.5",
"log",
@@ -10096,7 +10103,7 @@
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"merlin",
"parity-scale-codec",
"parking_lot 0.11.1",
@@ -10359,7 +10366,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"derive_more",
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"parity-scale-codec",
"serde",
@@ -10403,7 +10410,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"futures-core",
"futures-timer 3.0.2",
"lazy_static",
@@ -10491,13 +10498,13 @@
[[package]]
name = "statrs"
-version = "0.14.0"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0c1f144861fbfd2a8cc82d564ccbf7fb3b7834d4fa128b84e9c2a73371aead"
+checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05"
dependencies = [
- "approx 0.4.0",
+ "approx",
"lazy_static",
- "nalgebra 0.26.2",
+ "nalgebra",
"num-traits",
"rand 0.8.4",
]
@@ -10535,9 +10542,9 @@
[[package]]
name = "structopt"
-version = "0.3.21"
+version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
+checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71"
dependencies = [
"clap",
"lazy_static",
@@ -10546,9 +10553,9 @@
[[package]]
name = "structopt-derive"
-version = "0.4.14"
+version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
+checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10"
dependencies = [
"heck",
"proc-macro-error",
@@ -10605,7 +10612,7 @@
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"frame-system-rpc-runtime-api",
- "futures 0.3.15",
+ "futures 0.3.16",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client 15.1.0",
"jsonrpc-derive 15.1.0",
@@ -10643,7 +10650,7 @@
dependencies = [
"async-trait",
"futures 0.1.31",
- "futures 0.3.15",
+ "futures 0.3.16",
"hash-db",
"hex",
"parity-scale-codec",
@@ -10670,7 +10677,7 @@
version = "3.0.0"
source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"substrate-test-utils-derive",
"tokio 0.2.25",
]
@@ -10688,13 +10695,13 @@
[[package]]
name = "substrate-wasm-builder"
version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93a3d51ad6abbc408b03ea962062bfcc959b438a318d7d4bedd181e1effd0610"
+source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
dependencies = [
"ansi_term 0.12.1",
"atty",
"build-helper",
- "cargo_metadata 0.12.3",
+ "cargo_metadata 0.13.1",
+ "sp-maybe-compressed-blob",
"tempfile",
"toml",
"walkdir",
@@ -10704,13 +10711,13 @@
[[package]]
name = "substrate-wasm-builder"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.8#74101dc21cfffb4c2d014fcc28edc166d5ca1b16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93a3d51ad6abbc408b03ea962062bfcc959b438a318d7d4bedd181e1effd0610"
dependencies = [
"ansi_term 0.12.1",
"atty",
"build-helper",
- "cargo_metadata 0.13.1",
- "sp-maybe-compressed-blob",
+ "cargo_metadata 0.12.3",
"tempfile",
"toml",
"walkdir",
@@ -10725,15 +10732,15 @@
[[package]]
name = "subtle"
-version = "2.4.0"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
+checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.73"
+version = "1.0.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
+checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c"
dependencies = [
"proc-macro2",
"quote",
@@ -10742,9 +10749,9 @@
[[package]]
name = "synstructure"
-version = "0.12.4"
+version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
+checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa"
dependencies = [
"proc-macro2",
"quote",
@@ -10804,18 +10811,18 @@
[[package]]
name = "thiserror"
-version = "1.0.25"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6"
+checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.25"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
+checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
dependencies = [
"proc-macro2",
"quote",
@@ -10893,9 +10900,9 @@
[[package]]
name = "tinyvec"
-version = "1.2.0"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
+checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338"
dependencies = [
"tinyvec_macros",
]
@@ -10960,7 +10967,7 @@
checksum = "4b7b349f11a7047e6d1276853e612d152f5e8a352c61917887cc2169e2366b4c"
dependencies = [
"autocfg",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
]
[[package]]
@@ -11227,7 +11234,7 @@
dependencies = [
"cfg-if 1.0.0",
"log",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"tracing-attributes",
"tracing-core",
]
@@ -11258,7 +11265,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
- "pin-project 1.0.7",
+ "pin-project 1.0.8",
"tracing",
]
@@ -11285,9 +11292,9 @@
[[package]]
name = "tracing-subscriber"
-version = "0.2.18"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5"
+checksum = "ab69019741fca4d98be3c62d2b75254528b5432233fd8a4d2739fec20278de48"
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -11307,12 +11314,12 @@
[[package]]
name = "trie-db"
-version = "0.22.5"
+version = "0.22.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd81fe0c8bc2b528a51c9d2c31dae4483367a26a723a3c9a4a8120311d7774e3"
+checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa"
dependencies = [
"hash-db",
- "hashbrown",
+ "hashbrown 0.11.2",
"log",
"rustc-hex",
"smallvec 1.6.1",
@@ -11437,9 +11444,9 @@
[[package]]
name = "uint"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e"
+checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f"
dependencies = [
"byteorder",
"crunchy",
@@ -11476,9 +11483,9 @@
[[package]]
name = "unicode-segmentation"
-version = "1.7.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
+checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
[[package]]
name = "unicode-width"
@@ -11494,12 +11501,12 @@
[[package]]
name = "universal-hash"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
+checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
dependencies = [
"generic-array 0.14.4",
- "subtle 2.4.0",
+ "subtle 2.4.1",
]
[[package]]
@@ -11580,9 +11587,9 @@
[[package]]
name = "vcpkg"
-version = "0.2.14"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70455df2fdf4e9bf580a92e443f1eb0303c390d682e2ea817312c9e81f8c3399"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
@@ -11735,7 +11742,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"js-sys",
"parking_lot 0.11.1",
"pin-utils",
@@ -11850,7 +11857,7 @@
checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a"
dependencies = [
"anyhow",
- "gimli",
+ "gimli 0.24.0",
"more-asserts",
"object 0.24.0",
"target-lexicon",
@@ -11869,7 +11876,7 @@
"cranelift-codegen",
"cranelift-entity",
"cranelift-wasm",
- "gimli",
+ "gimli 0.24.0",
"indexmap",
"log",
"more-asserts",
@@ -11895,7 +11902,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707"
dependencies = [
- "addr2line",
+ "addr2line 0.15.2",
"anyhow",
"cfg-if 1.0.0",
"cranelift-codegen",
@@ -11903,7 +11910,7 @@
"cranelift-frontend",
"cranelift-native",
"cranelift-wasm",
- "gimli",
+ "gimli 0.24.0",
"log",
"more-asserts",
"object 0.24.0",
@@ -11944,7 +11951,7 @@
dependencies = [
"anyhow",
"cfg-if 1.0.0",
- "gimli",
+ "gimli 0.24.0",
"lazy_static",
"libc",
"object 0.24.0",
@@ -12183,7 +12190,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107"
dependencies = [
- "futures 0.3.15",
+ "futures 0.3.16",
"log",
"nohash-hasher",
"parking_lot 0.11.1",
@@ -12199,9 +12206,9 @@
[[package]]
name = "zeroize"
-version = "1.3.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
+checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd"
dependencies = [
"zeroize_derive",
]
pallets/nft/src/lib.rsdiffbeforeafterboth1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56#![recursion_limit = "1024"]7#![cfg_attr(not(feature = "std"), no_std)]8#![allow(9 clippy::too_many_arguments,10 clippy::unnecessary_mut_passed,11 clippy::unused_unit12)]1314extern crate alloc;1516pub use serde::{Serialize, Deserialize};1718pub use frame_support::{19 construct_runtime, decl_event, decl_module, decl_storage, decl_error,20 dispatch::DispatchResult,21 ensure, fail, parameter_types,22 traits::{23 Currency, ExistenceRequirement, Get, Imbalance, KeyOwnerProofSystem, OnUnbalanced,24 Randomness, IsSubType, WithdrawReasons,25 },26 weights::{27 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},28 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,29 WeightToFeePolynomial, DispatchClass,30 },31 StorageValue, transactional,32};3334use frame_system::{self as system, ensure_signed};35use sp_core::H160;36use sp_std::vec;37use sp_runtime::sp_std::prelude::Vec;38use core::ops::{Deref, DerefMut};39use nft_data_structs::{40 MAX_DECIMAL_POINTS, MAX_SPONSOR_TIMEOUT, MAX_TOKEN_OWNERSHIP, MAX_REFUNGIBLE_PIECES,41 CUSTOM_DATA_LIMIT, COLLECTION_NUMBER_LIMIT, ACCOUNT_TOKEN_OWNERSHIP_LIMIT,42 VARIABLE_ON_CHAIN_SCHEMA_LIMIT, CONST_ON_CHAIN_SCHEMA_LIMIT, COLLECTION_ADMINS_LIMIT,43 OFFCHAIN_SCHEMA_LIMIT, AccessMode, Collection, CreateItemData, CollectionLimits, CollectionId,44 CollectionMode, TokenId, SchemaVersion, SponsorshipState, Ownership, NftItemType,45 FungibleItemType, ReFungibleItemType,46};4748#[cfg(test)]49mod mock;5051#[cfg(test)]52mod tests;5354mod default_weights;55mod eth;56mod sponsorship;57pub use sponsorship::NftSponsorshipHandler;58pub use eth::sponsoring::NftEthSponsorshipHandler;5960pub use eth::NftErcSupport;61pub use eth::account::*;62use eth::erc::{ERC20Events, ERC721Events};6364#[cfg(feature = "runtime-benchmarks")]65mod benchmarking;6667pub trait WeightInfo {68 fn create_collection() -> Weight;69 fn destroy_collection() -> Weight;70 fn add_to_white_list() -> Weight;71 fn remove_from_white_list() -> Weight;72 fn set_public_access_mode() -> Weight;73 fn set_mint_permission() -> Weight;74 fn change_collection_owner() -> Weight;75 fn add_collection_admin() -> Weight;76 fn remove_collection_admin() -> Weight;77 fn set_collection_sponsor() -> Weight;78 fn confirm_sponsorship() -> Weight;79 fn remove_collection_sponsor() -> Weight;80 fn create_item(s: usize) -> Weight;81 fn burn_item() -> Weight;82 fn transfer() -> Weight;83 fn approve() -> Weight;84 fn transfer_from() -> Weight;85 fn set_offchain_schema() -> Weight;86 fn set_const_on_chain_schema() -> Weight;87 fn set_variable_on_chain_schema() -> Weight;88 fn set_variable_meta_data() -> Weight;89 fn enable_contract_sponsoring() -> Weight;90 fn set_schema_version() -> Weight;91 fn set_contract_sponsoring_rate_limit() -> Weight;92 fn set_variable_meta_data_sponsoring_rate_limit() -> Weight;93 fn toggle_contract_white_list() -> Weight;94 fn add_to_contract_white_list() -> Weight;95 fn remove_from_contract_white_list() -> Weight;96 fn set_collection_limits() -> Weight;97}9899decl_error! {100 /// Error for non-fungible-token module.101 pub enum Error for Module<T: Config> {102 /// Total collections bound exceeded.103 TotalCollectionsLimitExceeded,104 /// Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.105 CollectionDecimalPointLimitExceeded,106 /// Collection name can not be longer than 63 char.107 CollectionNameLimitExceeded,108 /// Collection description can not be longer than 255 char.109 CollectionDescriptionLimitExceeded,110 /// Token prefix can not be longer than 15 char.111 CollectionTokenPrefixLimitExceeded,112 /// This collection does not exist.113 CollectionNotFound,114 /// Item not exists.115 TokenNotFound,116 /// Admin not found117 AdminNotFound,118 /// Arithmetic calculation overflow.119 NumOverflow,120 /// Account already has admin role.121 AlreadyAdmin,122 /// You do not own this collection.123 NoPermission,124 /// This address is not set as sponsor, use setCollectionSponsor first.125 ConfirmUnsetSponsorFail,126 /// Collection is not in mint mode.127 PublicMintingNotAllowed,128 /// Sender parameter and item owner must be equal.129 MustBeTokenOwner,130 /// Item balance not enough.131 TokenValueTooLow,132 /// Size of item is too large.133 NftSizeLimitExceeded,134 /// No approve found135 ApproveNotFound,136 /// Requested value more than approved.137 TokenValueNotEnough,138 /// Only approved addresses can call this method.139 ApproveRequired,140 /// Address is not in white list.141 AddresNotInWhiteList,142 /// Number of collection admins bound exceeded.143 CollectionAdminsLimitExceeded,144 /// Owned tokens by a single address bound exceeded.145 AddressOwnershipLimitExceeded,146 /// Length of items properties must be greater than 0.147 EmptyArgument,148 /// const_data exceeded data limit.149 TokenConstDataLimitExceeded,150 /// variable_data exceeded data limit.151 TokenVariableDataLimitExceeded,152 /// Not NFT item data used to mint in NFT collection.153 NotNftDataUsedToMintNftCollectionToken,154 /// Not Fungible item data used to mint in Fungible collection.155 NotFungibleDataUsedToMintFungibleCollectionToken,156 /// Not Re Fungible item data used to mint in Re Fungible collection.157 NotReFungibleDataUsedToMintReFungibleCollectionToken,158 /// Unexpected collection type.159 UnexpectedCollectionType,160 /// Can't store metadata in fungible tokens.161 CantStoreMetadataInFungibleTokens,162 /// Collection token limit exceeded163 CollectionTokenLimitExceeded,164 /// Account token limit exceeded per collection165 AccountTokenLimitExceeded,166 /// Collection limit bounds per collection exceeded167 CollectionLimitBoundsExceeded,168 /// Tried to enable permissions which are only permitted to be disabled169 OwnerPermissionsCantBeReverted,170 /// Schema data size limit bound exceeded171 SchemaDataLimitExceeded,172 /// Maximum refungibility exceeded173 WrongRefungiblePieces,174 /// createRefungible should be called with one owner175 BadCreateRefungibleCall,176 /// Gas limit exceeded177 OutOfGas,178 /// Collection settings not allowing items transferring179 TransferNotAllowed,180 /// Can't transfer tokens to ethereum zero address181 AddressIsZero,182 }183}184185#[must_use = "Should call submit_logs or save, otherwise some data will be lost for evm side"]186pub struct CollectionHandle<T: Config> {187 pub id: CollectionId,188 collection: Collection<T>,189 recorder: pallet_evm_coder_substrate::SubstrateRecorder<T>,190}191impl<T: Config> CollectionHandle<T> {192 pub fn get_with_gas_limit(id: CollectionId, gas_limit: u64) -> Option<Self> {193 <CollectionById<T>>::get(id).map(|collection| Self {194 id,195 collection,196 recorder: pallet_evm_coder_substrate::SubstrateRecorder::new(197 eth::collection_id_to_address(id),198 gas_limit,199 ),200 })201 }202 pub fn get(id: CollectionId) -> Option<Self> {203 Self::get_with_gas_limit(id, u64::MAX)204 }205 pub fn log(&self, log: impl evm_coder::ToLog) -> DispatchResult {206 self.recorder.log_sub(log)207 }208 fn consume_gas(&self, gas: u64) -> DispatchResult {209 self.recorder.consume_gas_sub(gas)210 }211 pub fn submit_logs(self) -> DispatchResult {212 self.recorder.submit_logs()213 }214 pub fn save(self) -> DispatchResult {215 self.recorder.submit_logs()?;216 <CollectionById<T>>::insert(self.id, self.collection);217 Ok(())218 }219}220impl<T: Config> Deref for CollectionHandle<T> {221 type Target = Collection<T>;222223 fn deref(&self) -> &Self::Target {224 &self.collection225 }226}227228impl<T: Config> DerefMut for CollectionHandle<T> {229 fn deref_mut(&mut self) -> &mut Self::Target {230 &mut self.collection231 }232}233234pub trait Config: system::Config + pallet_evm_coder_substrate::Config + Sized {235 type Event: From<Event<Self>> + Into<<Self as system::Config>::Event>;236237 /// Weight information for extrinsics in this pallet.238 type WeightInfo: WeightInfo;239240 type EvmAddressMapping: pallet_evm::AddressMapping<Self::AccountId>;241 type EvmBackwardsAddressMapping: EvmBackwardsAddressMapping<Self::AccountId>;242243 type CrossAccountId: CrossAccountId<Self::AccountId>;244 type Currency: Currency<Self::AccountId>;245 type CollectionCreationPrice: Get<246 <<Self as Config>::Currency as Currency<Self::AccountId>>::Balance,247 >;248 type TreasuryAccountId: Get<Self::AccountId>;249}250251// # Used definitions252//253// ## User control levels254//255// chain-controlled - key is uncontrolled by user256// i.e autoincrementing index257// can use non-cryptographic hash258// real - key is controlled by user259// but it is hard to generate enough colliding values, i.e owner of signed txs260// can use non-cryptographic hash261// controlled - key is completly controlled by users262// i.e maps with mutable keys263// should use cryptographic hash264//265// ## User control level downgrade reasons266//267// ?1 - chain-controlled -> controlled268// collections/tokens can be destroyed, resulting in massive holes269// ?2 - chain-controlled -> controlled270// same as ?1, but can be only added, resulting in easier exploitation271// ?3 - real -> controlled272// no confirmation required, so addresses can be easily generated273decl_storage! {274 trait Store for Module<T: Config> as Nft {275276 //#region Private members277 /// Id of next collection278 CreatedCollectionCount: u32;279 /// Used for migrations280 ChainVersion: u64;281 /// Id of last collection token282 /// Collection id (controlled?1)283 ItemListIndex: map hasher(blake2_128_concat) CollectionId => TokenId;284 //#endregion285286 //#region Bound counters287 /// Amount of collections destroyed, used for total amount tracking with288 /// CreatedCollectionCount289 DestroyedCollectionCount: u32;290 /// Total amount of account owned tokens (NFTs + RFTs + unique fungibles)291 /// Account id (real)292 pub AccountItemCount get(fn account_item_count): map hasher(twox_64_concat) T::AccountId => u32;293 //#endregion294295 //#region Basic collections296 /// Collection info297 /// Collection id (controlled?1)298 pub CollectionById get(fn collection_id) config(): map hasher(blake2_128_concat) CollectionId => Option<Collection<T>> = None;299 /// List of collection admins300 /// Collection id (controlled?2)301 pub AdminList get(fn admin_list_collection): map hasher(blake2_128_concat) CollectionId => Vec<T::CrossAccountId>;302 /// Whitelisted collection users303 /// Collection id (controlled?2), user id (controlled?3)304 pub WhiteList get(fn white_list): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) T::AccountId => bool;305 //#endregion306307 /// How many of collection items user have308 /// Collection id (controlled?2), account id (real)309 pub Balance get(fn balance_count): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => u128;310311 /// Amount of items which spender can transfer out of owners account (via transferFrom)312 /// Collection id (controlled?2), (token id (controlled ?2) + owner account id (real) + spender account id (controlled?3))313 /// TODO: Off chain worker should remove from this map when token gets removed314 pub Allowances get(fn approved): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) (TokenId, T::AccountId, T::AccountId) => u128;315316 //#region Item collections317 /// Collection id (controlled?2), token id (controlled?1)318 pub NftItemList get(fn nft_item_id) config(): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<NftItemType<T::CrossAccountId>>;319 /// Collection id (controlled?2), owner (controlled?2)320 pub FungibleItemList get(fn fungible_item_id) config(): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) T::AccountId => FungibleItemType;321 /// Collection id (controlled?2), token id (controlled?1)322 pub ReFungibleItemList get(fn refungible_item_id) config(): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<ReFungibleItemType<T::CrossAccountId>>;323 //#endregion324325 //#region Index list326 /// Collection id (controlled?2), tokens owner (controlled?2)327 pub AddressTokens get(fn address_tokens): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) T::AccountId => Vec<TokenId>;328 //#endregion329330 //#region Tokens transfer rate limit baskets331 /// (Collection id (controlled?2), who created (real))332 /// TODO: Off chain worker should remove from this map when collection gets removed333 pub CreateItemBasket get(fn create_item_basket): map hasher(blake2_128_concat) (CollectionId, T::AccountId) => T::BlockNumber;334 /// Collection id (controlled?2), token id (controlled?2)335 pub NftTransferBasket get(fn nft_transfer_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => T::BlockNumber;336 /// Collection id (controlled?2), owning user (real)337 pub FungibleTransferBasket get(fn fungible_transfer_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => T::BlockNumber;338 /// Collection id (controlled?2), token id (controlled?2)339 pub ReFungibleTransferBasket get(fn refungible_transfer_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => T::BlockNumber;340 //#endregion341342 /// Variable metadata sponsoring343 /// Collection id (controlled?2), token id (controlled?2)344 pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber> = None;345 }346 add_extra_genesis {347 build(|config: &GenesisConfig<T>| {348 // Modification of storage349 for (_num, _c) in &config.collection_id {350 <Module<T>>::init_collection(_c);351 }352353 for (_num, _c, _i) in &config.nft_item_id {354 <Module<T>>::init_nft_token(*_c, _i);355 }356357 for (collection_id, account_id, fungible_item) in &config.fungible_item_id {358 <Module<T>>::init_fungible_token(*collection_id, &T::CrossAccountId::from_sub(account_id.clone()), fungible_item);359 }360361 for (_num, _c, _i) in &config.refungible_item_id {362 <Module<T>>::init_refungible_token(*_c, _i);363 }364 })365 }366}367368decl_event!(369 pub enum Event<T>370 where371 AccountId = <T as frame_system::Config>::AccountId,372 CrossAccountId = <T as Config>::CrossAccountId,373 {374 /// New collection was created375 ///376 /// # Arguments377 ///378 /// * collection_id: Globally unique identifier of newly created collection.379 ///380 /// * mode: [CollectionMode] converted into u8.381 ///382 /// * account_id: Collection owner.383 CollectionCreated(CollectionId, u8, AccountId),384385 /// New item was created.386 ///387 /// # Arguments388 ///389 /// * collection_id: Id of the collection where item was created.390 ///391 /// * item_id: Id of an item. Unique within the collection.392 ///393 /// * recipient: Owner of newly created item394 ItemCreated(CollectionId, TokenId, CrossAccountId),395396 /// Collection item was burned.397 ///398 /// # Arguments399 ///400 /// collection_id.401 ///402 /// item_id: Identifier of burned NFT.403 ItemDestroyed(CollectionId, TokenId),404405 /// Item was transferred406 ///407 /// * collection_id: Id of collection to which item is belong408 ///409 /// * item_id: Id of an item410 ///411 /// * sender: Original owner of item412 ///413 /// * recipient: New owner of item414 ///415 /// * amount: Always 1 for NFT416 Transfer(CollectionId, TokenId, CrossAccountId, CrossAccountId, u128),417418 /// * collection_id419 ///420 /// * item_id421 ///422 /// * sender423 ///424 /// * spender425 ///426 /// * amount427 Approved(CollectionId, TokenId, CrossAccountId, CrossAccountId, u128),428 }429);430431decl_module! {432 pub struct Module<T: Config> for enum Call433 where434 origin: T::Origin435 {436 fn deposit_event() = default;437 const CollectionAdminsLimit: u64 = COLLECTION_ADMINS_LIMIT;438 type Error = Error<T>;439440 fn on_initialize(_now: T::BlockNumber) -> Weight {441 0442 }443444 /// This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner and admin of the collection are set to the address that signed the transaction. Both addresses can be changed later.445 ///446 /// # Permissions447 ///448 /// * Anyone.449 ///450 /// # Arguments451 ///452 /// * collection_name: UTF-16 string with collection name (limit 64 characters), will be stored as zero-terminated.453 ///454 /// * collection_description: UTF-16 string with collection description (limit 256 characters), will be stored as zero-terminated.455 ///456 /// * token_prefix: UTF-8 string with token prefix.457 ///458 /// * mode: [CollectionMode] collection type and type dependent data.459 // returns collection ID460 #[weight = <T as Config>::WeightInfo::create_collection()]461 #[transactional]462 pub fn create_collection(origin,463 collection_name: Vec<u16>,464 collection_description: Vec<u16>,465 token_prefix: Vec<u8>,466 mode: CollectionMode) -> DispatchResult {467468 // Anyone can create a collection469 let who = ensure_signed(origin)?;470471 // Take a (non-refundable) deposit of collection creation472 let mut imbalance = <<<T as Config>::Currency as Currency<T::AccountId>>::PositiveImbalance>::zero();473 imbalance.subsume(<<T as Config>::Currency as Currency<T::AccountId>>::deposit_creating(474 &T::TreasuryAccountId::get(),475 T::CollectionCreationPrice::get(),476 ));477 <T as Config>::Currency::settle(478 &who,479 imbalance,480 WithdrawReasons::TRANSFER,481 ExistenceRequirement::KeepAlive,482 ).map_err(|_| Error::<T>::NoPermission)?;483484 let decimal_points = match mode {485 CollectionMode::Fungible(points) => points,486 _ => 0487 };488489 let created_count = CreatedCollectionCount::get();490 let destroyed_count = DestroyedCollectionCount::get();491492 // bound Total number of collections493 ensure!(created_count - destroyed_count < COLLECTION_NUMBER_LIMIT, Error::<T>::TotalCollectionsLimitExceeded);494495 // check params496 ensure!(decimal_points <= MAX_DECIMAL_POINTS, Error::<T>::CollectionDecimalPointLimitExceeded);497 ensure!(collection_name.len() <= 64, Error::<T>::CollectionNameLimitExceeded);498 ensure!(collection_description.len() <= 256, Error::<T>::CollectionDescriptionLimitExceeded);499 ensure!(token_prefix.len() <= 16, Error::<T>::CollectionTokenPrefixLimitExceeded);500501 // Generate next collection ID502 let next_id = created_count503 .checked_add(1)504 .ok_or(Error::<T>::NumOverflow)?;505506 CreatedCollectionCount::put(next_id);507508 let limits = CollectionLimits {509 sponsored_data_size: CUSTOM_DATA_LIMIT,510 ..Default::default()511 };512513 // Create new collection514 let new_collection = Collection {515 owner: who.clone(),516 name: collection_name,517 mode: mode.clone(),518 mint_mode: false,519 access: AccessMode::Normal,520 description: collection_description,521 decimal_points,522 token_prefix,523 offchain_schema: Vec::new(),524 schema_version: SchemaVersion::ImageURL,525 sponsorship: SponsorshipState::Disabled,526 variable_on_chain_schema: Vec::new(),527 const_on_chain_schema: Vec::new(),528 limits,529 transfers_enabled: true,530 };531532 // Add new collection to map533 <CollectionById<T>>::insert(next_id, new_collection);534535 // call event536 Self::deposit_event(RawEvent::CollectionCreated(next_id, mode.id(), who));537538 Ok(())539 }540541 /// **DANGEROUS**: Destroys collection and all NFTs within this collection. Users irrecoverably lose their assets and may lose real money.542 ///543 /// # Permissions544 ///545 /// * Collection Owner.546 ///547 /// # Arguments548 ///549 /// * collection_id: collection to destroy.550 #[weight = <T as Config>::WeightInfo::destroy_collection()]551 #[transactional]552 pub fn destroy_collection(origin, collection_id: CollectionId) -> DispatchResult {553554 let sender = ensure_signed(origin)?;555 let collection = Self::get_collection(collection_id)?;556 Self::check_owner_permissions(&collection, &sender)?;557 if !collection.limits.owner_can_destroy {558 fail!(Error::<T>::NoPermission);559 }560561 <AddressTokens<T>>::remove_prefix(collection_id, None);562 <Allowances<T>>::remove_prefix(collection_id, None);563 <Balance<T>>::remove_prefix(collection_id, None);564 <ItemListIndex>::remove(collection_id);565 <AdminList<T>>::remove(collection_id);566 <CollectionById<T>>::remove(collection_id);567 <WhiteList<T>>::remove_prefix(collection_id, None);568569 <NftItemList<T>>::remove_prefix(collection_id, None);570 <FungibleItemList<T>>::remove_prefix(collection_id, None);571 <ReFungibleItemList<T>>::remove_prefix(collection_id, None);572573 <NftTransferBasket<T>>::remove_prefix(collection_id, None);574 <FungibleTransferBasket<T>>::remove_prefix(collection_id, None);575 <ReFungibleTransferBasket<T>>::remove_prefix(collection_id, None);576577 <VariableMetaDataBasket<T>>::remove_prefix(collection_id, None);578579 DestroyedCollectionCount::put(DestroyedCollectionCount::get()580 .checked_add(1)581 .ok_or(Error::<T>::NumOverflow)?);582583 Ok(())584 }585586 /// Add an address to white list.587 ///588 /// # Permissions589 ///590 /// * Collection Owner591 /// * Collection Admin592 ///593 /// # Arguments594 ///595 /// * collection_id.596 ///597 /// * address.598 #[weight = <T as Config>::WeightInfo::add_to_white_list()]599 #[transactional]600 pub fn add_to_white_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{601602 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);603 let collection = Self::get_collection(collection_id)?;604605 Self::toggle_white_list_internal(606 &sender,607 &collection,608 &address,609 true,610 )?;611612 Ok(())613 }614615 /// Remove an address from white list.616 ///617 /// # Permissions618 ///619 /// * Collection Owner620 /// * Collection Admin621 ///622 /// # Arguments623 ///624 /// * collection_id.625 ///626 /// * address.627 #[weight = <T as Config>::WeightInfo::remove_from_white_list()]628 #[transactional]629 pub fn remove_from_white_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{630631 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);632 let collection = Self::get_collection(collection_id)?;633634 Self::toggle_white_list_internal(635 &sender,636 &collection,637 &address,638 false,639 )?;640641 Ok(())642 }643644 /// Toggle between normal and white list access for the methods with access for `Anyone`.645 ///646 /// # Permissions647 ///648 /// * Collection Owner.649 ///650 /// # Arguments651 ///652 /// * collection_id.653 ///654 /// * mode: [AccessMode]655 #[weight = <T as Config>::WeightInfo::set_public_access_mode()]656 #[transactional]657 pub fn set_public_access_mode(origin, collection_id: CollectionId, mode: AccessMode) -> DispatchResult658 {659 let sender = ensure_signed(origin)?;660661 let mut target_collection = Self::get_collection(collection_id)?;662 Self::check_owner_permissions(&target_collection, &sender)?;663 target_collection.access = mode;664 target_collection.save()665 }666667 /// Allows Anyone to create tokens if:668 /// * White List is enabled, and669 /// * Address is added to white list, and670 /// * This method was called with True parameter671 ///672 /// # Permissions673 /// * Collection Owner674 ///675 /// # Arguments676 ///677 /// * collection_id.678 ///679 /// * mint_permission: Boolean parameter. If True, allows minting to Anyone with conditions above.680 #[weight = <T as Config>::WeightInfo::set_mint_permission()]681 #[transactional]682 pub fn set_mint_permission(origin, collection_id: CollectionId, mint_permission: bool) -> DispatchResult683 {684 let sender = ensure_signed(origin)?;685686 let mut target_collection = Self::get_collection(collection_id)?;687 Self::check_owner_permissions(&target_collection, &sender)?;688 target_collection.mint_mode = mint_permission;689 target_collection.save()690 }691692 /// Change the owner of the collection.693 ///694 /// # Permissions695 ///696 /// * Collection Owner.697 ///698 /// # Arguments699 ///700 /// * collection_id.701 ///702 /// * new_owner.703 #[weight = <T as Config>::WeightInfo::change_collection_owner()]704 #[transactional]705 pub fn change_collection_owner(origin, collection_id: CollectionId, new_owner: T::AccountId) -> DispatchResult {706707 let sender = ensure_signed(origin)?;708 let mut target_collection = Self::get_collection(collection_id)?;709 Self::check_owner_permissions(&target_collection, &sender)?;710 target_collection.owner = new_owner;711 target_collection.save()712 }713714 /// Adds an admin of the Collection.715 /// NFT Collection can be controlled by multiple admin addresses (some which can also be servers, for example). Admins can issue and burn NFTs, as well as add and remove other admins, but cannot change NFT or Collection ownership.716 ///717 /// # Permissions718 ///719 /// * Collection Owner.720 /// * Collection Admin.721 ///722 /// # Arguments723 ///724 /// * collection_id: ID of the Collection to add admin for.725 ///726 /// * new_admin_id: Address of new admin to add.727 #[weight = <T as Config>::WeightInfo::add_collection_admin()]728 #[transactional]729 pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::CrossAccountId) -> DispatchResult {730 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);731 let collection = Self::get_collection(collection_id)?;732 Self::check_owner_or_admin_permissions(&collection, &sender)?;733 let mut admin_arr = <AdminList<T>>::get(collection_id);734735 match admin_arr.binary_search(&new_admin_id) {736 Ok(_) => {},737 Err(idx) => {738 ensure!(admin_arr.len() < COLLECTION_ADMINS_LIMIT as usize, Error::<T>::CollectionAdminsLimitExceeded);739 admin_arr.insert(idx, new_admin_id);740 <AdminList<T>>::insert(collection_id, admin_arr);741 }742 }743 Ok(())744 }745746 /// Remove admin address of the Collection. An admin address can remove itself. List of admins may become empty, in which case only Collection Owner will be able to add an Admin.747 ///748 /// # Permissions749 ///750 /// * Collection Owner.751 /// * Collection Admin.752 ///753 /// # Arguments754 ///755 /// * collection_id: ID of the Collection to remove admin for.756 ///757 /// * account_id: Address of admin to remove.758 #[weight = <T as Config>::WeightInfo::remove_collection_admin()]759 #[transactional]760 pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::CrossAccountId) -> DispatchResult {761 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);762 let collection = Self::get_collection(collection_id)?;763 Self::check_owner_or_admin_permissions(&collection, &sender)?;764 let mut admin_arr = <AdminList<T>>::get(collection_id);765766 if let Ok(idx) = admin_arr.binary_search(&account_id) {767 admin_arr.remove(idx);768 <AdminList<T>>::insert(collection_id, admin_arr);769 }770 Ok(())771 }772773 /// # Permissions774 ///775 /// * Collection Owner776 ///777 /// # Arguments778 ///779 /// * collection_id.780 ///781 /// * new_sponsor.782 #[weight = <T as Config>::WeightInfo::set_collection_sponsor()]783 #[transactional]784 pub fn set_collection_sponsor(origin, collection_id: CollectionId, new_sponsor: T::AccountId) -> DispatchResult {785 let sender = ensure_signed(origin)?;786 let mut target_collection = Self::get_collection(collection_id)?;787 Self::check_owner_permissions(&target_collection, &sender)?;788789 target_collection.sponsorship = SponsorshipState::Unconfirmed(new_sponsor);790 target_collection.save()791 }792793 /// # Permissions794 ///795 /// * Sponsor.796 ///797 /// # Arguments798 ///799 /// * collection_id.800 #[weight = <T as Config>::WeightInfo::confirm_sponsorship()]801 #[transactional]802 pub fn confirm_sponsorship(origin, collection_id: CollectionId) -> DispatchResult {803 let sender = ensure_signed(origin)?;804805 let mut target_collection = Self::get_collection(collection_id)?;806 ensure!(807 target_collection.sponsorship.pending_sponsor() == Some(&sender),808 Error::<T>::ConfirmUnsetSponsorFail809 );810811 target_collection.sponsorship = SponsorshipState::Confirmed(sender);812 target_collection.save()813 }814815 /// Switch back to pay-per-own-transaction model.816 ///817 /// # Permissions818 ///819 /// * Collection owner.820 ///821 /// # Arguments822 ///823 /// * collection_id.824 #[weight = <T as Config>::WeightInfo::remove_collection_sponsor()]825 #[transactional]826 pub fn remove_collection_sponsor(origin, collection_id: CollectionId) -> DispatchResult {827 let sender = ensure_signed(origin)?;828829 let mut target_collection = Self::get_collection(collection_id)?;830 Self::check_owner_permissions(&target_collection, &sender)?;831832 target_collection.sponsorship = SponsorshipState::Disabled;833 target_collection.save()834 }835836 /// This method creates a concrete instance of NFT Collection created with CreateCollection method.837 ///838 /// # Permissions839 ///840 /// * Collection Owner.841 /// * Collection Admin.842 /// * Anyone if843 /// * White List is enabled, and844 /// * Address is added to white list, and845 /// * MintPermission is enabled (see SetMintPermission method)846 ///847 /// # Arguments848 ///849 /// * collection_id: ID of the collection.850 ///851 /// * owner: Address, initial owner of the NFT.852 ///853 /// * data: Token data to store on chain.854 // #[weight =855 // (130_000_000 as Weight)856 // .saturating_add((2135 as Weight).saturating_mul((properties.len() as u64) as Weight))857 // .saturating_add(RocksDbWeight::get().reads(10 as Weight))858 // .saturating_add(RocksDbWeight::get().writes(8 as Weight))]859860 #[weight = <T as Config>::WeightInfo::create_item(data.data_size())]861 #[transactional]862 pub fn create_item(origin, collection_id: CollectionId, owner: T::CrossAccountId, data: CreateItemData) -> DispatchResult {863 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);864 let collection = Self::get_collection(collection_id)?;865866 Self::create_item_internal(&sender, &collection, &owner, data)?;867868 collection.submit_logs()869 }870871 /// This method creates multiple items in a collection created with CreateCollection method.872 ///873 /// # Permissions874 ///875 /// * Collection Owner.876 /// * Collection Admin.877 /// * Anyone if878 /// * White List is enabled, and879 /// * Address is added to white list, and880 /// * MintPermission is enabled (see SetMintPermission method)881 ///882 /// # Arguments883 ///884 /// * collection_id: ID of the collection.885 ///886 /// * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].887 ///888 /// * owner: Address, initial owner of the NFT.889 #[weight = <T as Config>::WeightInfo::create_item(items_data.iter()890 .map(|data| { data.data_size() })891 .sum())]892 #[transactional]893 pub fn create_multiple_items(origin, collection_id: CollectionId, owner: T::CrossAccountId, items_data: Vec<CreateItemData>) -> DispatchResult {894895 ensure!(!items_data.is_empty(), Error::<T>::EmptyArgument);896 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);897 let collection = Self::get_collection(collection_id)?;898899 Self::create_multiple_items_internal(&sender, &collection, &owner, items_data)?;900901 collection.submit_logs()902 }903904 // TODO! transaction weight905906 /// Set transfers_enabled value for particular collection907 ///908 /// # Permissions909 ///910 /// * Collection Owner.911 ///912 /// # Arguments913 ///914 /// * collection_id: ID of the collection.915 ///916 /// * value: New flag value.917 #[weight = <T as Config>::WeightInfo::burn_item()]918 #[transactional]919 pub fn set_transfers_enabled_flag(origin, collection_id: CollectionId, value: bool) -> DispatchResult {920921 let sender = ensure_signed(origin)?;922 let mut target_collection = Self::get_collection(collection_id)?;923924 Self::check_owner_permissions(&target_collection, &sender)?;925926 target_collection.transfers_enabled = value;927 target_collection.save()928 }929930 /// Destroys a concrete instance of NFT.931 ///932 /// # Permissions933 ///934 /// * Collection Owner.935 /// * Collection Admin.936 /// * Current NFT Owner.937 ///938 /// # Arguments939 ///940 /// * collection_id: ID of the collection.941 ///942 /// * item_id: ID of NFT to burn.943 #[weight = <T as Config>::WeightInfo::burn_item()]944 #[transactional]945 pub fn burn_item(origin, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {946947 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);948 let target_collection = Self::get_collection(collection_id)?;949950 Self::burn_item_internal(&sender, &target_collection, item_id, value)?;951952 target_collection.submit_logs()953 }954955 /// Change ownership of the token.956 ///957 /// # Permissions958 ///959 /// * Collection Owner960 /// * Collection Admin961 /// * Current NFT owner962 ///963 /// # Arguments964 ///965 /// * recipient: Address of token recipient.966 ///967 /// * collection_id.968 ///969 /// * item_id: ID of the item970 /// * Non-Fungible Mode: Required.971 /// * Fungible Mode: Ignored.972 /// * Re-Fungible Mode: Required.973 ///974 /// * value: Amount to transfer.975 /// * Non-Fungible Mode: Ignored976 /// * Fungible Mode: Must specify transferred amount977 /// * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)978 #[weight = <T as Config>::WeightInfo::transfer()]979 #[transactional]980 pub fn transfer(origin, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {981 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);982 let collection = Self::get_collection(collection_id)?;983984 Self::transfer_internal(&sender, &recipient, &collection, item_id, value)?;985986 collection.submit_logs()987 }988989 /// Set, change, or remove approved address to transfer the ownership of the NFT.990 ///991 /// # Permissions992 ///993 /// * Collection Owner994 /// * Collection Admin995 /// * Current NFT owner996 ///997 /// # Arguments998 ///999 /// * approved: Address that is approved to transfer this NFT or zero (if needed to remove approval).1000 ///1001 /// * collection_id.1002 ///1003 /// * item_id: ID of the item.1004 #[weight = <T as Config>::WeightInfo::approve()]1005 #[transactional]1006 pub fn approve(origin, spender: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResult {1007 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1008 let collection = Self::get_collection(collection_id)?;10091010 Self::approve_internal(&sender, &spender, &collection, item_id, amount)?;10111012 collection.submit_logs()1013 }10141015 /// Change ownership of a NFT on behalf of the owner. See Approve method for additional information. After this method executes, the approval is removed so that the approved address will not be able to transfer this NFT again from this owner.1016 ///1017 /// # Permissions1018 /// * Collection Owner1019 /// * Collection Admin1020 /// * Current NFT owner1021 /// * Address approved by current NFT owner1022 ///1023 /// # Arguments1024 ///1025 /// * from: Address that owns token.1026 ///1027 /// * recipient: Address of token recipient.1028 ///1029 /// * collection_id.1030 ///1031 /// * item_id: ID of the item.1032 ///1033 /// * value: Amount to transfer.1034 #[weight = <T as Config>::WeightInfo::transfer_from()]1035 #[transactional]1036 pub fn transfer_from(origin, from: T::CrossAccountId, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128 ) -> DispatchResult {1037 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1038 let collection = Self::get_collection(collection_id)?;10391040 Self::transfer_from_internal(&sender, &from, &recipient, &collection, item_id, value)?;10411042 collection.submit_logs()1043 }1044 // #[weight = 0]1045 // // let no_perm_mes = "You do not have permissions to modify this collection";1046 // // ensure!(<ApprovedList<T>>::contains_key((collection_id, item_id)), no_perm_mes);1047 // // let list_itm = <ApprovedList<T>>::get((collection_id, item_id));1048 // // ensure!(list_itm.contains(&new_owner.clone()), no_perm_mes);10491050 // // // on_nft_received call10511052 // // Self::transfer(origin, collection_id, item_id, new_owner)?;10531054 // Ok(())1055 // }10561057 /// Set off-chain data schema.1058 ///1059 /// # Permissions1060 ///1061 /// * Collection Owner1062 /// * Collection Admin1063 ///1064 /// # Arguments1065 ///1066 /// * collection_id.1067 ///1068 /// * schema: String representing the offchain data schema.1069 #[weight = <T as Config>::WeightInfo::set_variable_meta_data()]1070 #[transactional]1071 pub fn set_variable_meta_data (1072 origin,1073 collection_id: CollectionId,1074 item_id: TokenId,1075 data: Vec<u8>1076 ) -> DispatchResult {1077 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);10781079 let collection = Self::get_collection(collection_id)?;10801081 Self::set_variable_meta_data_internal(&sender, &collection, item_id, data)?;10821083 Ok(())1084 }10851086 /// Set schema standard1087 /// ImageURL1088 /// Unique1089 ///1090 /// # Permissions1091 ///1092 /// * Collection Owner1093 /// * Collection Admin1094 ///1095 /// # Arguments1096 ///1097 /// * collection_id.1098 ///1099 /// * schema: SchemaVersion: enum1100 #[weight = <T as Config>::WeightInfo::set_schema_version()]1101 #[transactional]1102 pub fn set_schema_version(1103 origin,1104 collection_id: CollectionId,1105 version: SchemaVersion1106 ) -> DispatchResult {1107 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1108 let mut target_collection = Self::get_collection(collection_id)?;1109 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;1110 target_collection.schema_version = version;1111 target_collection.save()1112 }11131114 /// Set off-chain data schema.1115 ///1116 /// # Permissions1117 ///1118 /// * Collection Owner1119 /// * Collection Admin1120 ///1121 /// # Arguments1122 ///1123 /// * collection_id.1124 ///1125 /// * schema: String representing the offchain data schema.1126 #[weight = <T as Config>::WeightInfo::set_offchain_schema()]1127 #[transactional]1128 pub fn set_offchain_schema(1129 origin,1130 collection_id: CollectionId,1131 schema: Vec<u8>1132 ) -> DispatchResult {1133 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1134 let mut target_collection = Self::get_collection(collection_id)?;1135 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;11361137 // check schema limit1138 ensure!(schema.len() as u32 <= OFFCHAIN_SCHEMA_LIMIT, "");11391140 target_collection.offchain_schema = schema;1141 target_collection.save()1142 }11431144 /// Set const on-chain data schema.1145 ///1146 /// # Permissions1147 ///1148 /// * Collection Owner1149 /// * Collection Admin1150 ///1151 /// # Arguments1152 ///1153 /// * collection_id.1154 ///1155 /// * schema: String representing the const on-chain data schema.1156 #[weight = <T as Config>::WeightInfo::set_const_on_chain_schema()]1157 #[transactional]1158 pub fn set_const_on_chain_schema (1159 origin,1160 collection_id: CollectionId,1161 schema: Vec<u8>1162 ) -> DispatchResult {1163 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1164 let mut target_collection = Self::get_collection(collection_id)?;1165 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;11661167 // check schema limit1168 ensure!(schema.len() as u32 <= CONST_ON_CHAIN_SCHEMA_LIMIT, "");11691170 target_collection.const_on_chain_schema = schema;1171 target_collection.save()1172 }11731174 /// Set variable on-chain data schema.1175 ///1176 /// # Permissions1177 ///1178 /// * Collection Owner1179 /// * Collection Admin1180 ///1181 /// # Arguments1182 ///1183 /// * collection_id.1184 ///1185 /// * schema: String representing the variable on-chain data schema.1186 #[weight = <T as Config>::WeightInfo::set_const_on_chain_schema()]1187 #[transactional]1188 pub fn set_variable_on_chain_schema (1189 origin,1190 collection_id: CollectionId,1191 schema: Vec<u8>1192 ) -> DispatchResult {1193 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1194 let mut target_collection = Self::get_collection(collection_id)?;1195 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;11961197 // check schema limit1198 ensure!(schema.len() as u32 <= VARIABLE_ON_CHAIN_SCHEMA_LIMIT, "");11991200 target_collection.variable_on_chain_schema = schema;1201 target_collection.save()1202 }12031204 #[weight = <T as Config>::WeightInfo::set_collection_limits()]1205 #[transactional]1206 pub fn set_collection_limits(1207 origin,1208 collection_id: u32,1209 new_limits: CollectionLimits<T::BlockNumber>,1210 ) -> DispatchResult {1211 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1212 let mut target_collection = Self::get_collection(collection_id)?;1213 Self::check_owner_permissions(&target_collection, sender.as_sub())?;1214 let old_limits = &target_collection.limits;12151216 // collection bounds1217 ensure!(new_limits.sponsor_transfer_timeout <= MAX_SPONSOR_TIMEOUT &&1218 new_limits.account_token_ownership_limit <= MAX_TOKEN_OWNERSHIP &&1219 new_limits.sponsored_data_size <= CUSTOM_DATA_LIMIT,1220 Error::<T>::CollectionLimitBoundsExceeded);12211222 // token_limit check prev1223 ensure!(old_limits.token_limit >= new_limits.token_limit, Error::<T>::CollectionTokenLimitExceeded);1224 ensure!(new_limits.token_limit > 0, Error::<T>::CollectionTokenLimitExceeded);12251226 ensure!(1227 (old_limits.owner_can_transfer || !new_limits.owner_can_transfer) &&1228 (old_limits.owner_can_destroy || !new_limits.owner_can_destroy),1229 Error::<T>::OwnerPermissionsCantBeReverted,1230 );12311232 target_collection.limits = new_limits;12331234 target_collection.save()1235 }1236 }1237}12381239impl<T: Config> Module<T> {1240 pub fn create_item_internal(1241 sender: &T::CrossAccountId,1242 collection: &CollectionHandle<T>,1243 owner: &T::CrossAccountId,1244 data: CreateItemData,1245 ) -> DispatchResult {1246 ensure!(1247 owner != &T::CrossAccountId::from_eth(H160([0; 20])),1248 Error::<T>::AddressIsZero1249 );12501251 Self::can_create_items_in_collection(collection, sender, owner, 1)?;1252 Self::validate_create_item_args(collection, &data)?;1253 Self::create_item_no_validation(collection, owner, data)?;12541255 Ok(())1256 }12571258 pub fn transfer_internal(1259 sender: &T::CrossAccountId,1260 recipient: &T::CrossAccountId,1261 target_collection: &CollectionHandle<T>,1262 item_id: TokenId,1263 value: u128,1264 ) -> DispatchResult {1265 ensure!(1266 recipient != &T::CrossAccountId::from_eth(H160([0; 20])),1267 Error::<T>::AddressIsZero1268 );12691270 target_collection.consume_gas(2000000)?;1271 // Limits check1272 Self::is_correct_transfer(target_collection, recipient)?;12731274 // Transfer permissions check1275 ensure!(1276 Self::is_item_owner(sender, target_collection, item_id)1277 || Self::is_owner_or_admin_permissions(target_collection, sender),1278 Error::<T>::NoPermission1279 );12801281 if target_collection.access == AccessMode::WhiteList {1282 Self::check_white_list(target_collection, sender)?;1283 Self::check_white_list(target_collection, recipient)?;1284 }12851286 match target_collection.mode {1287 CollectionMode::NFT => Self::transfer_nft(1288 target_collection,1289 item_id,1290 sender.clone(),1291 recipient.clone(),1292 )?,1293 CollectionMode::Fungible(_) => {1294 Self::transfer_fungible(target_collection, value, sender, recipient)?1295 }1296 CollectionMode::ReFungible => Self::transfer_refungible(1297 target_collection,1298 item_id,1299 value,1300 sender.clone(),1301 recipient.clone(),1302 )?,1303 _ => (),1304 };13051306 Self::deposit_event(RawEvent::Transfer(1307 target_collection.id,1308 item_id,1309 sender.clone(),1310 recipient.clone(),1311 value,1312 ));13131314 Ok(())1315 }13161317 pub fn approve_internal(1318 sender: &T::CrossAccountId,1319 spender: &T::CrossAccountId,1320 collection: &CollectionHandle<T>,1321 item_id: TokenId,1322 amount: u128,1323 ) -> DispatchResult {1324 collection.consume_gas(2000000)?;1325 Self::token_exists(collection, item_id)?;13261327 // Transfer permissions check1328 let bypasses_limits = collection.limits.owner_can_transfer1329 && Self::is_owner_or_admin_permissions(collection, sender);13301331 let allowance_limit = if bypasses_limits {1332 None1333 } else if let Some(amount) = Self::owned_amount(sender, collection, item_id) {1334 Some(amount)1335 } else {1336 fail!(Error::<T>::NoPermission);1337 };13381339 if collection.access == AccessMode::WhiteList {1340 Self::check_white_list(collection, sender)?;1341 Self::check_white_list(collection, spender)?;1342 }13431344 let allowance: u128 = amount1345 .checked_add(<Allowances<T>>::get(1346 collection.id,1347 (item_id, sender.as_sub(), spender.as_sub()),1348 ))1349 .ok_or(Error::<T>::NumOverflow)?;1350 if let Some(limit) = allowance_limit {1351 ensure!(limit >= allowance, Error::<T>::TokenValueTooLow);1352 }1353 <Allowances<T>>::insert(1354 collection.id,1355 (item_id, sender.as_sub(), spender.as_sub()),1356 allowance,1357 );13581359 if matches!(collection.mode, CollectionMode::NFT) {1360 // TODO: NFT: only one owner may exist for token in ERC7211361 collection.log(ERC721Events::Approval {1362 owner: *sender.as_eth(),1363 approved: *spender.as_eth(),1364 token_id: item_id.into(),1365 })?;1366 }13671368 if matches!(collection.mode, CollectionMode::Fungible(_)) {1369 // TODO: NFT: only one owner may exist for token in ERC201370 collection.log(ERC20Events::Approval {1371 owner: *sender.as_eth(),1372 spender: *spender.as_eth(),1373 value: allowance.into(),1374 })?;1375 }13761377 Self::deposit_event(RawEvent::Approved(1378 collection.id,1379 item_id,1380 sender.clone(),1381 spender.clone(),1382 allowance,1383 ));1384 Ok(())1385 }13861387 pub fn transfer_from_internal(1388 sender: &T::CrossAccountId,1389 from: &T::CrossAccountId,1390 recipient: &T::CrossAccountId,1391 collection: &CollectionHandle<T>,1392 item_id: TokenId,1393 amount: u128,1394 ) -> DispatchResult {1395 collection.consume_gas(2000000)?;1396 // Check approval1397 let approval: u128 =1398 <Allowances<T>>::get(collection.id, (item_id, from.as_sub(), sender.as_sub()));13991400 // Limits check1401 Self::is_correct_transfer(collection, recipient)?;14021403 // Transfer permissions check1404 ensure!(1405 approval >= amount1406 || (collection.limits.owner_can_transfer1407 && Self::is_owner_or_admin_permissions(collection, sender)),1408 Error::<T>::NoPermission1409 );14101411 if collection.access == AccessMode::WhiteList {1412 Self::check_white_list(collection, sender)?;1413 Self::check_white_list(collection, recipient)?;1414 }14151416 // Reduce approval by transferred amount or remove if remaining approval drops to 01417 let allowance = approval.saturating_sub(amount);1418 if allowance > 0 {1419 <Allowances<T>>::insert(1420 collection.id,1421 (item_id, from.as_sub(), sender.as_sub()),1422 allowance,1423 );1424 } else {1425 <Allowances<T>>::remove(collection.id, (item_id, from.as_sub(), sender.as_sub()));1426 }14271428 match collection.mode {1429 CollectionMode::NFT => {1430 Self::transfer_nft(collection, item_id, from.clone(), recipient.clone())?1431 }1432 CollectionMode::Fungible(_) => {1433 Self::transfer_fungible(collection, amount, from, recipient)?1434 }1435 CollectionMode::ReFungible => Self::transfer_refungible(1436 collection,1437 item_id,1438 amount,1439 from.clone(),1440 recipient.clone(),1441 )?,1442 _ => (),1443 };14441445 if matches!(collection.mode, CollectionMode::Fungible(_)) {1446 collection.log(ERC20Events::Approval {1447 owner: *from.as_eth(),1448 spender: *sender.as_eth(),1449 value: allowance.into(),1450 })?;1451 }14521453 Ok(())1454 }14551456 pub fn set_variable_meta_data_internal(1457 sender: &T::CrossAccountId,1458 collection: &CollectionHandle<T>,1459 item_id: TokenId,1460 data: Vec<u8>,1461 ) -> DispatchResult {1462 Self::token_exists(collection, item_id)?;14631464 ensure!(1465 CUSTOM_DATA_LIMIT >= data.len() as u32,1466 Error::<T>::TokenVariableDataLimitExceeded1467 );14681469 // Modify permissions check1470 ensure!(1471 Self::is_item_owner(sender, collection, item_id)1472 || Self::is_owner_or_admin_permissions(collection, sender),1473 Error::<T>::NoPermission1474 );14751476 match collection.mode {1477 CollectionMode::NFT => Self::set_nft_variable_data(collection, item_id, data)?,1478 CollectionMode::ReFungible => {1479 Self::set_re_fungible_variable_data(collection, item_id, data)?1480 }1481 CollectionMode::Fungible(_) => fail!(Error::<T>::CantStoreMetadataInFungibleTokens),1482 _ => fail!(Error::<T>::UnexpectedCollectionType),1483 };14841485 Ok(())1486 }14871488 pub fn create_multiple_items_internal(1489 sender: &T::CrossAccountId,1490 collection: &CollectionHandle<T>,1491 owner: &T::CrossAccountId,1492 items_data: Vec<CreateItemData>,1493 ) -> DispatchResult {1494 Self::can_create_items_in_collection(collection, sender, owner, items_data.len() as u32)?;14951496 for data in &items_data {1497 Self::validate_create_item_args(collection, data)?;1498 }1499 for data in &items_data {1500 Self::create_item_no_validation(collection, owner, data.clone())?;1501 }15021503 Ok(())1504 }15051506 pub fn burn_item_internal(1507 sender: &T::CrossAccountId,1508 collection: &CollectionHandle<T>,1509 item_id: TokenId,1510 value: u128,1511 ) -> DispatchResult {1512 ensure!(1513 Self::is_item_owner(sender, collection, item_id)1514 || (collection.limits.owner_can_transfer1515 && Self::is_owner_or_admin_permissions(collection, sender)),1516 Error::<T>::NoPermission1517 );15181519 if collection.access == AccessMode::WhiteList {1520 Self::check_white_list(collection, sender)?;1521 }15221523 match collection.mode {1524 CollectionMode::NFT => Self::burn_nft_item(collection, item_id)?,1525 CollectionMode::Fungible(_) => Self::burn_fungible_item(sender, collection, value)?,1526 CollectionMode::ReFungible => Self::burn_refungible_item(collection, item_id, sender)?,1527 _ => (),1528 };15291530 Ok(())1531 }15321533 pub fn toggle_white_list_internal(1534 sender: &T::CrossAccountId,1535 collection: &CollectionHandle<T>,1536 address: &T::CrossAccountId,1537 whitelisted: bool,1538 ) -> DispatchResult {1539 Self::check_owner_or_admin_permissions(collection, sender)?;15401541 if whitelisted {1542 <WhiteList<T>>::insert(collection.id, address.as_sub(), true);1543 } else {1544 <WhiteList<T>>::remove(collection.id, address.as_sub());1545 }15461547 Ok(())1548 }15491550 fn is_correct_transfer(1551 collection: &CollectionHandle<T>,1552 recipient: &T::CrossAccountId,1553 ) -> DispatchResult {1554 let collection_id = collection.id;15551556 // check token limit and account token limit1557 let account_items: u32 =1558 <AddressTokens<T>>::get(collection_id, recipient.as_sub()).len() as u32;1559 ensure!(1560 collection.limits.account_token_ownership_limit > account_items,1561 Error::<T>::AccountTokenLimitExceeded1562 );15631564 // preliminary transfer check1565 ensure!(collection.transfers_enabled, Error::<T>::TransferNotAllowed);15661567 Ok(())1568 }15691570 fn can_create_items_in_collection(1571 collection: &CollectionHandle<T>,1572 sender: &T::CrossAccountId,1573 owner: &T::CrossAccountId,1574 amount: u32,1575 ) -> DispatchResult {1576 let collection_id = collection.id;15771578 // check token limit and account token limit1579 let total_items: u32 = ItemListIndex::get(collection_id)1580 .checked_add(amount)1581 .ok_or(Error::<T>::CollectionTokenLimitExceeded)?;1582 let account_items: u32 = (<AddressTokens<T>>::get(collection_id, owner.as_sub()).len()1583 as u32)1584 .checked_add(amount)1585 .ok_or(Error::<T>::AccountTokenLimitExceeded)?;1586 ensure!(1587 collection.limits.token_limit >= total_items,1588 Error::<T>::CollectionTokenLimitExceeded1589 );1590 ensure!(1591 collection.limits.account_token_ownership_limit >= account_items,1592 Error::<T>::AccountTokenLimitExceeded1593 );15941595 if !Self::is_owner_or_admin_permissions(collection, sender) {1596 ensure!(collection.mint_mode, Error::<T>::PublicMintingNotAllowed);1597 Self::check_white_list(collection, owner)?;1598 Self::check_white_list(collection, sender)?;1599 }16001601 Ok(())1602 }16031604 fn validate_create_item_args(1605 target_collection: &CollectionHandle<T>,1606 data: &CreateItemData,1607 ) -> DispatchResult {1608 match target_collection.mode {1609 CollectionMode::NFT => {1610 if !matches!(data, CreateItemData::NFT(_)) {1611 fail!(Error::<T>::NotNftDataUsedToMintNftCollectionToken);1612 }1613 }1614 CollectionMode::Fungible(_) => {1615 if !matches!(data, CreateItemData::Fungible(_)) {1616 fail!(Error::<T>::NotFungibleDataUsedToMintFungibleCollectionToken);1617 }1618 }1619 CollectionMode::ReFungible => {1620 if let CreateItemData::ReFungible(data) = data {1621 // Check refungibility limits1622 ensure!(1623 data.pieces <= MAX_REFUNGIBLE_PIECES,1624 Error::<T>::WrongRefungiblePieces1625 );1626 ensure!(data.pieces > 0, Error::<T>::WrongRefungiblePieces);1627 } else {1628 fail!(Error::<T>::NotReFungibleDataUsedToMintReFungibleCollectionToken);1629 }1630 }1631 _ => {1632 fail!(Error::<T>::UnexpectedCollectionType);1633 }1634 };16351636 Ok(())1637 }16381639 fn create_item_no_validation(1640 collection: &CollectionHandle<T>,1641 owner: &T::CrossAccountId,1642 data: CreateItemData,1643 ) -> DispatchResult {1644 match data {1645 CreateItemData::NFT(data) => {1646 let item = NftItemType {1647 owner: owner.clone(),1648 const_data: data.const_data.into_inner(),1649 variable_data: data.variable_data.into_inner(),1650 };16511652 Self::add_nft_item(collection, item)?;1653 }1654 CreateItemData::Fungible(data) => {1655 Self::add_fungible_item(collection, owner, data.value)?;1656 }1657 CreateItemData::ReFungible(data) => {1658 let owner_list = vec![Ownership {1659 owner: owner.clone(),1660 fraction: data.pieces,1661 }];16621663 let item = ReFungibleItemType {1664 owner: owner_list,1665 const_data: data.const_data.into_inner(),1666 variable_data: data.variable_data.into_inner(),1667 };16681669 Self::add_refungible_item(collection, item)?;1670 }1671 };16721673 Ok(())1674 }16751676 fn add_fungible_item(1677 collection: &CollectionHandle<T>,1678 owner: &T::CrossAccountId,1679 value: u128,1680 ) -> DispatchResult {1681 let collection_id = collection.id;16821683 // Does new owner already have an account?1684 let balance: u128 = <FungibleItemList<T>>::get(collection_id, owner.as_sub()).value;16851686 // Mint1687 let item = FungibleItemType {1688 value: balance.checked_add(value).ok_or(Error::<T>::NumOverflow)?,1689 };1690 <FungibleItemList<T>>::insert(collection_id, owner.as_sub(), item);16911692 // Update balance1693 let new_balance = <Balance<T>>::get(collection_id, owner.as_sub())1694 .checked_add(value)1695 .ok_or(Error::<T>::NumOverflow)?;1696 <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);16971698 Self::deposit_event(RawEvent::ItemCreated(collection_id, 0, owner.clone()));1699 Ok(())1700 }17011702 fn add_refungible_item(1703 collection: &CollectionHandle<T>,1704 item: ReFungibleItemType<T::CrossAccountId>,1705 ) -> DispatchResult {1706 let collection_id = collection.id;17071708 let current_index = <ItemListIndex>::get(collection_id)1709 .checked_add(1)1710 .ok_or(Error::<T>::NumOverflow)?;1711 let itemcopy = item.clone();17121713 ensure!(item.owner.len() == 1, Error::<T>::BadCreateRefungibleCall,);1714 let item_owner = item.owner.first().expect("only one owner is defined");17151716 let value = item_owner.fraction;1717 let owner = item_owner.owner.clone();17181719 Self::add_token_index(collection_id, current_index, &owner)?;17201721 <ItemListIndex>::insert(collection_id, current_index);1722 <ReFungibleItemList<T>>::insert(collection_id, current_index, itemcopy);17231724 // Update balance1725 let new_balance = <Balance<T>>::get(collection_id, owner.as_sub())1726 .checked_add(value)1727 .ok_or(Error::<T>::NumOverflow)?;1728 <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);17291730 Self::deposit_event(RawEvent::ItemCreated(collection_id, current_index, owner));1731 Ok(())1732 }17331734 fn add_nft_item(1735 collection: &CollectionHandle<T>,1736 item: NftItemType<T::CrossAccountId>,1737 ) -> DispatchResult {1738 let collection_id = collection.id;17391740 let current_index = <ItemListIndex>::get(collection_id)1741 .checked_add(1)1742 .ok_or(Error::<T>::NumOverflow)?;17431744 let item_owner = item.owner.clone();1745 Self::add_token_index(collection_id, current_index, &item.owner)?;17461747 <ItemListIndex>::insert(collection_id, current_index);1748 <NftItemList<T>>::insert(collection_id, current_index, item);17491750 // Update balance1751 let new_balance = <Balance<T>>::get(collection_id, item_owner.as_sub())1752 .checked_add(1)1753 .ok_or(Error::<T>::NumOverflow)?;1754 <Balance<T>>::insert(collection_id, item_owner.as_sub(), new_balance);17551756 collection.log(ERC721Events::Transfer {1757 from: H160::default(),1758 to: *item_owner.as_eth(),1759 token_id: current_index.into(),1760 })?;1761 Self::deposit_event(RawEvent::ItemCreated(1762 collection_id,1763 current_index,1764 item_owner,1765 ));1766 Ok(())1767 }17681769 fn burn_refungible_item(1770 collection: &CollectionHandle<T>,1771 item_id: TokenId,1772 owner: &T::CrossAccountId,1773 ) -> DispatchResult {1774 let collection_id = collection.id;17751776 let mut token = <ReFungibleItemList<T>>::get(collection_id, item_id)1777 .ok_or(Error::<T>::TokenNotFound)?;1778 let rft_balance = token1779 .owner1780 .iter()1781 .find(|&i| i.owner == *owner)1782 .ok_or(Error::<T>::TokenNotFound)?;1783 Self::remove_token_index(collection_id, item_id, owner)?;17841785 // update balance1786 let new_balance = <Balance<T>>::get(collection_id, rft_balance.owner.as_sub())1787 .checked_sub(rft_balance.fraction)1788 .ok_or(Error::<T>::NumOverflow)?;1789 <Balance<T>>::insert(collection_id, rft_balance.owner.as_sub(), new_balance);17901791 // Re-create owners list with sender removed1792 let index = token1793 .owner1794 .iter()1795 .position(|i| i.owner == *owner)1796 .expect("owned item is exists");1797 token.owner.remove(index);1798 let owner_count = token.owner.len();17991800 // Burn the token completely if this was the last (only) owner1801 if owner_count == 0 {1802 <ReFungibleItemList<T>>::remove(collection_id, item_id);1803 <VariableMetaDataBasket<T>>::remove(collection_id, item_id);1804 } else {1805 <ReFungibleItemList<T>>::insert(collection_id, item_id, token);1806 }18071808 Ok(())1809 }18101811 fn burn_nft_item(collection: &CollectionHandle<T>, item_id: TokenId) -> DispatchResult {1812 let collection_id = collection.id;18131814 let item =1815 <NftItemList<T>>::get(collection_id, item_id).ok_or(Error::<T>::TokenNotFound)?;1816 Self::remove_token_index(collection_id, item_id, &item.owner)?;18171818 // update balance1819 let new_balance = <Balance<T>>::get(collection_id, item.owner.as_sub())1820 .checked_sub(1)1821 .ok_or(Error::<T>::NumOverflow)?;1822 <Balance<T>>::insert(collection_id, item.owner.as_sub(), new_balance);1823 <NftItemList<T>>::remove(collection_id, item_id);1824 <VariableMetaDataBasket<T>>::remove(collection_id, item_id);18251826 collection.log(ERC721Events::Transfer {1827 from: *item.owner.as_eth(),1828 to: H160::default(),1829 token_id: item_id.into(),1830 })?;1831 Self::deposit_event(RawEvent::ItemDestroyed(collection.id, item_id));1832 Ok(())1833 }18341835 fn burn_fungible_item(1836 owner: &T::CrossAccountId,1837 collection: &CollectionHandle<T>,1838 value: u128,1839 ) -> DispatchResult {1840 let collection_id = collection.id;18411842 let mut balance = <FungibleItemList<T>>::get(collection_id, owner.as_sub());1843 ensure!(balance.value >= value, Error::<T>::TokenValueNotEnough);18441845 // update balance1846 let new_balance = <Balance<T>>::get(collection_id, owner.as_sub())1847 .checked_sub(value)1848 .ok_or(Error::<T>::NumOverflow)?;1849 <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);18501851 if balance.value - value > 0 {1852 balance.value -= value;1853 <FungibleItemList<T>>::insert(collection_id, owner.as_sub(), balance);1854 } else {1855 <FungibleItemList<T>>::remove(collection_id, owner.as_sub());1856 }18571858 collection.log(ERC20Events::Transfer {1859 from: *owner.as_eth(),1860 to: H160::default(),1861 value: value.into(),1862 })?;1863 Ok(())1864 }18651866 pub fn get_collection(1867 collection_id: CollectionId,1868 ) -> Result<CollectionHandle<T>, sp_runtime::DispatchError> {1869 Ok(<CollectionHandle<T>>::get(collection_id).ok_or(Error::<T>::CollectionNotFound)?)1870 }18711872 fn check_owner_permissions(1873 target_collection: &CollectionHandle<T>,1874 subject: &T::AccountId,1875 ) -> DispatchResult {1876 ensure!(1877 *subject == target_collection.owner,1878 Error::<T>::NoPermission1879 );18801881 Ok(())1882 }18831884 fn is_owner_or_admin_permissions(1885 collection: &CollectionHandle<T>,1886 subject: &T::CrossAccountId,1887 ) -> bool {1888 *subject.as_sub() == collection.owner1889 || <AdminList<T>>::get(collection.id).contains(subject)1890 }18911892 fn check_owner_or_admin_permissions(1893 collection: &CollectionHandle<T>,1894 subject: &T::CrossAccountId,1895 ) -> DispatchResult {1896 ensure!(1897 Self::is_owner_or_admin_permissions(collection, subject),1898 Error::<T>::NoPermission1899 );19001901 Ok(())1902 }19031904 fn owned_amount(1905 subject: &T::CrossAccountId,1906 target_collection: &CollectionHandle<T>,1907 item_id: TokenId,1908 ) -> Option<u128> {1909 let collection_id = target_collection.id;19101911 match target_collection.mode {1912 CollectionMode::NFT => {1913 (<NftItemList<T>>::get(collection_id, item_id)?.owner == *subject).then(|| 1)1914 }1915 CollectionMode::Fungible(_) => {1916 Some(<FungibleItemList<T>>::get(collection_id, &subject.as_sub()).value)1917 }1918 CollectionMode::ReFungible => <ReFungibleItemList<T>>::get(collection_id, item_id)?1919 .owner1920 .iter()1921 .find(|i| i.owner == *subject)1922 .map(|i| i.fraction),1923 CollectionMode::Invalid => None,1924 }1925 }19261927 fn is_item_owner(1928 subject: &T::CrossAccountId,1929 target_collection: &CollectionHandle<T>,1930 item_id: TokenId,1931 ) -> bool {1932 match target_collection.mode {1933 CollectionMode::Fungible(_) => true,1934 _ => Self::owned_amount(subject, target_collection, item_id).is_some(),1935 }1936 }19371938 fn check_white_list(1939 collection: &CollectionHandle<T>,1940 address: &T::CrossAccountId,1941 ) -> DispatchResult {1942 let collection_id = collection.id;19431944 let mes = Error::<T>::AddresNotInWhiteList;1945 ensure!(1946 <WhiteList<T>>::contains_key(collection_id, address.as_sub()),1947 mes1948 );19491950 Ok(())1951 }19521953 /// Check if token exists. In case of Fungible, check if there is an entry for1954 /// the owner in fungible balances double map1955 fn token_exists(target_collection: &CollectionHandle<T>, item_id: TokenId) -> DispatchResult {1956 let collection_id = target_collection.id;1957 let exists = match target_collection.mode {1958 CollectionMode::NFT => <NftItemList<T>>::contains_key(collection_id, item_id),1959 CollectionMode::Fungible(_) => true,1960 CollectionMode::ReFungible => {1961 <ReFungibleItemList<T>>::contains_key(collection_id, item_id)1962 }1963 _ => false,1964 };19651966 ensure!(exists, Error::<T>::TokenNotFound);1967 Ok(())1968 }19691970 fn transfer_fungible(1971 collection: &CollectionHandle<T>,1972 value: u128,1973 owner: &T::CrossAccountId,1974 recipient: &T::CrossAccountId,1975 ) -> DispatchResult {1976 let collection_id = collection.id;19771978 let mut balance = <FungibleItemList<T>>::get(collection_id, owner.as_sub());1979 ensure!(balance.value >= value, Error::<T>::TokenValueTooLow);19801981 // Send balance to recipient (updates balanceOf of recipient)1982 Self::add_fungible_item(collection, recipient, value)?;19831984 // update balanceOf of sender1985 <Balance<T>>::insert(collection_id, owner.as_sub(), balance.value - value);19861987 // Reduce or remove sender1988 if balance.value == value {1989 <FungibleItemList<T>>::remove(collection_id, owner.as_sub());1990 } else {1991 balance.value -= value;1992 <FungibleItemList<T>>::insert(collection_id, owner.as_sub(), balance);1993 }19941995 collection.log(ERC20Events::Transfer {1996 from: *owner.as_eth(),1997 to: *recipient.as_eth(),1998 value: value.into(),1999 })?;2000 Self::deposit_event(RawEvent::Transfer(2001 collection.id,2002 1,2003 owner.clone(),2004 recipient.clone(),2005 value,2006 ));20072008 Ok(())2009 }20102011 fn transfer_refungible(2012 collection: &CollectionHandle<T>,2013 item_id: TokenId,2014 value: u128,2015 owner: T::CrossAccountId,2016 new_owner: T::CrossAccountId,2017 ) -> DispatchResult {2018 let collection_id = collection.id;2019 let full_item = <ReFungibleItemList<T>>::get(collection_id, item_id)2020 .ok_or(Error::<T>::TokenNotFound)?;20212022 let item = full_item2023 .owner2024 .iter()2025 .find(|i| i.owner == owner)2026 .ok_or(Error::<T>::TokenNotFound)?;2027 let amount = item.fraction;20282029 ensure!(amount >= value, Error::<T>::TokenValueTooLow);20302031 // update balance2032 let balance_old_owner = <Balance<T>>::get(collection_id, item.owner.as_sub())2033 .checked_sub(value)2034 .ok_or(Error::<T>::NumOverflow)?;2035 <Balance<T>>::insert(collection_id, item.owner.as_sub(), balance_old_owner);20362037 let balance_new_owner = <Balance<T>>::get(collection_id, new_owner.as_sub())2038 .checked_add(value)2039 .ok_or(Error::<T>::NumOverflow)?;2040 <Balance<T>>::insert(collection_id, new_owner.as_sub(), balance_new_owner);20412042 let old_owner = item.owner.clone();2043 let new_owner_has_account = full_item.owner.iter().any(|i| i.owner == new_owner);20442045 let mut new_full_item = full_item.clone();2046 // transfer2047 if amount == value && !new_owner_has_account {2048 // change owner2049 // new owner do not have account2050 new_full_item2051 .owner2052 .iter_mut()2053 .find(|i| i.owner == owner)2054 .expect("old owner does present in refungible")2055 .owner = new_owner.clone();2056 <ReFungibleItemList<T>>::insert(collection_id, item_id, new_full_item);20572058 // update index collection2059 Self::move_token_index(collection_id, item_id, &old_owner, &new_owner)?;2060 } else {2061 new_full_item2062 .owner2063 .iter_mut()2064 .find(|i| i.owner == owner)2065 .expect("old owner does present in refungible")2066 .fraction -= value;20672068 // separate amount2069 if new_owner_has_account {2070 // new owner has account2071 new_full_item2072 .owner2073 .iter_mut()2074 .find(|i| i.owner == new_owner)2075 .expect("new owner has account")2076 .fraction += value;2077 } else {2078 // new owner do not have account2079 new_full_item.owner.push(Ownership {2080 owner: new_owner.clone(),2081 fraction: value,2082 });2083 Self::add_token_index(collection_id, item_id, &new_owner)?;2084 }20852086 <ReFungibleItemList<T>>::insert(collection_id, item_id, new_full_item);2087 }20882089 Self::deposit_event(RawEvent::Transfer(2090 collection.id,2091 item_id,2092 owner,2093 new_owner,2094 amount,2095 ));20962097 Ok(())2098 }20992100 fn transfer_nft(2101 collection: &CollectionHandle<T>,2102 item_id: TokenId,2103 sender: T::CrossAccountId,2104 new_owner: T::CrossAccountId,2105 ) -> DispatchResult {2106 let collection_id = collection.id;2107 let mut item =2108 <NftItemList<T>>::get(collection_id, item_id).ok_or(Error::<T>::TokenNotFound)?;21092110 ensure!(sender == item.owner, Error::<T>::MustBeTokenOwner);21112112 // update balance2113 let balance_old_owner = <Balance<T>>::get(collection_id, item.owner.as_sub())2114 .checked_sub(1)2115 .ok_or(Error::<T>::NumOverflow)?;2116 <Balance<T>>::insert(collection_id, item.owner.as_sub(), balance_old_owner);21172118 let balance_new_owner = <Balance<T>>::get(collection_id, new_owner.as_sub())2119 .checked_add(1)2120 .ok_or(Error::<T>::NumOverflow)?;2121 <Balance<T>>::insert(collection_id, new_owner.as_sub(), balance_new_owner);21222123 // change owner2124 let old_owner = item.owner.clone();2125 item.owner = new_owner.clone();2126 <NftItemList<T>>::insert(collection_id, item_id, item);21272128 // update index collection2129 Self::move_token_index(collection_id, item_id, &old_owner, &new_owner)?;21302131 collection.log(ERC721Events::Transfer {2132 from: *sender.as_eth(),2133 to: *new_owner.as_eth(),2134 token_id: item_id.into(),2135 })?;2136 Self::deposit_event(RawEvent::Transfer(2137 collection.id,2138 item_id,2139 sender,2140 new_owner,2141 1,2142 ));21432144 Ok(())2145 }21462147 fn set_re_fungible_variable_data(2148 collection: &CollectionHandle<T>,2149 item_id: TokenId,2150 data: Vec<u8>,2151 ) -> DispatchResult {2152 let collection_id = collection.id;2153 let mut item = <ReFungibleItemList<T>>::get(collection_id, item_id)2154 .ok_or(Error::<T>::TokenNotFound)?;21552156 item.variable_data = data;21572158 <ReFungibleItemList<T>>::insert(collection_id, item_id, item);21592160 Ok(())2161 }21622163 fn set_nft_variable_data(2164 collection: &CollectionHandle<T>,2165 item_id: TokenId,2166 data: Vec<u8>,2167 ) -> DispatchResult {2168 let collection_id = collection.id;2169 let mut item =2170 <NftItemList<T>>::get(collection_id, item_id).ok_or(Error::<T>::TokenNotFound)?;21712172 item.variable_data = data;21732174 <NftItemList<T>>::insert(collection_id, item_id, item);21752176 Ok(())2177 }21782179 #[allow(dead_code)]2180 fn init_collection(item: &Collection<T>) {2181 // check params2182 assert!(2183 item.decimal_points <= MAX_DECIMAL_POINTS,2184 "decimal_points parameter must be lower than MAX_DECIMAL_POINTS"2185 );2186 assert!(2187 item.name.len() <= 64,2188 "Collection name can not be longer than 63 char"2189 );2190 assert!(2191 item.name.len() <= 256,2192 "Collection description can not be longer than 255 char"2193 );2194 assert!(2195 item.token_prefix.len() <= 16,2196 "Token prefix can not be longer than 15 char"2197 );21982199 // Generate next collection ID2200 let next_id = CreatedCollectionCount::get().checked_add(1).unwrap();22012202 CreatedCollectionCount::put(next_id);2203 }22042205 #[allow(dead_code)]2206 fn init_nft_token(collection_id: CollectionId, item: &NftItemType<T::CrossAccountId>) {2207 let current_index = <ItemListIndex>::get(collection_id).checked_add(1).unwrap();22082209 Self::add_token_index(collection_id, current_index, &item.owner).unwrap();22102211 <ItemListIndex>::insert(collection_id, current_index);22122213 // Update balance2214 let new_balance = <Balance<T>>::get(collection_id, item.owner.as_sub())2215 .checked_add(1)2216 .unwrap();2217 <Balance<T>>::insert(collection_id, item.owner.as_sub(), new_balance);2218 }22192220 #[allow(dead_code)]2221 fn init_fungible_token(2222 collection_id: CollectionId,2223 owner: &T::CrossAccountId,2224 item: &FungibleItemType,2225 ) {2226 let current_index = <ItemListIndex>::get(collection_id).checked_add(1).unwrap();22272228 Self::add_token_index(collection_id, current_index, owner).unwrap();22292230 <ItemListIndex>::insert(collection_id, current_index);22312232 // Update balance2233 let new_balance = <Balance<T>>::get(collection_id, owner.as_sub())2234 .checked_add(item.value)2235 .unwrap();2236 <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);2237 }22382239 #[allow(dead_code)]2240 fn init_refungible_token(2241 collection_id: CollectionId,2242 item: &ReFungibleItemType<T::CrossAccountId>,2243 ) {2244 let current_index = <ItemListIndex>::get(collection_id).checked_add(1).unwrap();22452246 let value = item.owner.first().unwrap().fraction;2247 let owner = item.owner.first().unwrap().owner.clone();22482249 Self::add_token_index(collection_id, current_index, &owner).unwrap();22502251 <ItemListIndex>::insert(collection_id, current_index);22522253 // Update balance2254 let new_balance = <Balance<T>>::get(collection_id, &owner.as_sub())2255 .checked_add(value)2256 .unwrap();2257 <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);2258 }22592260 fn add_token_index(2261 collection_id: CollectionId,2262 item_index: TokenId,2263 owner: &T::CrossAccountId,2264 ) -> DispatchResult {2265 // add to account limit2266 if <AccountItemCount<T>>::contains_key(owner.as_sub()) {2267 // bound Owned tokens by a single address2268 let count = <AccountItemCount<T>>::get(owner.as_sub());2269 ensure!(2270 count < ACCOUNT_TOKEN_OWNERSHIP_LIMIT,2271 Error::<T>::AddressOwnershipLimitExceeded2272 );22732274 <AccountItemCount<T>>::insert(2275 owner.as_sub(),2276 count.checked_add(1).ok_or(Error::<T>::NumOverflow)?,2277 );2278 } else {2279 <AccountItemCount<T>>::insert(owner.as_sub(), 1);2280 }22812282 let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner.as_sub());2283 if list_exists {2284 let mut list = <AddressTokens<T>>::get(collection_id, owner.as_sub());2285 let item_contains = list.contains(&item_index.clone());22862287 if !item_contains {2288 list.push(item_index);2289 }22902291 <AddressTokens<T>>::insert(collection_id, owner.as_sub(), list);2292 } else {2293 let itm = vec![item_index];2294 <AddressTokens<T>>::insert(collection_id, owner.as_sub(), itm);2295 }22962297 Ok(())2298 }22992300 fn remove_token_index(2301 collection_id: CollectionId,2302 item_index: TokenId,2303 owner: &T::CrossAccountId,2304 ) -> DispatchResult {2305 // update counter2306 <AccountItemCount<T>>::insert(2307 owner.as_sub(),2308 <AccountItemCount<T>>::get(owner.as_sub())2309 .checked_sub(1)2310 .ok_or(Error::<T>::NumOverflow)?,2311 );23122313 let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner.as_sub());2314 if list_exists {2315 let mut list = <AddressTokens<T>>::get(collection_id, owner.as_sub());2316 let item_contains = list.contains(&item_index.clone());23172318 if item_contains {2319 list.retain(|&item| item != item_index);2320 <AddressTokens<T>>::insert(collection_id, owner.as_sub(), list);2321 }2322 }23232324 Ok(())2325 }23262327 fn move_token_index(2328 collection_id: CollectionId,2329 item_index: TokenId,2330 old_owner: &T::CrossAccountId,2331 new_owner: &T::CrossAccountId,2332 ) -> DispatchResult {2333 Self::remove_token_index(collection_id, item_index, old_owner)?;2334 Self::add_token_index(collection_id, item_index, new_owner)?;23352336 Ok(())2337 }2338}23392340sp_api::decl_runtime_apis! {2341 pub trait NftApi {2342 /// Used for ethereum integration2343 fn eth_contract_code(account: H160) -> Option<Vec<u8>>;2344 }2345}tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -4,9 +4,9 @@
"description": "Substrate Nft tests",
"main": "",
"devDependencies": {
- "@polkadot/dev": "0.62.43",
- "@polkadot/ts": "0.3.89",
- "@polkadot/typegen": "5.0.1",
+ "@polkadot/dev": "0.62.60",
+ "@polkadot/ts": "0.4.4",
+ "@polkadot/typegen": "5.5.1",
"@types/chai": "^4.2.17",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.2.2",
@@ -66,8 +66,9 @@
"license": "SEE LICENSE IN ../LICENSE",
"homepage": "",
"dependencies": {
- "@polkadot/api": "5.0.1",
- "@polkadot/api-contract": "5.0.1",
+ "@polkadot/api": "5.5.1",
+ "@polkadot/api-contract": "5.5.1",
+ "@polkadot/util-crypto": "^7.2.1",
"bignumber.js": "^9.0.1",
"chai-as-promised": "^7.1.1",
"solc": "^0.8.6",
tests/src/eth/base.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/base.test.ts
@@ -0,0 +1,22 @@
+
+import { createEthAccount, createEthAccountWithBalance, deployFlipper, ethBalanceViaSub, GAS_ARGS, itWeb3, recordEthFee } from './util/helpers';
+import { expect } from 'chai';
+import { UNIQUE } from '../util/helpers';
+
+describe('Contract calls', () => {
+ itWeb3('Call of simple contract fee is less than 0.2 UNQ', async ({ web3, api }) => {
+ const deployer = await createEthAccountWithBalance(api, web3);
+ const flipper = await deployFlipper(web3 as any, deployer);
+
+ const cost = await recordEthFee(api, deployer, () => flipper.methods.flip().send({from: deployer}));
+ expect(cost < BigInt(0.2 * Number(UNIQUE))).to.be.true;
+ });
+
+ itWeb3('Balance transfer fee is less than 0.2 UNQ', async ({ web3, api }) => {
+ const userA = await createEthAccountWithBalance(api, web3);
+ const userB = createEthAccount(web3);
+
+ const cost = await recordEthFee(api, userA, () => web3.eth.sendTransaction({ from: userA, to: userB, value: '1000000', ...GAS_ARGS }));
+ expect(cost - await ethBalanceViaSub(api, userB) < BigInt(0.2 * Number(UNIQUE))).to.be.true;
+ });
+});
\ No newline at end of file
tests/src/eth/fungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/fungible.test.ts
+++ b/tests/src/eth/fungible.test.ts
@@ -4,8 +4,8 @@
//
import privateKey from '../substrate/privateKey';
-import { approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess } from '../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
+import { approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE } from '../util/helpers';
+import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
import fungibleAbi from './fungibleAbi.json';
import { expect } from 'chai';
@@ -192,6 +192,64 @@
});
});
+describe('Fungible: Fees', () => {
+ itWeb3('approve() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: { type: 'Fungible', decimalPoints: 0 },
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const spender = createEthAccount(web3);
+
+ await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, 100).send({ from: owner }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+
+ itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: {type: 'Fungible', decimalPoints: 0},
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const spender = await createEthAccountWithBalance(api, web3);
+
+ await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ await contract.methods.approve(spender, 100).send({ from: owner });
+
+ const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, 100).send({ from: spender }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+
+ itWeb3('transfer() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: { type: 'Fungible', decimalPoints: 0 },
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const receiver = createEthAccount(web3);
+
+ await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, 100).send({ from: owner }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+});
+
describe('Fungible: Substrate calls', () => {
itWeb3('Events emitted for approve()', async ({ web3 }) => {
const collection = await createCollectionExpectSuccess({
tests/src/eth/helpersSmoke.test.tsdiffbeforeafterboth--- a/tests/src/eth/helpersSmoke.test.ts
+++ b/tests/src/eth/helpersSmoke.test.ts
@@ -1,26 +1,24 @@
import { expect } from 'chai';
import waitNewBlocks from '../substrate/wait-new-blocks';
-import { createEthAccountWithBalance, deployFlipper, itWeb3, usingWeb3Http, contractHelpers } from './util/helpers';
+import { createEthAccountWithBalance, deployFlipper, itWeb3, contractHelpers } from './util/helpers';
-itWeb3('Contract owner is recorded', async ({ api, web3 }) => {
- await usingWeb3Http(async web3Http => {
- const owner = await createEthAccountWithBalance(api, web3Http);
+describe('Helpers sanity check', () => {
+ itWeb3('Contract owner is recorded', async ({ api, web3 }) => {
+ const owner = await createEthAccountWithBalance(api, web3);
- const flipper = await deployFlipper(web3Http, owner);
+ const flipper = await deployFlipper(web3, owner);
await waitNewBlocks(api, 1);
expect(await contractHelpers(web3, owner).methods.contractOwner(flipper.options.address).call()).to.be.equal(owner);
});
-});
-itWeb3('Flipper is working', async({api}) => {
- await usingWeb3Http(async web3Http => {
- const owner = await createEthAccountWithBalance(api, web3Http);
- const flipper = await deployFlipper(web3Http, owner);
+ itWeb3('Flipper is working', async ({ api, web3 }) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const flipper = await deployFlipper(web3, owner);
await waitNewBlocks(api, 1);
expect(await flipper.methods.getValue().call()).to.be.false;
- await flipper.methods.flip().send({from: owner});
+ await flipper.methods.flip().send({ from: owner });
await waitNewBlocks(api, 1);
expect(await flipper.methods.getValue().call()).to.be.true;
});
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -4,8 +4,9 @@
//
import privateKey from '../substrate/privateKey';
-import { approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess } from '../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
+import { approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE } from '../util/helpers';
+import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
+import { evmToAddress } from '@polkadot/util-crypto';
import nonFungibleAbi from './nonFungibleAbi.json';
import { expect } from 'chai';
import waitNewBlocks from '../substrate/wait-new-blocks';
@@ -265,6 +266,64 @@
});
});
+describe('NFT: Fees', () => {
+ itWeb3('approve() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: { type: 'NFT' },
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const spender = createEthAccount(web3);
+
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, tokenId).send({ from: owner }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+
+ itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: { type: 'NFT' },
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const spender = await createEthAccountWithBalance(api, web3);
+
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ await contract.methods.approve(spender, tokenId).send({ from: owner });
+
+ const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, tokenId).send({ from: spender }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+
+ itWeb3('transfer() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ const collection = await createCollectionExpectSuccess({
+ mode: { type: 'NFT' },
+ });
+ const alice = privateKey('//Alice');
+
+ const owner = await createEthAccountWithBalance(api, web3);
+ const receiver = createEthAccount(web3);
+
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+
+ const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, tokenId).send({ from: owner }));
+ expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ });
+});
+
describe('NFT: Substrate calls', () => {
itWeb3('Events emitted for mint()', async ({ web3 }) => {
const collection = await createCollectionExpectSuccess({
tests/src/eth/util/helpers.tsdiffbeforeafterboth--- a/tests/src/eth/util/helpers.ts
+++ b/tests/src/eth/util/helpers.ts
@@ -17,6 +17,8 @@
import config from '../../config';
import privateKey from '../../substrate/privateKey';
import contractHelpersAbi from './contractHelpersAbi.json';
+import getBalance from '../../substrate/get-balance';
+import waitNewBlocks from '../../substrate/wait-new-blocks';
export const GAS_ARGS = { gas: 0x1000000, gasPrice: '0x01' };
@@ -37,12 +39,12 @@
}
}
-type Web3HttpMarker = {web3Http: true};
-
-export async function usingWeb3Http<T>(cb: (web3: Web3 & Web3HttpMarker) => Promise<T> | T): Promise<T> {
+/**
+ * @deprecated Web3 update solved issue with deployment over ws provider
+ */
+export async function usingWeb3Http<T>(cb: (web3: Web3) => Promise<T> | T): Promise<T> {
const provider = new Web3.providers.HttpProvider(config.frontierUrl);
- const web3: Web3 & Web3HttpMarker = new Web3(provider) as any;
- web3.web3Http = true;
+ const web3: Web3 = new Web3(provider);
return await cb(web3);
}
@@ -175,7 +177,7 @@
};
}
-export async function deployFlipper(web3: Web3 & Web3HttpMarker, deployer: string) {
+export async function deployFlipper(web3: Web3, deployer: string) {
const compiled = compileContract('Flipper', `
contract Flipper {
bool value = false;
@@ -232,4 +234,22 @@
export function contractHelpers(web3: Web3, caller: string) {
return new web3.eth.Contract(contractHelpersAbi as any, '0x842899ECF380553E8a4de75bF534cdf6fBF64049', {from: caller, ...GAS_ARGS});
+}
+
+export async function ethBalanceViaSub(api: ApiPromise, address: string): Promise<bigint> {
+ return (await getBalance(api, [evmToAddress(address)]))[0];
+}
+
+export async function recordEthFee(api: ApiPromise, user: string, call: () => Promise<any>): Promise<bigint> {
+ const before = await ethBalanceViaSub(api, user);
+
+ await call();
+ await waitNewBlocks(api, 1);
+
+ const after = await ethBalanceViaSub(api, user);
+
+ // Can't use .to.be.less, because chai doesn't supports bigint
+ expect(after < before).to.be.true;
+
+ return before - after;
}
\ No newline at end of file
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -53,6 +53,11 @@
export const U128_MAX = (1n << 128n) - 1n;
+const MICROUNIQUE = 1_000_000_000n;
+const MILLIUNIQUE = 1_000n * MICROUNIQUE;
+const CENTIUNIQUE = 10n * MILLIUNIQUE;
+export const UNIQUE = 100n * CENTIUNIQUE;
+
type GenericResult = {
success: boolean,
};
tests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@babel/cli@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.5.tgz#9551b194f02360729de6060785bbdcce52c69f0a"
- integrity sha512-poegjhRvXHWO0EAsnYajwYZuqcz7gyfxwfaecUESxDujrqOivf3zrjFbub8IJkrqEaz3fvJWh001EzxBub54fg==
+"@babel/cli@^7.14.8":
+ version "7.14.8"
+ resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.8.tgz#fac73c0e2328a8af9fd3560c06b096bfa3730933"
+ integrity sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg==
dependencies:
commander "^4.0.1"
convert-source-map "^1.1.0"
@@ -42,7 +42,12 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08"
integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==
-"@babel/core@^7.1.0", "@babel/core@^7.14.6", "@babel/core@^7.7.2", "@babel/core@^7.7.5":
+"@babel/compat-data@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
+ integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
+
+"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5":
version "7.14.6"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab"
integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==
@@ -63,6 +68,27 @@
semver "^6.3.0"
source-map "^0.5.0"
+"@babel/core@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8"
+ integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/generator" "^7.15.0"
+ "@babel/helper-compilation-targets" "^7.15.0"
+ "@babel/helper-module-transforms" "^7.15.0"
+ "@babel/helpers" "^7.14.8"
+ "@babel/parser" "^7.15.0"
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.15.0"
+ "@babel/types" "^7.15.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
+ source-map "^0.5.0"
+
"@babel/generator@^7.14.5", "@babel/generator@^7.7.2":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785"
@@ -72,6 +98,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15"
+ integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==
+ dependencies:
+ "@babel/types" "^7.15.0"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61"
@@ -97,7 +132,17 @@
browserslist "^4.16.6"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6":
+"@babel/helper-compilation-targets@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818"
+ integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==
+ dependencies:
+ "@babel/compat-data" "^7.15.0"
+ "@babel/helper-validator-option" "^7.14.5"
+ browserslist "^4.16.6"
+ semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.14.5":
version "7.14.6"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542"
integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==
@@ -109,6 +154,18 @@
"@babel/helper-replace-supers" "^7.14.5"
"@babel/helper-split-export-declaration" "^7.14.5"
+"@babel/helper-create-class-features-plugin@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7"
+ integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-member-expression-to-functions" "^7.15.0"
+ "@babel/helper-optimise-call-expression" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.15.0"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+
"@babel/helper-create-regexp-features-plugin@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
@@ -168,6 +225,13 @@
dependencies:
"@babel/types" "^7.14.5"
+"@babel/helper-member-expression-to-functions@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b"
+ integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==
+ dependencies:
+ "@babel/types" "^7.15.0"
+
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
@@ -189,6 +253,20 @@
"@babel/traverse" "^7.14.5"
"@babel/types" "^7.14.5"
+"@babel/helper-module-transforms@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08"
+ integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.15.0"
+ "@babel/helper-simple-access" "^7.14.8"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+ "@babel/helper-validator-identifier" "^7.14.9"
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.15.0"
+ "@babel/types" "^7.15.0"
+
"@babel/helper-optimise-call-expression@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"
@@ -220,6 +298,16 @@
"@babel/traverse" "^7.14.5"
"@babel/types" "^7.14.5"
+"@babel/helper-replace-supers@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4"
+ integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.15.0"
+ "@babel/helper-optimise-call-expression" "^7.14.5"
+ "@babel/traverse" "^7.15.0"
+ "@babel/types" "^7.15.0"
+
"@babel/helper-simple-access@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4"
@@ -227,6 +315,13 @@
dependencies:
"@babel/types" "^7.14.5"
+"@babel/helper-simple-access@^7.14.8":
+ version "7.14.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924"
+ integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==
+ dependencies:
+ "@babel/types" "^7.14.8"
+
"@babel/helper-skip-transparent-expression-wrappers@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4"
@@ -246,6 +341,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+"@babel/helper-validator-identifier@^7.14.9":
+ version "7.14.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
+ integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+
"@babel/helper-validator-option@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
@@ -270,6 +370,15 @@
"@babel/traverse" "^7.14.5"
"@babel/types" "^7.14.5"
+"@babel/helpers@^7.14.8":
+ version "7.15.3"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357"
+ integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==
+ dependencies:
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.15.0"
+ "@babel/types" "^7.15.0"
+
"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
@@ -284,6 +393,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2"
integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==
+"@babel/parser@^7.15.0":
+ version "7.15.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862"
+ integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":
version "7.14.5"
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"
@@ -293,10 +407,10 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
-"@babel/plugin-proposal-async-generator-functions@^7.14.7":
- version "7.14.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace"
- integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==
+"@babel/plugin-proposal-async-generator-functions@^7.14.9":
+ version "7.14.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a"
+ integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-remap-async-to-generator" "^7.14.5"
@@ -577,10 +691,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-classes@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf"
- integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==
+"@babel/plugin-transform-classes@^7.14.9":
+ version "7.14.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f"
+ integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==
dependencies:
"@babel/helper-annotate-as-pure" "^7.14.5"
"@babel/helper-function-name" "^7.14.5"
@@ -665,14 +779,14 @@
"@babel/helper-plugin-utils" "^7.14.5"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97"
- integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==
+"@babel/plugin-transform-modules-commonjs@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281"
+ integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==
dependencies:
- "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helper-module-transforms" "^7.15.0"
"@babel/helper-plugin-utils" "^7.14.5"
- "@babel/helper-simple-access" "^7.14.5"
+ "@babel/helper-simple-access" "^7.14.8"
babel-plugin-dynamic-import-node "^2.3.3"
"@babel/plugin-transform-modules-systemjs@^7.14.5":
@@ -694,10 +808,10 @@
"@babel/helper-module-transforms" "^7.14.5"
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7":
- version "7.14.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e"
- integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9":
+ version "7.14.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2"
+ integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
@@ -777,10 +891,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-runtime@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523"
- integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==
+"@babel/plugin-transform-runtime@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3"
+ integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==
dependencies:
"@babel/helper-module-imports" "^7.14.5"
"@babel/helper-plugin-utils" "^7.14.5"
@@ -825,12 +939,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-typescript@^7.14.5":
- version "7.14.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c"
- integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==
+"@babel/plugin-transform-typescript@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.0.tgz#553f230b9d5385018716586fc48db10dd228eb7e"
+ integrity sha512-WIIEazmngMEEHDaPTx0IZY48SaAmjVWe3TRSX7cmJXn0bEv9midFzAjxiruOWYIVf5iQ10vFx7ASDpgEO08L5w==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.14.6"
+ "@babel/helper-create-class-features-plugin" "^7.15.0"
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-typescript" "^7.14.5"
@@ -849,17 +963,17 @@
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/preset-env@^7.14.7":
- version "7.14.7"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a"
- integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==
+"@babel/preset-env@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464"
+ integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q==
dependencies:
- "@babel/compat-data" "^7.14.7"
- "@babel/helper-compilation-targets" "^7.14.5"
+ "@babel/compat-data" "^7.15.0"
+ "@babel/helper-compilation-targets" "^7.15.0"
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-validator-option" "^7.14.5"
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5"
- "@babel/plugin-proposal-async-generator-functions" "^7.14.7"
+ "@babel/plugin-proposal-async-generator-functions" "^7.14.9"
"@babel/plugin-proposal-class-properties" "^7.14.5"
"@babel/plugin-proposal-class-static-block" "^7.14.5"
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
@@ -892,7 +1006,7 @@
"@babel/plugin-transform-async-to-generator" "^7.14.5"
"@babel/plugin-transform-block-scoped-functions" "^7.14.5"
"@babel/plugin-transform-block-scoping" "^7.14.5"
- "@babel/plugin-transform-classes" "^7.14.5"
+ "@babel/plugin-transform-classes" "^7.14.9"
"@babel/plugin-transform-computed-properties" "^7.14.5"
"@babel/plugin-transform-destructuring" "^7.14.7"
"@babel/plugin-transform-dotall-regex" "^7.14.5"
@@ -903,10 +1017,10 @@
"@babel/plugin-transform-literals" "^7.14.5"
"@babel/plugin-transform-member-expression-literals" "^7.14.5"
"@babel/plugin-transform-modules-amd" "^7.14.5"
- "@babel/plugin-transform-modules-commonjs" "^7.14.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.15.0"
"@babel/plugin-transform-modules-systemjs" "^7.14.5"
"@babel/plugin-transform-modules-umd" "^7.14.5"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9"
"@babel/plugin-transform-new-target" "^7.14.5"
"@babel/plugin-transform-object-super" "^7.14.5"
"@babel/plugin-transform-parameters" "^7.14.5"
@@ -921,11 +1035,11 @@
"@babel/plugin-transform-unicode-escapes" "^7.14.5"
"@babel/plugin-transform-unicode-regex" "^7.14.5"
"@babel/preset-modules" "^0.1.4"
- "@babel/types" "^7.14.5"
+ "@babel/types" "^7.15.0"
babel-plugin-polyfill-corejs2 "^0.2.2"
babel-plugin-polyfill-corejs3 "^0.2.2"
babel-plugin-polyfill-regenerator "^0.2.2"
- core-js-compat "^3.15.0"
+ core-js-compat "^3.16.0"
semver "^6.3.0"
"@babel/preset-modules@^0.1.4":
@@ -951,19 +1065,19 @@
"@babel/plugin-transform-react-jsx-development" "^7.14.5"
"@babel/plugin-transform-react-pure-annotations" "^7.14.5"
-"@babel/preset-typescript@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0"
- integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==
+"@babel/preset-typescript@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz#e8fca638a1a0f64f14e1119f7fe4500277840945"
+ integrity sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-validator-option" "^7.14.5"
- "@babel/plugin-transform-typescript" "^7.14.5"
+ "@babel/plugin-transform-typescript" "^7.15.0"
-"@babel/register@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.14.5.tgz#d0eac615065d9c2f1995842f85d6e56c345f3233"
- integrity sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg==
+"@babel/register@^7.15.3":
+ version "7.15.3"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.15.3.tgz#6b40a549e06ec06c885b2ec42c3dd711f55fe752"
+ integrity sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==
dependencies:
clone-deep "^4.0.1"
find-cache-dir "^2.0.0"
@@ -978,6 +1092,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.15.3":
+ version "7.15.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b"
+ integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/template@^7.14.5", "@babel/template@^7.3.3":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
@@ -1002,6 +1123,21 @@
debug "^4.1.0"
globals "^11.1.0"
+"@babel/traverse@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98"
+ integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/generator" "^7.15.0"
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-hoist-variables" "^7.14.5"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+ "@babel/parser" "^7.15.0"
+ "@babel/types" "^7.15.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
"@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":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff"
@@ -1010,26 +1146,19 @@
"@babel/helper-validator-identifier" "^7.14.5"
to-fast-properties "^2.0.0"
+"@babel/types@^7.14.8", "@babel/types@^7.15.0":
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
+ integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.14.9"
+ to-fast-properties "^2.0.0"
+
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@eslint/eslintrc@^0.4.2":
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
- integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
- dependencies:
- ajv "^6.12.4"
- debug "^4.1.1"
- espree "^7.3.0"
- globals "^13.9.0"
- ignore "^4.0.6"
- import-fresh "^3.2.1"
- js-yaml "^3.13.1"
- minimatch "^3.0.4"
- strip-json-comments "^3.1.1"
-
"@eslint/eslintrc@^0.4.3":
version "0.4.3"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@@ -1251,94 +1380,94 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-"@jest/console@^27.0.2":
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz#b8eeff8f21ac51d224c851e1729d2630c18631e6"
- integrity sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==
+"@jest/console@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f"
+ integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^27.0.2"
- jest-util "^27.0.2"
+ jest-message-util "^27.0.6"
+ jest-util "^27.0.6"
slash "^3.0.0"
-"@jest/core@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.5.tgz#59e9e69e7374d65dbb22e3fc1bd52e80991eae72"
- integrity sha512-g73//jF0VwsOIrWUC9Cqg03lU3QoAMFxVjsm6n6yNmwZcQPN/o8w+gLWODw5VfKNFZT38otXHWxc6b8eGDUpEA==
+"@jest/core@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1"
+ integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==
dependencies:
- "@jest/console" "^27.0.2"
- "@jest/reporters" "^27.0.5"
- "@jest/test-result" "^27.0.2"
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/console" "^27.0.6"
+ "@jest/reporters" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.8.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-changed-files "^27.0.2"
- jest-config "^27.0.5"
- jest-haste-map "^27.0.5"
- jest-message-util "^27.0.2"
- jest-regex-util "^27.0.1"
- jest-resolve "^27.0.5"
- jest-resolve-dependencies "^27.0.5"
- jest-runner "^27.0.5"
- jest-runtime "^27.0.5"
- jest-snapshot "^27.0.5"
- jest-util "^27.0.2"
- jest-validate "^27.0.2"
- jest-watcher "^27.0.2"
+ jest-changed-files "^27.0.6"
+ jest-config "^27.0.6"
+ jest-haste-map "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-regex-util "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-resolve-dependencies "^27.0.6"
+ jest-runner "^27.0.6"
+ jest-runtime "^27.0.6"
+ jest-snapshot "^27.0.6"
+ jest-util "^27.0.6"
+ jest-validate "^27.0.6"
+ jest-watcher "^27.0.6"
micromatch "^4.0.4"
p-each-series "^2.1.0"
rimraf "^3.0.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.5.tgz#a294ad4acda2e250f789fb98dc667aad33d3adc9"
- integrity sha512-IAkJPOT7bqn0GiX5LPio6/e1YpcmLbrd8O5EFYpAOZ6V+9xJDsXjdgN2vgv9WOKIs/uA1kf5WeD96HhlBYO+FA==
+"@jest/environment@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2"
+ integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==
dependencies:
- "@jest/fake-timers" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/fake-timers" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
- jest-mock "^27.0.3"
+ jest-mock "^27.0.6"
-"@jest/fake-timers@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.5.tgz#304d5aedadf4c75cff3696995460b39d6c6e72f6"
- integrity sha512-d6Tyf7iDoKqeUdwUKrOBV/GvEZRF67m7lpuWI0+SCD9D3aaejiOQZxAOxwH2EH/W18gnfYaBPLi0VeTGBHtQBg==
+"@jest/fake-timers@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df"
+ integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@sinonjs/fake-timers" "^7.0.2"
"@types/node" "*"
- jest-message-util "^27.0.2"
- jest-mock "^27.0.3"
- jest-util "^27.0.2"
+ jest-message-util "^27.0.6"
+ jest-mock "^27.0.6"
+ jest-util "^27.0.6"
-"@jest/globals@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.5.tgz#f63b8bfa6ea3716f8df50f6a604b5c15b36ffd20"
- integrity sha512-qqKyjDXUaZwDuccpbMMKCCMBftvrbXzigtIsikAH/9ca+kaae8InP2MDf+Y/PdCSMuAsSpHS6q6M25irBBUh+Q==
+"@jest/globals@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82"
+ integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==
dependencies:
- "@jest/environment" "^27.0.5"
- "@jest/types" "^27.0.2"
- expect "^27.0.2"
+ "@jest/environment" "^27.0.6"
+ "@jest/types" "^27.0.6"
+ expect "^27.0.6"
-"@jest/reporters@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.5.tgz#cd730b77d9667b8ff700ad66d4edc293bb09716a"
- integrity sha512-4uNg5+0eIfRafnpgu3jCZws3NNcFzhu5JdRd1mKQ4/53+vkIqwB6vfZ4gn5BdGqOaLtYhlOsPaL5ATkKzyBrJw==
+"@jest/reporters@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00"
+ integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^27.0.2"
- "@jest/test-result" "^27.0.2"
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/console" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
@@ -1349,70 +1478,70 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.0.2"
- jest-haste-map "^27.0.5"
- jest-resolve "^27.0.5"
- jest-util "^27.0.2"
- jest-worker "^27.0.2"
+ jest-haste-map "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-util "^27.0.6"
+ jest-worker "^27.0.6"
slash "^3.0.0"
source-map "^0.6.0"
string-length "^4.0.1"
terminal-link "^2.0.0"
v8-to-istanbul "^8.0.0"
-"@jest/source-map@^27.0.1":
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz#2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4"
- integrity sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==
+"@jest/source-map@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f"
+ integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==
dependencies:
callsites "^3.0.0"
graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/test-result@^27.0.2":
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz#0451049e32ceb609b636004ccc27c8fa22263f10"
- integrity sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==
+"@jest/test-result@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051"
+ integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==
dependencies:
- "@jest/console" "^27.0.2"
- "@jest/types" "^27.0.2"
+ "@jest/console" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.5.tgz#c58b21db49afc36c0e3921d7ddf1fb7954abfded"
- integrity sha512-opztnGs+cXzZ5txFG2+omBaV5ge/0yuJNKbhE3DREMiXE0YxBuzyEa6pNv3kk2JuucIlH2Xvgmn9kEEHSNt/SA==
+"@jest/test-sequencer@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b"
+ integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==
dependencies:
- "@jest/test-result" "^27.0.2"
+ "@jest/test-result" "^27.0.6"
graceful-fs "^4.2.4"
- jest-haste-map "^27.0.5"
- jest-runtime "^27.0.5"
+ jest-haste-map "^27.0.6"
+ jest-runtime "^27.0.6"
-"@jest/transform@^27.0.5":
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.5.tgz#2dcb78953708af713941ac845b06078bc74ed873"
- integrity sha512-lBD6OwKXSc6JJECBNk4mVxtSVuJSBsQrJ9WCBisfJs7EZuYq4K6vM9HmoB7hmPiLIDGeyaerw3feBV/bC4z8tg==
+"@jest/transform@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95"
+ integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
babel-plugin-istanbul "^6.0.0"
chalk "^4.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.2.4"
- jest-haste-map "^27.0.5"
- jest-regex-util "^27.0.1"
- jest-util "^27.0.2"
+ jest-haste-map "^27.0.6"
+ jest-regex-util "^27.0.6"
+ jest-util "^27.0.6"
micromatch "^4.0.4"
pirates "^4.0.1"
slash "^3.0.0"
source-map "^0.6.1"
write-file-atomic "^3.0.0"
-"@jest/types@^27.0.2":
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz#e153d6c46bda0f2589f0702b071f9898c7bbd37e"
- integrity sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==
+"@jest/types@^27.0.6":
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b"
+ integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
@@ -1559,54 +1688,54 @@
dependencies:
"@octokit/openapi-types" "^7.3.2"
-"@polkadot/api-contract@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.0.1.tgz#520a7b3cd990a76374b79e12eca5bf629cc565a1"
- integrity sha512-qZ2wnXHDyU2c1/V9GKpbcZKBfVua4YFsU/LHKevZLkJfnGFBgNRdwAuKgVe5h2FCt2W2/pt618WgxG0UDWwjcw==
+"@polkadot/api-contract@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.5.1.tgz#4cdd0d6f4352050c58464d5958bdb779770bd2dc"
+ integrity sha512-/1O1AnpCu+LM2EKhRY83r36blG8KOr0JCVFeSfT0u52tM4wMdLlUy1XV/XTZayuCucdJ6I0pjUudCljm92aiGw==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/api" "5.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
- rxjs "^7.2.0"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/api" "5.5.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/util" "^7.2.1"
+ rxjs "^7.3.0"
-"@polkadot/api-derive@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-5.0.1.tgz#08064c10ed159826ffd07013dcdde1d8b63186a0"
- integrity sha512-JZpH1JVLu3PvX4+A71iDLtNr6LL103dAFou61DxyJF4obyTmS2lzigG3xXqUFShiPDb19ywxQpsE4gAOP6emuQ==
+"@polkadot/api-derive@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-5.5.1.tgz#6fdba748d90024f2fcdeb7827d178ff8d0ad308e"
+ integrity sha512-dkpl3CnroBYAlLx571KoyjI72TqRweWI61z7tzNeR8qwniNyWDEILTErUfzy5jYAO7XrZpW1Gn4WMMH+kEcqZQ==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/api" "5.0.1"
- "@polkadot/rpc-core" "5.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
- "@polkadot/util-crypto" "^7.0.1"
- rxjs "^7.2.0"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/api" "5.5.1"
+ "@polkadot/rpc-core" "5.5.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/util" "^7.2.1"
+ "@polkadot/util-crypto" "^7.2.1"
+ rxjs "^7.3.0"
-"@polkadot/api@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-5.0.1.tgz#9607b53009322f9264f7dcc8705c466bd33aa516"
- integrity sha512-5JDpM2Fjc80gHBju1B/rMBGDfAvY8UiU4XVlivJRk+mTVD3OTwbtTro4nmwJOub05xQCJvD/bnCuxG8eFSoq+Q==
+"@polkadot/api@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-5.5.1.tgz#0298c6d883c2264a68ae93a3b59b98263aed53d3"
+ integrity sha512-GS/MoRc7NB61jz7TzwX0WAA3JS7DSj3xH4ac39LcuPHXu0VMQw6LgT/5KIzYxTx+79Iwth62bKelW/Mgk23wUg==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/api-derive" "5.0.1"
- "@polkadot/keyring" "^7.0.1"
- "@polkadot/rpc-core" "5.0.1"
- "@polkadot/rpc-provider" "5.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/types-known" "5.0.1"
- "@polkadot/util" "^7.0.1"
- "@polkadot/util-crypto" "^7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/api-derive" "5.5.1"
+ "@polkadot/keyring" "^7.2.1"
+ "@polkadot/rpc-core" "5.5.1"
+ "@polkadot/rpc-provider" "5.5.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/types-known" "5.5.1"
+ "@polkadot/util" "^7.2.1"
+ "@polkadot/util-crypto" "^7.2.1"
eventemitter3 "^4.0.7"
- rxjs "^7.2.0"
+ rxjs "^7.3.0"
-"@polkadot/dev@0.62.43":
- version "0.62.43"
- resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.62.43.tgz#567591bf3c38dded4b4c1f3ec8bf3d3198a23b6d"
- integrity sha512-ZSgYUbC6A+WtRSY5nq7yeGYW+wv3g8cds2zndL4GeClIdVHksgEW6+ch3Hx6LMkE3y4q9Kjvs50oHeemBDut4Q==
+"@polkadot/dev@0.62.60":
+ version "0.62.60"
+ resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.62.60.tgz#450007c189a8433d8627bcc1fc01d2ffb1becfc3"
+ integrity sha512-VHZ4d/hhRSNFe0RXp3L/ZcAk1t2JQ1/lsznONAz4I9SZ2pn5kAQrWRF6eukgfQscrlqCH5njDAxwgXe6ODNVRw==
dependencies:
- "@babel/cli" "^7.14.5"
- "@babel/core" "^7.14.6"
+ "@babel/cli" "^7.14.8"
+ "@babel/core" "^7.15.0"
"@babel/plugin-proposal-class-properties" "^7.14.5"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
@@ -1618,28 +1747,34 @@
"@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
"@babel/plugin-transform-regenerator" "^7.14.5"
- "@babel/plugin-transform-runtime" "^7.14.5"
- "@babel/preset-env" "^7.14.7"
+ "@babel/plugin-transform-runtime" "^7.15.0"
+ "@babel/preset-env" "^7.15.0"
"@babel/preset-react" "^7.14.5"
- "@babel/preset-typescript" "^7.14.5"
- "@babel/register" "^7.14.5"
- "@babel/runtime" "^7.14.6"
+ "@babel/preset-typescript" "^7.15.0"
+ "@babel/register" "^7.15.3"
+ "@babel/runtime" "^7.15.3"
+ "@rollup/plugin-alias" "^3.1.5"
+ "@rollup/plugin-commonjs" "^19.0.2"
+ "@rollup/plugin-inject" "^4.0.2"
+ "@rollup/plugin-json" "^4.1.0"
+ "@rollup/plugin-node-resolve" "^13.0.4"
"@rushstack/eslint-patch" "^1.0.6"
- "@typescript-eslint/eslint-plugin" "4.28.0"
- "@typescript-eslint/parser" "4.28.0"
+ "@typescript-eslint/eslint-plugin" "4.29.2"
+ "@typescript-eslint/parser" "4.29.2"
"@vue/component-compiler-utils" "^3.2.2"
- babel-jest "^27.0.5"
+ babel-jest "^27.0.6"
babel-plugin-module-extension-resolver "^1.0.0-rc.2"
babel-plugin-module-resolver "^4.1.0"
- babel-plugin-styled-components "^1.12.0"
- browserslist "^4.16.6"
- chalk "^4.1.1"
- coveralls "^3.1.0"
- eslint "^7.29.0"
+ babel-plugin-styled-components "^1.13.2"
+ browserslist "^4.16.7"
+ chalk "^4.1.2"
+ coveralls "^3.1.1"
+ eslint "^7.32.0"
eslint-config-standard "^16.0.3"
- eslint-import-resolver-node "^0.3.4"
+ eslint-import-resolver-node "^0.3.6"
eslint-plugin-header "^3.1.1"
- eslint-plugin-import "^2.23.4"
+ eslint-plugin-import "^2.24.0"
+ eslint-plugin-import-newlines "^1.1.4"
eslint-plugin-node "^11.1.0"
eslint-plugin-promise "^5.1.0"
eslint-plugin-react "^7.24.0"
@@ -1651,118 +1786,129 @@
gh-release "^6.0.0"
glob "^7.1.7"
glob2base "^0.0.12"
- jest "^27.0.5"
- jest-cli "^27.0.5"
- jest-config "^27.0.5"
- jest-haste-map "^27.0.5"
- jest-resolve "^27.0.5"
+ jest "^27.0.6"
+ jest-cli "^27.0.6"
+ jest-config "^27.0.6"
+ jest-haste-map "^27.0.6"
+ jest-resolve "^27.0.6"
madge "^4.0.2"
minimatch "^3.0.4"
mkdirp "^1.0.4"
- prettier "^2.3.1"
+ prettier "^2.3.2"
rimraf "^3.0.2"
- typescript "^4.3.4"
- yargs "^17.0.1"
+ rollup "^2.56.2"
+ typescript "^4.3.5"
+ yargs "^17.1.1"
-"@polkadot/keyring@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.0.1.tgz#666e903661b98279dc16d512be69f5ace4b58d8d"
- integrity sha512-eSvG8Q4gUTRDFWj2lqTY/9NekGP8dtp+W6WmouKh0DDwHRawaVeDaq6UJYQv6XoBG1i+ZGPvErRQeGMPOn/mUQ==
+"@polkadot/keyring@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.2.1.tgz#5ed8e6c0edc61e3dd99ee647a227b9e3d955e8e6"
+ integrity sha512-WmiTsHKELX16uZWLvebDBckZIAXeJFfbcOM6m/VbMOjSV5C6xIKqiV3232Mn8ZuPKgsOf25Q78/IwJW1Dq53Qg==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/util" "7.0.1"
- "@polkadot/util-crypto" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/util" "7.2.1"
+ "@polkadot/util-crypto" "7.2.1"
-"@polkadot/networks@7.0.1", "@polkadot/networks@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.0.1.tgz#e07c4b88e25711433e76d24fce4c7273c25dd38b"
- integrity sha512-bJSvI7UgEpxmBKS8TMh+I1mfmCMwhClGdSs29kwU+K61IjBTKTt3yQJ/SflYIQV7QftGbz3oMfSkGbQbRHZqvQ==
+"@polkadot/networks@7.2.1", "@polkadot/networks@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.2.1.tgz#20c8d81fba4b48162bf360759d8d54c55d30128b"
+ integrity sha512-YX8oQ7QQ2oq3YowwOiv/C82l849V0ZEzpR26YrPgKSXbYFbasho3Akf0zalndZJZV1Bb8EiOkzGoJ3ffogSPxA==
dependencies:
- "@babel/runtime" "^7.14.6"
+ "@babel/runtime" "^7.15.3"
-"@polkadot/rpc-core@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-5.0.1.tgz#8460287532fe61c31505564df53e92ef6feba875"
- integrity sha512-JMNOVQijjyJZNu9B8CJwIrQzGYzAp03uCBSbqYfzWBFnYVLKh7JmvOlkLnODM8uUYq0gVN4BaDUSPc39GpELAQ==
+"@polkadot/rpc-core@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-5.5.1.tgz#4ce0646becabe7736dfb81eb902e5933158646c8"
+ integrity sha512-hP7a55iSpgZVqxAIpK+v63eV/nD14Tm7C1rUmfKIS6gGJFJf+sQbTmp6d7+fuKxvYfFqBrFLU8IraOhLOQ5W3Q==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/rpc-provider" "5.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
- rxjs "^7.2.0"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/rpc-provider" "5.5.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/util" "^7.2.1"
+ rxjs "^7.3.0"
-"@polkadot/rpc-provider@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-5.0.1.tgz#ef022a123eb9073634b59c6e0f6e1705e96066a5"
- integrity sha512-t+VKhMtQfQVgkZDqYnP/44KlBDmcCVo1/MvJ+DoNd7RUWUIBJt3v71G5gDSNeGMTyvxn0KK0qL4j+Nqr6c4FUQ==
+"@polkadot/rpc-provider@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-5.5.1.tgz#633f4a48605623092fb9017433f2b3cd70cd96bc"
+ integrity sha512-wOCKeeyUa7Dw3nxKkQntnfOO471icdzqT2V7bwloBOo+G2MX8nHImO0mW3QMfJygn4qoARF1PBo1PLbDUEDgog==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
- "@polkadot/util-crypto" "^7.0.1"
- "@polkadot/x-fetch" "^7.0.1"
- "@polkadot/x-global" "^7.0.1"
- "@polkadot/x-ws" "^7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/util" "^7.2.1"
+ "@polkadot/util-crypto" "^7.2.1"
+ "@polkadot/x-fetch" "^7.2.1"
+ "@polkadot/x-global" "^7.2.1"
+ "@polkadot/x-ws" "^7.2.1"
eventemitter3 "^4.0.7"
-"@polkadot/ts@0.3.89":
- version "0.3.89"
- resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.3.89.tgz#c7a704ea284d04fcf4d581f5df156d5945480033"
- integrity sha512-GC0H8wmVKebkieN2MHScjDDonzigIzkjl1Q4V1OhoRcfQbeZZ7vijeiVwP8Hw3wIw4GLKxxXeDrkKPWl/bcaHw==
+"@polkadot/ts@0.4.4":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.4.4.tgz#e86aa47c2bcbc70ac8385b31014c81927c4b0a88"
+ integrity sha512-lzB8lg8GfdJlA7RdeoOJVFopecN4i++JndbUs6jW7AgRz+joeXQIIRomVgCNE52nW1uWpXMELnlvEP812v7sVw==
dependencies:
- "@types/chrome" "^0.0.144"
+ "@types/chrome" "^0.0.145"
-"@polkadot/typegen@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-5.0.1.tgz#718b517f4f1578441911096603577bd0a2a968e0"
- integrity sha512-iFLJoWgIkn+J6MDw3AUWveP9qxVn1C+VeLJbpZ21St5WyeE148Tml0BmYnKLSXlaPMhZEwB+/IV3jpQ35dH4bw==
+"@polkadot/typegen@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-5.5.1.tgz#b31010716a142290d12f48ead6166851599055d0"
+ integrity sha512-ua55CVqT3+Y5fX9stpYUO+UhiJJ1RDTZ6vM2/Lndmsuda4lHQnUDrCnMmxKhM5OcyIlJlY5mF9dyO0kl5mTm+w==
dependencies:
- "@babel/core" "^7.14.6"
- "@babel/register" "^7.14.5"
- "@babel/runtime" "^7.14.6"
- "@polkadot/api" "5.0.1"
- "@polkadot/rpc-provider" "5.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
+ "@babel/core" "^7.15.0"
+ "@babel/register" "^7.15.3"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/api" "5.5.1"
+ "@polkadot/rpc-provider" "5.5.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/types-support" "5.5.1"
+ "@polkadot/util" "^7.2.1"
handlebars "^4.7.7"
websocket "^1.0.34"
- yargs "^17.0.1"
+ yargs "^17.1.0"
-"@polkadot/types-known@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-5.0.1.tgz#21feb327fc4323733bf027c8d874a2aa3014b21f"
- integrity sha512-AIhPlN4r14ZW4wdwHZD2nIe1DE61ZO9PsyrCyAU3ysl6Cw6TI+txDCN3aS/8XYuC7wDLEgLB9vJv2sVWdCzqJg==
+"@polkadot/types-known@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-5.5.1.tgz#b00b0d45cbd07b4e0c3199f8ba00d10a1bd3f63d"
+ integrity sha512-bxBRmZ0a3lwEyWkWOKqmDJfpNKh3cp9xo6IidrQU2S5OPMjFFercB+HwJjkNE1cMtShwBYTvDheUImNkdm+FXA==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/networks" "^7.0.1"
- "@polkadot/types" "5.0.1"
- "@polkadot/util" "^7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/networks" "^7.2.1"
+ "@polkadot/types" "5.5.1"
+ "@polkadot/util" "^7.2.1"
-"@polkadot/types@5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-5.0.1.tgz#2a4e23e452f999eeae175b595470df0e426a930d"
- integrity sha512-aN6JKeF7ZYi5irYAaUoDqth6qlOlB15C5vhlDOojEorYLfRs/R+GCrO+lPSs+bKmSxh7BSRh500ikI/xD4nx5A==
+"@polkadot/types-support@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-5.5.1.tgz#15556c2f31e79f0a6a821c7723f702757cb89462"
+ integrity sha512-57i1SdK8B+miGTAlDNdvbBuN6FguTnwzv2UPE2Zv3iQznTSZBkQZN16tIK/yMkQfhtO4ZzPcAnnSPZMncqh/Mg==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/util" "^7.0.1"
- "@polkadot/util-crypto" "^7.0.1"
- rxjs "^7.2.0"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/util" "^7.2.1"
+
+"@polkadot/types@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-5.5.1.tgz#057e8f0fc2369c0741c0f9b0224418e8f25a6938"
+ integrity sha512-+Cm7Y6D/98WqL8ofONyZrVvE2CxzK3/z18bATIQIWhG2w9ir9PdWaFMZ3fLCRw2Ggaq88AknguK6kXeEPcKPrA==
+ dependencies:
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/util" "^7.2.1"
+ "@polkadot/util-crypto" "^7.2.1"
+ rxjs "^7.3.0"
-"@polkadot/util-crypto@7.0.1", "@polkadot/util-crypto@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.0.1.tgz#03109dc11323dad174fb2214d395855495def16a"
- integrity sha512-dbvdsICoyOVw/K45RmHOP7wXE/7vj+NzEKGcKbiDt39nglHm6g2BTJ947PwwyNusTTAx82Q2iJ9vIZ1Kl0xG+g==
+"@polkadot/util-crypto@7.2.1", "@polkadot/util-crypto@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.2.1.tgz#7f1bbf031dac75090699083fc9e825c22e5d5f61"
+ integrity sha512-X3iGba/1JTL/0MNzMNEIlO9DNyKlwFV839jfGLDKhPbCuDmWp0NdQjF3mBmbvNwkXvn07WmhE7g3q9n5iTzqvQ==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/networks" "7.0.1"
- "@polkadot/util" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/networks" "7.2.1"
+ "@polkadot/util" "7.2.1"
"@polkadot/wasm-crypto" "^4.1.2"
- "@polkadot/x-randomvalues" "7.0.1"
+ "@polkadot/x-randomvalues" "7.2.1"
base-x "^3.0.8"
base64-js "^1.5.1"
blakejs "^1.1.1"
bn.js "^4.11.9"
create-hash "^1.2.0"
+ ed2curve "^0.3.0"
elliptic "^6.5.4"
hash.js "^1.1.7"
js-sha3 "^0.8.0"
@@ -1770,14 +1916,14 @@
tweetnacl "^1.0.3"
xxhashjs "^0.2.2"
-"@polkadot/util@7.0.1", "@polkadot/util@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.0.1.tgz#79afd40473016876f51d65ebb9900a20108fe0a4"
- integrity sha512-EtQlZL6ok0Ep+zRz2QHMUoJo/b3kFHVN2qqyD2+9sdqg0FGLmkzNFM+K6dasCMLXieJ1l0HoFsQppSo/leUeaA==
+"@polkadot/util@7.2.1", "@polkadot/util@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.2.1.tgz#abcad49f884534ff042c37480f63b9750c69341d"
+ integrity sha512-GilFg3i5dmu0H6dHEyh5bUw3yywmnFpEHfxFmKghL1ABDEr4qD0d/XAJ9UrzLFCBKbdTZsR0MDjgjVI2N84J1A==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-textdecoder" "7.0.1"
- "@polkadot/x-textencoder" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-textdecoder" "7.2.1"
+ "@polkadot/x-textencoder" "7.2.1"
"@types/bn.js" "^4.11.6"
bn.js "^4.11.9"
camelcase "^5.3.1"
@@ -1806,57 +1952,114 @@
"@polkadot/wasm-crypto-asmjs" "^4.1.2"
"@polkadot/wasm-crypto-wasm" "^4.1.2"
-"@polkadot/x-fetch@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.0.1.tgz#2db6fa19f4f4d9b2f4cf50ba78bf3aa947d7b982"
- integrity sha512-9R38FjtlJcvdpEA7tVGmTmH4aiBCTABuLJdVSn3cYkgWfxDHeFMqjdFzTJ6Asa5cY0Ds3ZKsh9uccTQBQzV/HQ==
+"@polkadot/x-fetch@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.2.1.tgz#c9bee0316d31cd150b2cb6646ccdb77c6dc3d42d"
+ integrity sha512-osdZNPfrB50d7tfjVs4QRjfsb6xqC09JEeYzbUl24hUXPwtkQE8/379jayu1usPe9/JI2wKYGscdf/nRl4pBkA==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-global" "7.0.1"
- "@types/node-fetch" "^2.5.11"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-global" "7.2.1"
+ "@types/node-fetch" "^2.5.12"
node-fetch "^2.6.1"
-"@polkadot/x-global@7.0.1", "@polkadot/x-global@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.0.1.tgz#44fb248d3aaea557753318327149772969e96bff"
- integrity sha512-gVVACSdRhHYRJejLEAL0mM9BZfY8N50VT2+15A7ALD1tVqwS4tz3P9vRW3Go7ZjfyAc83aEmh0PiQ8Nm1R+2Cg==
+"@polkadot/x-global@7.2.1", "@polkadot/x-global@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.2.1.tgz#32207936b7f939a21da608f82ca20535f9148cda"
+ integrity sha512-VNW+76TxEPqvBy3XMNV05mJRPRGZcYh3k5HjW4+asYeFunMahH4zjmCulhtD9SRI/TqdfHTiqDOqKNKe2xJcVg==
dependencies:
- "@babel/runtime" "^7.14.6"
+ "@babel/runtime" "^7.15.3"
-"@polkadot/x-randomvalues@7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.0.1.tgz#32036ae5d48645a062f6a1c3ebbf227236c806b8"
- integrity sha512-UNoIFaz1xJPozruT+lo8BTeT8A3NM3PgWuru7Vs8OsIz0Phkg7lUWlpHu9PZHyQCyKlUryvkOA692IlVlNYy2Q==
+"@polkadot/x-randomvalues@7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.2.1.tgz#708b7a54bd90ec091ab54e125d8b52e0853ea86b"
+ integrity sha512-B4sjwX+gFweZ1YM1Cg/S9hAEx9E/gV/vqLW89PJB6+hyvsPS9eiVvfVpaOsohc7AgmuINm/bSQbNZvtC+BbbKw==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-global" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-global" "7.2.1"
-"@polkadot/x-textdecoder@7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.0.1.tgz#bb9bba94b2eb1612dd35c299f43ab74515db74d9"
- integrity sha512-CFRnpI0cp1h2N1+ec551BLVLwV6OHG6Gj62EYcIOXR+o/SX/6MXm3Qcehm2YvfTKqktyIUSWmTwbWjGjuqPrpA==
+"@polkadot/x-textdecoder@7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.2.1.tgz#c52074dba9943a12583f3f8672a49399f10e00f3"
+ integrity sha512-yXSZ0P/D/8HT8gbkdTjw/1AKZIVbX3+mIfiDiN3VqUBzruV7ak5hA+D01I0woBGDqxWISoLQFtGrxPAQ8pwAcg==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-global" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-global" "7.2.1"
-"@polkadot/x-textencoder@7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.0.1.tgz#181d403c5dc1d94fd1e2147fd1c5c528d30d8805"
- integrity sha512-m+QL1HNiu5GMz6cfr/udSA6fUTv3RyIybJb7v43EQCxqlj/L0J3cUHapFd6tqH9PElD6jPkH1pXcgYN8e7dWTQ==
+"@polkadot/x-textencoder@7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.2.1.tgz#2326b3b7f9a5e445d7e560c438effbe800e2b1f6"
+ integrity sha512-1aqfxmfKSOWeOxmGBmk+RYrpqGtWywS6t0y/R3FI+k+s8NfIfGdcjMcupKq7khPh92PvVGkur+CnM/y6chn4XA==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-global" "7.0.1"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-global" "7.2.1"
-"@polkadot/x-ws@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.0.1.tgz#8c22a61c0dd9b82865c7631e22ac147c2b73b118"
- integrity sha512-VUn/6sCJUpvW9WhUK+DKo1uDrw4yO84twRcy5JSzvSiBTaSplhU9Q4qGFl2Atr3WIzAYYx1jQSm/j6AhPRji1w==
+"@polkadot/x-ws@^7.2.1":
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.2.1.tgz#5971ab630911cdecd0a46db6fb899e9086954e58"
+ integrity sha512-sYnOF0qNdMuGFiRGWAtpkQQYIP44JFzGywap0CskhNEyCc+zDBi4l/ta3qHjeGta+h9rdVjDeYk2J86EsKlkSw==
dependencies:
- "@babel/runtime" "^7.14.6"
- "@polkadot/x-global" "7.0.1"
- "@types/websocket" "^1.0.3"
+ "@babel/runtime" "^7.15.3"
+ "@polkadot/x-global" "7.2.1"
+ "@types/websocket" "^1.0.4"
websocket "^1.0.34"
+"@rollup/plugin-alias@^3.1.5":
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz#73356a3a1eab2e1e2fd952f9f53cd89fc740d952"
+ integrity sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ==
+ dependencies:
+ slash "^3.0.0"
+
+"@rollup/plugin-commonjs@^19.0.2":
+ version "19.0.2"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.2.tgz#1ccc3d63878d1bc9846f8969f09dd3b3e4ecc244"
+ integrity sha512-gBjarfqlC7qs0AutpRW/hrFNm+cd2/QKxhwyFa+srbg1oX7rDsEU3l+W7LAUhsAp9mPJMAkXDhLbQaVwEaE8bA==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ commondir "^1.0.1"
+ estree-walker "^2.0.1"
+ glob "^7.1.6"
+ is-reference "^1.2.1"
+ magic-string "^0.25.7"
+ resolve "^1.17.0"
+
+"@rollup/plugin-inject@^4.0.2":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-4.0.2.tgz#55b21bb244a07675f7fdde577db929c82fc17395"
+ integrity sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw==
+ dependencies:
+ "@rollup/pluginutils" "^3.0.4"
+ estree-walker "^1.0.1"
+ magic-string "^0.25.5"
+
+"@rollup/plugin-json@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
+ integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==
+ dependencies:
+ "@rollup/pluginutils" "^3.0.8"
+
+"@rollup/plugin-node-resolve@^13.0.4":
+ version "13.0.4"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz#b10222f4145a019740acb7738402130d848660c0"
+ integrity sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ "@types/resolve" "1.17.1"
+ builtin-modules "^3.1.0"
+ deepmerge "^4.2.2"
+ is-module "^1.0.0"
+ resolve "^1.19.0"
+
+"@rollup/pluginutils@^3.0.4", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
+ integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
+ dependencies:
+ "@types/estree" "0.0.39"
+ estree-walker "^1.0.1"
+ picomatch "^2.2.2"
+
"@rushstack/eslint-patch@^1.0.6":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz#023d72a5c4531b4ce204528971700a78a85a0c50"
@@ -1945,14 +2148,24 @@
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4"
integrity sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==
-"@types/chrome@^0.0.144":
- version "0.0.144"
- resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.144.tgz#7dd9188e355aa17e3ad397f50b5cd3ad12caf788"
- integrity sha512-BgoiO7/KP9hRNrCR2Wq+aKWT5Dh9bTofuWaRtcqPcj8YKhZojQgb6sSdIqvds2C+eO63BwaR9KHVMYYgZdGGBg==
+"@types/chrome@^0.0.145":
+ version "0.0.145"
+ resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.145.tgz#6c53ae0af5f25350b07bfd24cf459b5fe65cd9b8"
+ integrity sha512-vLvTMmfc8mvwOZzkmn2UwlWSNu0t0txBkyuIv8NgihRkvFCe6XJX65YZAgAP/RdBit3enhU2GTxCr+prn4uZmA==
dependencies:
"@types/filesystem" "*"
"@types/har-format" "*"
+"@types/estree@*":
+ version "0.0.50"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
+ integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
+
+"@types/estree@0.0.39":
+ version "0.0.39"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+
"@types/filesystem@*":
version "0.0.30"
resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.30.tgz#a7373a2edf34d13e298baf7ee1101f738b2efb7e"
@@ -2011,10 +2224,10 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.2.tgz#91daa226eb8c2ff261e6a8cbf8c7304641e095e0"
integrity sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==
-"@types/node-fetch@^2.5.11":
- version "2.5.11"
- resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.11.tgz#ce22a2e65fc8999f4dbdb7ddbbcf187d755169e4"
- integrity sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ==
+"@types/node-fetch@^2.5.12":
+ version "2.5.12"
+ resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66"
+ integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==
dependencies:
"@types/node" "*"
form-data "^3.0.0"
@@ -2046,6 +2259,13 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb"
integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==
+"@types/resolve@1.17.1":
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
+ integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
+ dependencies:
+ "@types/node" "*"
+
"@types/secp256k1@^4.0.1":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.2.tgz#20c29a87149d980f64464e56539bf4810fdb5d1d"
@@ -2058,10 +2278,10 @@
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff"
integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==
-"@types/websocket@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.3.tgz#49e09f939afd0ccdee4f7108d4712ec9feb0f153"
- integrity sha512-ZdoTSwmDsKR7l1I8fpfQtmTI/hUwlOvE3q0iyJsp4tXU0MkdrYowimDzwxjhQvxU4qjhHLd3a6ig0OXRbLgIdw==
+"@types/websocket@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8"
+ integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==
dependencies:
"@types/node" "*"
@@ -2077,13 +2297,13 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.0.tgz#1a66f03b264844387beb7dc85e1f1d403bd1803f"
- integrity sha512-KcF6p3zWhf1f8xO84tuBailV5cN92vhS+VT7UJsPzGBm9VnQqfI9AsiMUFUCYHTYPg1uCCo+HyiDnpDuvkAMfQ==
+"@typescript-eslint/eslint-plugin@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.2.tgz#f54dc0a32b8f61c6024ab8755da05363b733838d"
+ integrity sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg==
dependencies:
- "@typescript-eslint/experimental-utils" "4.28.0"
- "@typescript-eslint/scope-manager" "4.28.0"
+ "@typescript-eslint/experimental-utils" "4.29.2"
+ "@typescript-eslint/scope-manager" "4.29.2"
debug "^4.3.1"
functional-red-black-tree "^1.0.1"
regexpp "^3.1.0"
@@ -2103,18 +2323,6 @@
semver "^7.3.5"
tsutils "^3.21.0"
-"@typescript-eslint/experimental-utils@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.0.tgz#13167ed991320684bdc23588135ae62115b30ee0"
- integrity sha512-9XD9s7mt3QWMk82GoyUpc/Ji03vz4T5AYlHF9DcoFNfJ/y3UAclRsfGiE2gLfXtyC+JRA3trR7cR296TEb1oiQ==
- dependencies:
- "@types/json-schema" "^7.0.7"
- "@typescript-eslint/scope-manager" "4.28.0"
- "@typescript-eslint/types" "4.28.0"
- "@typescript-eslint/typescript-estree" "4.28.0"
- eslint-scope "^5.1.1"
- eslint-utils "^3.0.0"
-
"@typescript-eslint/experimental-utils@4.28.5":
version "4.28.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.5.tgz#66c28bef115b417cf9d80812a713e0e46bb42a64"
@@ -2127,14 +2335,26 @@
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
-"@typescript-eslint/parser@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.0.tgz#2404c16751a28616ef3abab77c8e51d680a12caa"
- integrity sha512-7x4D22oPY8fDaOCvkuXtYYTQ6mTMmkivwEzS+7iml9F9VkHGbbZ3x4fHRwxAb5KeuSkLqfnYjs46tGx2Nour4A==
+"@typescript-eslint/experimental-utils@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.2.tgz#5f67fb5c5757ef2cb3be64817468ba35c9d4e3b7"
+ integrity sha512-P6mn4pqObhftBBPAv4GQtEK7Yos1fz/MlpT7+YjH9fTxZcALbiiPKuSIfYP/j13CeOjfq8/fr9Thr2glM9ub7A==
+ dependencies:
+ "@types/json-schema" "^7.0.7"
+ "@typescript-eslint/scope-manager" "4.29.2"
+ "@typescript-eslint/types" "4.29.2"
+ "@typescript-eslint/typescript-estree" "4.29.2"
+ eslint-scope "^5.1.1"
+ eslint-utils "^3.0.0"
+
+"@typescript-eslint/parser@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.2.tgz#1c7744f4c27aeb74610c955d3dce9250e95c370a"
+ integrity sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g==
dependencies:
- "@typescript-eslint/scope-manager" "4.28.0"
- "@typescript-eslint/types" "4.28.0"
- "@typescript-eslint/typescript-estree" "4.28.0"
+ "@typescript-eslint/scope-manager" "4.29.2"
+ "@typescript-eslint/types" "4.29.2"
+ "@typescript-eslint/typescript-estree" "4.29.2"
debug "^4.3.1"
"@typescript-eslint/parser@^4.28.5":
@@ -2147,14 +2367,6 @@
"@typescript-eslint/typescript-estree" "4.28.5"
debug "^4.3.1"
-"@typescript-eslint/scope-manager@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz#6a3009d2ab64a30fc8a1e257a1a320067f36a0ce"
- integrity sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==
- dependencies:
- "@typescript-eslint/types" "4.28.0"
- "@typescript-eslint/visitor-keys" "4.28.0"
-
"@typescript-eslint/scope-manager@4.28.5":
version "4.28.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.5.tgz#3a1b70c50c1535ac33322786ea99ebe403d3b923"
@@ -2163,33 +2375,28 @@
"@typescript-eslint/types" "4.28.5"
"@typescript-eslint/visitor-keys" "4.28.5"
+"@typescript-eslint/scope-manager@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.2.tgz#442b0f029d981fa402942715b1718ac7fcd5aa1b"
+ integrity sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA==
+ dependencies:
+ "@typescript-eslint/types" "4.29.2"
+ "@typescript-eslint/visitor-keys" "4.29.2"
+
"@typescript-eslint/types@4.27.0":
version "4.27.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8"
integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA==
-"@typescript-eslint/types@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.0.tgz#a33504e1ce7ac51fc39035f5fe6f15079d4dafb0"
- integrity sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==
-
"@typescript-eslint/types@4.28.5":
version "4.28.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.5.tgz#d33edf8e429f0c0930a7c3d44e9b010354c422e9"
integrity sha512-MruOu4ZaDOLOhw4f/6iudyks/obuvvZUAHBDSW80Trnc5+ovmViLT2ZMDXhUV66ozcl6z0LJfKs1Usldgi/WCA==
-"@typescript-eslint/typescript-estree@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz#e66d4e5aa2ede66fec8af434898fe61af10c71cf"
- integrity sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==
- dependencies:
- "@typescript-eslint/types" "4.28.0"
- "@typescript-eslint/visitor-keys" "4.28.0"
- debug "^4.3.1"
- globby "^11.0.3"
- is-glob "^4.0.1"
- semver "^7.3.5"
- tsutils "^3.21.0"
+"@typescript-eslint/types@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.2.tgz#fc0489c6b89773f99109fb0aa0aaddff21f52fcd"
+ integrity sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ==
"@typescript-eslint/typescript-estree@4.28.5":
version "4.28.5"
@@ -2204,6 +2411,19 @@
semver "^7.3.5"
tsutils "^3.21.0"
+"@typescript-eslint/typescript-estree@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.2.tgz#a0ea8b98b274adbb2577100ba545ddf8bf7dc219"
+ integrity sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg==
+ dependencies:
+ "@typescript-eslint/types" "4.29.2"
+ "@typescript-eslint/visitor-keys" "4.29.2"
+ debug "^4.3.1"
+ globby "^11.0.3"
+ is-glob "^4.0.1"
+ semver "^7.3.5"
+ tsutils "^3.21.0"
+
"@typescript-eslint/typescript-estree@^4.8.2":
version "4.27.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da"
@@ -2225,14 +2445,6 @@
"@typescript-eslint/types" "4.27.0"
eslint-visitor-keys "^2.0.0"
-"@typescript-eslint/visitor-keys@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz#255c67c966ec294104169a6939d96f91c8a89434"
- integrity sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==
- dependencies:
- "@typescript-eslint/types" "4.28.0"
- eslint-visitor-keys "^2.0.0"
-
"@typescript-eslint/visitor-keys@4.28.5":
version "4.28.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.5.tgz#ffee2c602762ed6893405ee7c1144d9cc0a29675"
@@ -2241,6 +2453,14 @@
"@typescript-eslint/types" "4.28.5"
eslint-visitor-keys "^2.0.0"
+"@typescript-eslint/visitor-keys@4.29.2":
+ version "4.29.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.2.tgz#d2da7341f3519486f50655159f4e5ecdcb2cd1df"
+ integrity sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag==
+ dependencies:
+ "@typescript-eslint/types" "4.29.2"
+ eslint-visitor-keys "^2.0.0"
+
"@ungap/promise-all-settled@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
@@ -2606,16 +2826,16 @@
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-babel-jest@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.5.tgz#cd34c033ada05d1362211e5152391fd7a88080c8"
- integrity sha512-bTMAbpCX7ldtfbca2llYLeSFsDM257aspyAOpsdrdSrBqoLkWCy4HPYTXtXWaSLgFPjrJGACL65rzzr4RFGadw==
+babel-jest@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8"
+ integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==
dependencies:
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/babel__core" "^7.1.14"
babel-plugin-istanbul "^6.0.0"
- babel-preset-jest "^27.0.1"
+ babel-preset-jest "^27.0.6"
chalk "^4.0.0"
graceful-fs "^4.2.4"
slash "^3.0.0"
@@ -2638,10 +2858,10 @@
istanbul-lib-instrument "^4.0.0"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz#a6d10e484c93abff0f4e95f437dad26e5736ea11"
- integrity sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==
+babel-plugin-jest-hoist@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456"
+ integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
@@ -2688,10 +2908,10 @@
dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.2"
-babel-plugin-styled-components@^1.12.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9"
- integrity sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA==
+babel-plugin-styled-components@^1.13.2:
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz#ebe0e6deff51d7f93fceda1819e9b96aeb88278d"
+ integrity sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-module-imports" "^7.0.0"
@@ -2721,12 +2941,12 @@
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz#7a50c75d16647c23a2cf5158d5bb9eb206b10e20"
- integrity sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==
+babel-preset-jest@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d"
+ integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==
dependencies:
- babel-plugin-jest-hoist "^27.0.1"
+ babel-plugin-jest-hoist "^27.0.6"
babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
@@ -2966,6 +3186,17 @@
escalade "^3.1.1"
node-releases "^1.1.71"
+browserslist@^4.16.7:
+ version "4.16.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335"
+ integrity sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==
+ dependencies:
+ caniuse-lite "^1.0.30001248"
+ colorette "^1.2.2"
+ electron-to-chromium "^1.3.793"
+ escalade "^3.1.1"
+ node-releases "^1.1.73"
+
bs58@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
@@ -3024,6 +3255,11 @@
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
+builtin-modules@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
+ integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
+
bytes@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
@@ -3085,6 +3321,11 @@
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001238.tgz#e6a8b45455c5de601718736d0242feef0ecdda15"
integrity sha512-bZGam2MxEt7YNsa2VwshqWQMwrYs5tR5WZQRYSuFxsBQunWjBuXhN4cS9nV5FFb1Z9y+DoQcQ0COyQbv6A+CKw==
+caniuse-lite@^1.0.30001248:
+ version "1.0.30001251"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85"
+ integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -3134,6 +3375,14 @@
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
changelog-parser@^2.0.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/changelog-parser/-/changelog-parser-2.8.0.tgz#c14293e3e8fab797913c722de965480198650108"
@@ -3472,12 +3721,12 @@
browserslist "^4.16.6"
semver "7.0.0"
-core-js-compat@^3.15.0:
- version "3.15.1"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.1.tgz#1afe233716d37ee021956ef097594071b2b585a7"
- integrity sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww==
+core-js-compat@^3.16.0:
+ version "3.16.1"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.1.tgz#c44b7caa2dcb94b673a98f27eee1c8312f55bc2d"
+ integrity sha512-NHXQXvRbd4nxp9TEmooTJLUf94ySUG6+DSsscBpTftN1lQLQ4LjnWvc7AoIo4UjDsFF3hB8Uh5LLCRRdaiT5MQ==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.16.7"
semver "7.0.0"
core-util-is@1.0.2, core-util-is@~1.0.0:
@@ -3493,10 +3742,10 @@
object-assign "^4"
vary "^1"
-coveralls@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.1.0.tgz#13c754d5e7a2dd8b44fe5269e21ca394fb4d615b"
- integrity sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==
+coveralls@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.1.1.tgz#f5d4431d8b5ae69c5079c8f8ca00d64ac77cf081"
+ integrity sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==
dependencies:
js-yaml "^3.13.1"
lcov-parse "^1.0.0"
@@ -3883,10 +4132,10 @@
node-source-walk "^4.2.0"
typescript "^3.9.7"
-diff-sequences@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz#9c9801d52ed5f576ff0a20e3022a13ee6e297e7c"
- integrity sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==
+diff-sequences@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723"
+ integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==
diff@5.0.0:
version "5.0.0"
@@ -3970,6 +4219,13 @@
jsbn "~0.1.0"
safer-buffer "^2.1.0"
+ed2curve@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d"
+ integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==
+ dependencies:
+ tweetnacl "1.x.x"
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -3980,6 +4236,11 @@
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09"
integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==
+electron-to-chromium@^1.3.793:
+ version "1.3.807"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.807.tgz#c2eb803f4f094869b1a24151184ffbbdbf688b1f"
+ integrity sha512-p8uxxg2a23zRsvQ2uwA/OOI+O4BQxzaR7YKMIGGGQCpYmkFX2CVF5f0/hxLMV7yCr7nnJViCwHLhPfs52rIYCA==
+
elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
@@ -4151,18 +4412,18 @@
resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516"
integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==
-eslint-import-resolver-node@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717"
- integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==
+eslint-import-resolver-node@^0.3.5, eslint-import-resolver-node@^0.3.6:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd"
+ integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==
dependencies:
- debug "^2.6.9"
- resolve "^1.13.1"
+ debug "^3.2.7"
+ resolve "^1.20.0"
-eslint-module-utils@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233"
- integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==
+eslint-module-utils@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534"
+ integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==
dependencies:
debug "^3.2.7"
pkg-dir "^2.0.0"
@@ -4180,17 +4441,22 @@
resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6"
integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==
-eslint-plugin-import@^2.23.4:
- version "2.23.4"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97"
- integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==
+eslint-plugin-import-newlines@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.1.4.tgz#d69d03fe512b2f54bc781d1dfc51a4ad99df7a52"
+ integrity sha512-GCIM+524XQOFcEPinEyrvktQHkQq+k+kYCwbRrIioGBVGnk3RGDFWv5BPqBQCDci6SNZCVgIOi3/FmtDetbxvA==
+
+eslint-plugin-import@^2.24.0:
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.0.tgz#697ffd263e24da5e84e03b282f5fb62251777177"
+ integrity sha512-Kc6xqT9hiYi2cgybOc0I2vC9OgAYga5o/rAFinam/yF/t5uBqxQbauNPMC6fgb640T/89P0gFoO27FOilJ/Cqg==
dependencies:
array-includes "^3.1.3"
array.prototype.flat "^1.2.4"
debug "^2.6.9"
doctrine "^2.1.0"
- eslint-import-resolver-node "^0.3.4"
- eslint-module-utils "^2.6.1"
+ eslint-import-resolver-node "^0.3.5"
+ eslint-module-utils "^2.6.2"
find-up "^2.0.0"
has "^1.0.3"
is-core-module "^2.4.0"
@@ -4285,13 +4551,14 @@
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
-eslint@^7.29.0:
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz#ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0"
- integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==
+eslint@^7.31.0:
+ version "7.31.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca"
+ integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==
dependencies:
"@babel/code-frame" "7.12.11"
- "@eslint/eslintrc" "^0.4.2"
+ "@eslint/eslintrc" "^0.4.3"
+ "@humanwhocodes/config-array" "^0.5.0"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
@@ -4330,10 +4597,10 @@
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
-eslint@^7.31.0:
- version "7.31.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca"
- integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==
+eslint@^7.32.0:
+ version "7.32.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
+ integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
dependencies:
"@babel/code-frame" "7.12.11"
"@eslint/eslintrc" "^0.4.3"
@@ -4414,6 +4681,16 @@
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+estree-walker@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
+ integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+
+estree-walker@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+ integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -4574,17 +4851,17 @@
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz#e66ca3a4c9592f1c019fa1d46459a9d2084f3422"
- integrity sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==
+expect@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05"
+ integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
ansi-styles "^5.0.0"
- jest-get-type "^27.0.1"
- jest-matcher-utils "^27.0.2"
- jest-message-util "^27.0.2"
- jest-regex-util "^27.0.1"
+ jest-get-type "^27.0.6"
+ jest-matcher-utils "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-regex-util "^27.0.6"
express@^4.14.0:
version "4.17.1"
@@ -5857,6 +6134,11 @@
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+is-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
+ integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
+
is-negative-zero@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
@@ -5931,6 +6213,13 @@
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+is-reference@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
+ integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
+ dependencies:
+ "@types/estree" "*"
+
is-regex@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
@@ -6088,226 +6377,226 @@
has-to-string-tag-x "^1.2.0"
is-object "^1.0.1"
-jest-changed-files@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz#997253042b4a032950fc5f56abf3c5d1f8560801"
- integrity sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==
+jest-changed-files@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b"
+ integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
execa "^5.0.0"
throat "^6.0.1"
-jest-circus@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.5.tgz#b5e327f1d6857c8485126f8e364aefa4378debaa"
- integrity sha512-p5rO90o1RTh8LPOG6l0Fc9qgp5YGv+8M5CFixhMh7gGHtGSobD1AxX9cjFZujILgY8t30QZ7WVvxlnuG31r8TA==
+jest-circus@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668"
+ integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==
dependencies:
- "@jest/environment" "^27.0.5"
- "@jest/test-result" "^27.0.2"
- "@jest/types" "^27.0.2"
+ "@jest/environment" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
- expect "^27.0.2"
+ expect "^27.0.6"
is-generator-fn "^2.0.0"
- jest-each "^27.0.2"
- jest-matcher-utils "^27.0.2"
- jest-message-util "^27.0.2"
- jest-runtime "^27.0.5"
- jest-snapshot "^27.0.5"
- jest-util "^27.0.2"
- pretty-format "^27.0.2"
+ jest-each "^27.0.6"
+ jest-matcher-utils "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-runtime "^27.0.6"
+ jest-snapshot "^27.0.6"
+ jest-util "^27.0.6"
+ pretty-format "^27.0.6"
slash "^3.0.0"
stack-utils "^2.0.3"
throat "^6.0.1"
-jest-cli@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.5.tgz#f359ba042624cffb96b713010a94bffb7498a37c"
- integrity sha512-kZqY020QFOFQKVE2knFHirTBElw3/Q0kUbDc3nMfy/x+RQ7zUY89SUuzpHHJoSX1kX7Lq569ncvjNqU3Td/FCA==
+jest-cli@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f"
+ integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==
dependencies:
- "@jest/core" "^27.0.5"
- "@jest/test-result" "^27.0.2"
- "@jest/types" "^27.0.2"
+ "@jest/core" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/types" "^27.0.6"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
import-local "^3.0.2"
- jest-config "^27.0.5"
- jest-util "^27.0.2"
- jest-validate "^27.0.2"
+ jest-config "^27.0.6"
+ jest-util "^27.0.6"
+ jest-validate "^27.0.6"
prompts "^2.0.1"
yargs "^16.0.3"
-jest-config@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.5.tgz#683da3b0d8237675c29c817f6e3aba1481028e19"
- integrity sha512-zCUIXag7QIXKEVN4kUKbDBDi9Q53dV5o3eNhGqe+5zAbt1vLs4VE3ceWaYrOub0L4Y7E9pGfM84TX/0ARcE+Qw==
+jest-config@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f"
+ integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^27.0.5"
- "@jest/types" "^27.0.2"
- babel-jest "^27.0.5"
+ "@jest/test-sequencer" "^27.0.6"
+ "@jest/types" "^27.0.6"
+ babel-jest "^27.0.6"
chalk "^4.0.0"
deepmerge "^4.2.2"
glob "^7.1.1"
graceful-fs "^4.2.4"
is-ci "^3.0.0"
- jest-circus "^27.0.5"
- jest-environment-jsdom "^27.0.5"
- jest-environment-node "^27.0.5"
- jest-get-type "^27.0.1"
- jest-jasmine2 "^27.0.5"
- jest-regex-util "^27.0.1"
- jest-resolve "^27.0.5"
- jest-runner "^27.0.5"
- jest-util "^27.0.2"
- jest-validate "^27.0.2"
+ jest-circus "^27.0.6"
+ jest-environment-jsdom "^27.0.6"
+ jest-environment-node "^27.0.6"
+ jest-get-type "^27.0.6"
+ jest-jasmine2 "^27.0.6"
+ jest-regex-util "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-runner "^27.0.6"
+ jest-util "^27.0.6"
+ jest-validate "^27.0.6"
micromatch "^4.0.4"
- pretty-format "^27.0.2"
+ pretty-format "^27.0.6"
-jest-diff@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz#f315b87cee5dc134cf42c2708ab27375cc3f5a7e"
- integrity sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==
+jest-diff@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e"
+ integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==
dependencies:
chalk "^4.0.0"
- diff-sequences "^27.0.1"
- jest-get-type "^27.0.1"
- pretty-format "^27.0.2"
+ diff-sequences "^27.0.6"
+ jest-get-type "^27.0.6"
+ pretty-format "^27.0.6"
-jest-docblock@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz#bd9752819b49fa4fab1a50b73eb58c653b962e8b"
- integrity sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==
+jest-docblock@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3"
+ integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==
dependencies:
detect-newline "^3.0.0"
-jest-each@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz#865ddb4367476ced752167926b656fa0dcecd8c7"
- integrity sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==
+jest-each@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b"
+ integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
chalk "^4.0.0"
- jest-get-type "^27.0.1"
- jest-util "^27.0.2"
- pretty-format "^27.0.2"
+ jest-get-type "^27.0.6"
+ jest-util "^27.0.6"
+ pretty-format "^27.0.6"
-jest-environment-jsdom@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.5.tgz#c36771977cf4490a9216a70473b39161d193c212"
- integrity sha512-ToWhViIoTl5738oRaajTMgYhdQL73UWPoV4GqHGk2DPhs+olv8OLq5KoQW8Yf+HtRao52XLqPWvl46dPI88PdA==
+jest-environment-jsdom@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f"
+ integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==
dependencies:
- "@jest/environment" "^27.0.5"
- "@jest/fake-timers" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/environment" "^27.0.6"
+ "@jest/fake-timers" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
- jest-mock "^27.0.3"
- jest-util "^27.0.2"
+ jest-mock "^27.0.6"
+ jest-util "^27.0.6"
jsdom "^16.6.0"
-jest-environment-node@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.5.tgz#b7238fc2b61ef2fb9563a3b7653a95fa009a6a54"
- integrity sha512-47qqScV/WMVz5OKF5TWpAeQ1neZKqM3ySwNveEnLyd+yaE/KT6lSMx/0SOx60+ZUcVxPiESYS+Kt2JS9y4PpkQ==
+jest-environment-node@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07"
+ integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==
dependencies:
- "@jest/environment" "^27.0.5"
- "@jest/fake-timers" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/environment" "^27.0.6"
+ "@jest/fake-timers" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
- jest-mock "^27.0.3"
- jest-util "^27.0.2"
+ jest-mock "^27.0.6"
+ jest-util "^27.0.6"
-jest-get-type@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz#34951e2b08c8801eb28559d7eb732b04bbcf7815"
- integrity sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==
+jest-get-type@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe"
+ integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==
-jest-haste-map@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.5.tgz#2e1e55073b5328410a2c0d74b334e513d71f3470"
- integrity sha512-3LFryGSHxwPFHzKIs6W0BGA2xr6g1MvzSjR3h3D8K8Uqy4vbRm/grpGHzbPtIbOPLC6wFoViRrNEmd116QWSkw==
+jest-haste-map@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7"
+ integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@types/graceful-fs" "^4.1.2"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.4"
- jest-regex-util "^27.0.1"
- jest-serializer "^27.0.1"
- jest-util "^27.0.2"
- jest-worker "^27.0.2"
+ jest-regex-util "^27.0.6"
+ jest-serializer "^27.0.6"
+ jest-util "^27.0.6"
+ jest-worker "^27.0.6"
micromatch "^4.0.4"
walker "^1.0.7"
optionalDependencies:
fsevents "^2.3.2"
-jest-jasmine2@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.5.tgz#8a6eb2a685cdec3af13881145c77553e4e197776"
- integrity sha512-m3TojR19sFmTn79QoaGy1nOHBcLvtLso6Zh7u+gYxZWGcza4rRPVqwk1hciA5ZOWWZIJOukAcore8JRX992FaA==
+jest-jasmine2@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37"
+ integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^27.0.5"
- "@jest/source-map" "^27.0.1"
- "@jest/test-result" "^27.0.2"
- "@jest/types" "^27.0.2"
+ "@jest/environment" "^27.0.6"
+ "@jest/source-map" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
- expect "^27.0.2"
+ expect "^27.0.6"
is-generator-fn "^2.0.0"
- jest-each "^27.0.2"
- jest-matcher-utils "^27.0.2"
- jest-message-util "^27.0.2"
- jest-runtime "^27.0.5"
- jest-snapshot "^27.0.5"
- jest-util "^27.0.2"
- pretty-format "^27.0.2"
+ jest-each "^27.0.6"
+ jest-matcher-utils "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-runtime "^27.0.6"
+ jest-snapshot "^27.0.6"
+ jest-util "^27.0.6"
+ pretty-format "^27.0.6"
throat "^6.0.1"
-jest-leak-detector@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz#ce19aa9dbcf7a72a9d58907a970427506f624e69"
- integrity sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==
+jest-leak-detector@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f"
+ integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==
dependencies:
- jest-get-type "^27.0.1"
- pretty-format "^27.0.2"
+ jest-get-type "^27.0.6"
+ pretty-format "^27.0.6"
-jest-matcher-utils@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz#f14c060605a95a466cdc759acc546c6f4cbfc4f0"
- integrity sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==
+jest-matcher-utils@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9"
+ integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==
dependencies:
chalk "^4.0.0"
- jest-diff "^27.0.2"
- jest-get-type "^27.0.1"
- pretty-format "^27.0.2"
+ jest-diff "^27.0.6"
+ jest-get-type "^27.0.6"
+ pretty-format "^27.0.6"
-jest-message-util@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz#181c9b67dff504d8f4ad15cba10d8b80f272048c"
- integrity sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==
+jest-message-util@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5"
+ integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.4"
micromatch "^4.0.4"
- pretty-format "^27.0.2"
+ pretty-format "^27.0.6"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^27.0.3:
- version "27.0.3"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz#5591844f9192b3335c0dca38e8e45ed297d4d23d"
- integrity sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==
+jest-mock@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467"
+ integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
jest-pnp-resolver@^1.2.2:
@@ -6315,76 +6604,76 @@
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
-jest-regex-util@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz#69d4b1bf5b690faa3490113c47486ed85dd45b68"
- integrity sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==
+jest-regex-util@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5"
+ integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==
-jest-resolve-dependencies@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.5.tgz#819ccdddd909c65acddb063aac3a49e4ba1ed569"
- integrity sha512-xUj2dPoEEd59P+nuih4XwNa4nJ/zRd/g4rMvjHrZPEBWeWRq/aJnnM6mug+B+Nx+ILXGtfWHzQvh7TqNV/WbuA==
+jest-resolve-dependencies@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f"
+ integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==
dependencies:
- "@jest/types" "^27.0.2"
- jest-regex-util "^27.0.1"
- jest-snapshot "^27.0.5"
+ "@jest/types" "^27.0.6"
+ jest-regex-util "^27.0.6"
+ jest-snapshot "^27.0.6"
-jest-resolve@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.5.tgz#937535a5b481ad58e7121eaea46d1424a1e0c507"
- integrity sha512-Md65pngRh8cRuWVdWznXBB5eDt391OJpdBaJMxfjfuXCvOhM3qQBtLMCMTykhuUKiBMmy5BhqCW7AVOKmPrW+Q==
+jest-resolve@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff"
+ integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
chalk "^4.0.0"
escalade "^3.1.1"
graceful-fs "^4.2.4"
jest-pnp-resolver "^1.2.2"
- jest-util "^27.0.2"
- jest-validate "^27.0.2"
+ jest-util "^27.0.6"
+ jest-validate "^27.0.6"
resolve "^1.20.0"
slash "^3.0.0"
-jest-runner@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.5.tgz#b6fdc587e1a5056339205914294555c554efc08a"
- integrity sha512-HNhOtrhfKPArcECgBTcWOc+8OSL8GoFoa7RsHGnfZR1C1dFohxy9eLtpYBS+koybAHlJLZzNCx2Y/Ic3iEtJpQ==
+jest-runner@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520"
+ integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==
dependencies:
- "@jest/console" "^27.0.2"
- "@jest/environment" "^27.0.5"
- "@jest/test-result" "^27.0.2"
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/console" "^27.0.6"
+ "@jest/environment" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.8.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-docblock "^27.0.1"
- jest-environment-jsdom "^27.0.5"
- jest-environment-node "^27.0.5"
- jest-haste-map "^27.0.5"
- jest-leak-detector "^27.0.2"
- jest-message-util "^27.0.2"
- jest-resolve "^27.0.5"
- jest-runtime "^27.0.5"
- jest-util "^27.0.2"
- jest-worker "^27.0.2"
+ jest-docblock "^27.0.6"
+ jest-environment-jsdom "^27.0.6"
+ jest-environment-node "^27.0.6"
+ jest-haste-map "^27.0.6"
+ jest-leak-detector "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-runtime "^27.0.6"
+ jest-util "^27.0.6"
+ jest-worker "^27.0.6"
source-map-support "^0.5.6"
throat "^6.0.1"
-jest-runtime@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.5.tgz#cd5d1aa9754d30ddf9f13038b3cb7b95b46f552d"
- integrity sha512-V/w/+VasowPESbmhXn5AsBGPfb35T7jZPGZybYTHxZdP7Gwaa+A0EXE6rx30DshHKA98lVCODbCO8KZpEW3hiQ==
+jest-runtime@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9"
+ integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==
dependencies:
- "@jest/console" "^27.0.2"
- "@jest/environment" "^27.0.5"
- "@jest/fake-timers" "^27.0.5"
- "@jest/globals" "^27.0.5"
- "@jest/source-map" "^27.0.1"
- "@jest/test-result" "^27.0.2"
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/console" "^27.0.6"
+ "@jest/environment" "^27.0.6"
+ "@jest/fake-timers" "^27.0.6"
+ "@jest/globals" "^27.0.6"
+ "@jest/source-map" "^27.0.6"
+ "@jest/test-result" "^27.0.6"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
@@ -6392,30 +6681,30 @@
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.2.4"
- jest-haste-map "^27.0.5"
- jest-message-util "^27.0.2"
- jest-mock "^27.0.3"
- jest-regex-util "^27.0.1"
- jest-resolve "^27.0.5"
- jest-snapshot "^27.0.5"
- jest-util "^27.0.2"
- jest-validate "^27.0.2"
+ jest-haste-map "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-mock "^27.0.6"
+ jest-regex-util "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-snapshot "^27.0.6"
+ jest-util "^27.0.6"
+ jest-validate "^27.0.6"
slash "^3.0.0"
strip-bom "^4.0.0"
yargs "^16.0.3"
-jest-serializer@^27.0.1:
- version "27.0.1"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz#2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020"
- integrity sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==
+jest-serializer@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1"
+ integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==
dependencies:
"@types/node" "*"
graceful-fs "^4.2.4"
-jest-snapshot@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.5.tgz#6e3b9e8e193685372baff771ba34af631fe4d4d5"
- integrity sha512-H1yFYdgnL1vXvDqMrnDStH6yHFdMEuzYQYc71SnC/IJnuuhW6J16w8GWG1P+qGd3Ag3sQHjbRr0TcwEo/vGS+g==
+jest-snapshot@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf"
+ integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==
dependencies:
"@babel/core" "^7.7.2"
"@babel/generator" "^7.7.2"
@@ -6423,79 +6712,79 @@
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.0.0"
- "@jest/transform" "^27.0.5"
- "@jest/types" "^27.0.2"
+ "@jest/transform" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/babel__traverse" "^7.0.4"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^27.0.2"
+ expect "^27.0.6"
graceful-fs "^4.2.4"
- jest-diff "^27.0.2"
- jest-get-type "^27.0.1"
- jest-haste-map "^27.0.5"
- jest-matcher-utils "^27.0.2"
- jest-message-util "^27.0.2"
- jest-resolve "^27.0.5"
- jest-util "^27.0.2"
+ jest-diff "^27.0.6"
+ jest-get-type "^27.0.6"
+ jest-haste-map "^27.0.6"
+ jest-matcher-utils "^27.0.6"
+ jest-message-util "^27.0.6"
+ jest-resolve "^27.0.6"
+ jest-util "^27.0.6"
natural-compare "^1.4.0"
- pretty-format "^27.0.2"
+ pretty-format "^27.0.6"
semver "^7.3.2"
-jest-util@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz#fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7"
- integrity sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==
+jest-util@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297"
+ integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
chalk "^4.0.0"
graceful-fs "^4.2.4"
is-ci "^3.0.0"
picomatch "^2.2.3"
-jest-validate@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz#7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5"
- integrity sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==
+jest-validate@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6"
+ integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
camelcase "^6.2.0"
chalk "^4.0.0"
- jest-get-type "^27.0.1"
+ jest-get-type "^27.0.6"
leven "^3.1.0"
- pretty-format "^27.0.2"
+ pretty-format "^27.0.6"
-jest-watcher@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz#dab5f9443e2d7f52597186480731a8c6335c5deb"
- integrity sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==
+jest-watcher@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c"
+ integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==
dependencies:
- "@jest/test-result" "^27.0.2"
- "@jest/types" "^27.0.2"
+ "@jest/test-result" "^27.0.6"
+ "@jest/types" "^27.0.6"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
- jest-util "^27.0.2"
+ jest-util "^27.0.6"
string-length "^4.0.1"
-jest-worker@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05"
- integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==
+jest-worker@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed"
+ integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^27.0.5:
- version "27.0.5"
- resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.5.tgz#141825e105514a834cc8d6e44670509e8d74c5f2"
- integrity sha512-4NlVMS29gE+JOZvgmSAsz3eOjkSsHqjTajlIsah/4MVSmKvf3zFP/TvgcLoWe2UVHiE9KF741sReqhF0p4mqbQ==
+jest@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505"
+ integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA==
dependencies:
- "@jest/core" "^27.0.5"
+ "@jest/core" "^27.0.6"
import-local "^3.0.2"
- jest-cli "^27.0.5"
+ jest-cli "^27.0.6"
js-sha3@0.5.7, js-sha3@^0.5.7:
version "0.5.7"
@@ -6931,6 +7220,13 @@
typescript "^3.9.5"
walkdir "^0.4.1"
+magic-string@^0.25.5, magic-string@^0.25.7:
+ version "0.25.7"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
+ integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
+ dependencies:
+ sourcemap-codec "^1.4.4"
+
make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -7366,6 +7662,11 @@
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
+node-releases@^1.1.73:
+ version "1.1.74"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e"
+ integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==
+
node-source-walk@^4.0.0, node-source-walk@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.2.0.tgz#c2efe731ea8ba9c03c562aa0a9d984e54f27bc2c"
@@ -7812,7 +8113,7 @@
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
@@ -7994,17 +8295,17 @@
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
-prettier@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"
- integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==
+prettier@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
+ integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
-pretty-format@^27.0.2:
- version "27.0.2"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz#9283ff8c4f581b186b2d4da461617143dca478a4"
- integrity sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==
+pretty-format@^27.0.6:
+ version "27.0.6"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f"
+ integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==
dependencies:
- "@jest/types" "^27.0.2"
+ "@jest/types" "^27.0.6"
ansi-regex "^5.0.0"
ansi-styles "^5.0.0"
react-is "^17.0.1"
@@ -8454,7 +8755,7 @@
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^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:
+resolve@^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.19.0, resolve@^1.20.0, resolve@^1.3.2:
version "1.20.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@@ -8524,6 +8825,13 @@
dependencies:
bn.js "^4.11.1"
+rollup@^2.56.2:
+ version "2.56.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.2.tgz#a045ff3f6af53ee009b5f5016ca3da0329e5470f"
+ integrity sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
run-async@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
@@ -8543,10 +8851,10 @@
dependencies:
tslib "^1.9.0"
-rxjs@^7.2.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.2.0.tgz#5cd12409639e9514a71c9f5f9192b2c4ae94de31"
- integrity sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==
+rxjs@^7.3.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6"
+ integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==
dependencies:
tslib "~2.1.0"
@@ -8894,6 +9202,11 @@
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+sourcemap-codec@^1.4.4:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+ integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+
spdx-correct@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
@@ -9453,16 +9766,16 @@
dependencies:
safe-buffer "^5.0.1"
+tweetnacl@1.x.x, tweetnacl@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
+ integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
+
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-tweetnacl@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
- integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
-
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -9527,11 +9840,16 @@
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
-typescript@^4.2.4, typescript@^4.3.4:
+typescript@^4.2.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
+typescript@^4.3.5:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
+ integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
+
uglify-js@^3.1.4:
version "3.13.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b"
@@ -10339,7 +10657,7 @@
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^17.0.0, yargs@^17.0.1:
+yargs@^17.0.0:
version "17.0.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"
integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==
@@ -10352,6 +10670,19 @@
y18n "^5.0.5"
yargs-parser "^20.2.2"
+yargs@^17.1.0, yargs@^17.1.1:
+ version "17.1.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba"
+ integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"