difftreelog
Merge branch 'develop' into feature/NFTPAR-240
in: master
15 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -12,11 +12,11 @@
[[package]]
name = "addr2line"
-version = "0.13.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
+checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
dependencies = [
- "gimli 0.22.0",
+ "gimli 0.23.0",
]
[[package]]
@@ -55,7 +55,7 @@
"aes",
"block-cipher",
"ghash",
- "subtle 2.3.0",
+ "subtle 2.4.0",
]
[[package]]
@@ -95,10 +95,16 @@
checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
[[package]]
+name = "ahash"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
+
+[[package]]
name = "aho-corasick"
-version = "0.7.14"
+version = "0.7.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d"
+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
dependencies = [
"memchr",
]
@@ -134,9 +140,9 @@
[[package]]
name = "anyhow"
-version = "1.0.33"
+version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c"
+checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"
[[package]]
name = "approx"
@@ -149,9 +155,9 @@
[[package]]
name = "arc-swap"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
+checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8"
[[package]]
name = "arrayref"
@@ -170,9 +176,9 @@
[[package]]
name = "arrayvec"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "asn1_der"
@@ -206,36 +212,36 @@
[[package]]
name = "async-executor"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d373d78ded7d0b3fa8039375718cde0aace493f2e34fb60f51cbf567562ca801"
+checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146"
dependencies = [
"async-task",
"concurrent-queue",
"fastrand",
"futures-lite",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
"vec-arena",
]
[[package]]
name = "async-global-executor"
-version = "1.4.0"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0659b83a146398616883aa5199cdd1b055ec088a83c9a338eab3534f33f0622e"
+checksum = "73079b49cd26b8fd5a15f68fc7707fc78698dc2a3d61430f2a7a9430230dfa04"
dependencies = [
"async-executor",
"async-io",
"futures-lite",
"num_cpus",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
]
[[package]]
name = "async-io"
-version = "1.1.10"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54bc4c1c7292475efb2253227dbcfad8fe1ca4c02bc62c510cc2f3da5c4704e"
+checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd"
dependencies = [
"concurrent-queue",
"fastrand",
@@ -243,7 +249,7 @@
"libc",
"log",
"nb-connect",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
"parking",
"polling",
"vec-arena",
@@ -261,16 +267,34 @@
]
[[package]]
+name = "async-process"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda"
+dependencies = [
+ "async-io",
+ "blocking",
+ "cfg-if 0.1.10",
+ "event-listener",
+ "futures-lite",
+ "once_cell 1.5.2",
+ "signal-hook",
+ "winapi 0.3.9",
+]
+
+[[package]]
name = "async-std"
-version = "1.6.5"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9fa76751505e8df1c7a77762f60486f60c71bbd9b8557f4da6ad47d083732ed"
+checksum = "8f9f84f1280a2b436a2c77c2582602732b6c2f4321d5494d6e799e6c367859a8"
dependencies = [
+ "async-channel",
"async-global-executor",
"async-io",
"async-mutex",
+ "async-process",
"blocking",
- "crossbeam-utils",
+ "crossbeam-utils 0.8.1",
"futures-channel",
"futures-core",
"futures-io",
@@ -280,8 +304,8 @@
"log",
"memchr",
"num_cpus",
- "once_cell 1.4.1",
- "pin-project-lite",
+ "once_cell 1.5.2",
+ "pin-project-lite 0.2.0",
"pin-utils",
"slab",
"wasm-bindgen-futures",
@@ -289,9 +313,9 @@
[[package]]
name = "async-task"
-version = "4.0.2"
+version = "4.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ab27c1aa62945039e44edaeee1dc23c74cc0c303dd5fe0fb462a184f1c3a518"
+checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
[[package]]
name = "async-tls"
@@ -299,7 +323,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"rustls",
"webpki",
"webpki-roots 0.19.0",
@@ -307,9 +331,9 @@
[[package]]
name = "async-trait"
-version = "0.1.41"
+version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0"
+checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d"
dependencies = [
"proc-macro2",
"quote",
@@ -353,15 +377,15 @@
[[package]]
name = "backtrace"
-version = "0.3.53"
+version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "707b586e0e2f247cbde68cdd2c3ce69ea7b7be43e1c5b426e37c9319c4b9838e"
+checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
dependencies = [
"addr2line",
"cfg-if 1.0.0",
"libc",
"miniz_oxide",
- "object 0.21.1",
+ "object 0.22.0",
"rustc-demangle",
]
@@ -384,6 +408,12 @@
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
name = "bincode"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -456,15 +486,13 @@
[[package]]
name = "blake2"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471"
+checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4"
dependencies = [
- "byte-tools",
- "byteorder 1.3.4",
"crypto-mac 0.8.0",
"digest 0.9.0",
- "opaque-debug 0.2.3",
+ "opaque-debug 0.3.0",
]
[[package]]
@@ -479,23 +507,23 @@
[[package]]
name = "blake2b_simd"
-version = "0.5.10"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"constant_time_eq",
]
[[package]]
name = "blake2s_simd"
-version = "0.5.10"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44"
+checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"constant_time_eq",
]
@@ -556,7 +584,7 @@
"atomic-waker",
"fastrand",
"futures-lite",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
]
[[package]]
@@ -566,10 +594,16 @@
checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
[[package]]
+name = "bs58"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
+
+[[package]]
name = "bstr"
-version = "0.2.13"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
+checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"
dependencies = [
"memchr",
]
@@ -635,9 +669,9 @@
[[package]]
name = "cc"
-version = "1.0.61"
+version = "1.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d"
+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
dependencies = [
"jobserver",
]
@@ -669,7 +703,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "244fbce0d47e97e8ef2f63b81d5e05882cb518c68531eb33194990d7b7e85845"
dependencies = [
- "stream-cipher 0.7.1",
+ "stream-cipher",
"zeroize",
]
@@ -682,7 +716,7 @@
"aead",
"chacha20",
"poly1305",
- "stream-cipher 0.7.1",
+ "stream-cipher",
"zeroize",
]
@@ -735,15 +769,6 @@
]
[[package]]
-name = "cloudabi"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
name = "concurrent-queue"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -754,9 +779,9 @@
[[package]]
name = "const-random"
-version = "0.1.11"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02"
+checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4"
dependencies = [
"const-random-macro",
"proc-macro-hack",
@@ -764,15 +789,23 @@
[[package]]
name = "const-random-macro"
-version = "0.1.11"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685"
+checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40"
dependencies = [
"getrandom 0.2.0",
+ "lazy_static",
"proc-macro-hack",
+ "tiny-keccak",
]
[[package]]
+name = "const_fn"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
+
+[[package]]
name = "constant_time_eq"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -801,6 +834,12 @@
checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
[[package]]
+name = "cpuid-bool"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
+
+[[package]]
name = "cranelift-bforest"
version = "0.66.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -824,7 +863,7 @@
"log",
"regalloc",
"serde",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"target-lexicon",
"thiserror",
]
@@ -862,7 +901,7 @@
dependencies = [
"cranelift-codegen",
"log",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"target-lexicon",
]
@@ -894,21 +933,21 @@
[[package]]
name = "crc32fast"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
]
[[package]]
name = "crossbeam-channel"
-version = "0.4.4"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
+checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
dependencies = [
- "crossbeam-utils",
- "maybe-uninit",
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.1",
]
[[package]]
@@ -917,12 +956,23 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
dependencies = [
- "crossbeam-epoch",
- "crossbeam-utils",
+ "crossbeam-epoch 0.8.2",
+ "crossbeam-utils 0.7.2",
"maybe-uninit",
]
[[package]]
+name = "crossbeam-deque"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-epoch 0.9.1",
+ "crossbeam-utils 0.8.1",
+]
+
+[[package]]
name = "crossbeam-epoch"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -930,10 +980,24 @@
dependencies = [
"autocfg 1.0.1",
"cfg-if 0.1.10",
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"lazy_static",
"maybe-uninit",
- "memoffset",
+ "memoffset 0.5.6",
+ "scopeguard 1.1.0",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
+dependencies = [
+ "cfg-if 1.0.0",
+ "const_fn",
+ "crossbeam-utils 0.8.1",
+ "lazy_static",
+ "memoffset 0.6.1",
"scopeguard 1.1.0",
]
@@ -944,7 +1008,7 @@
checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
dependencies = [
"cfg-if 0.1.10",
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"maybe-uninit",
]
@@ -960,6 +1024,17 @@
]
[[package]]
+name = "crossbeam-utils"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
+dependencies = [
+ "autocfg 1.0.1",
+ "cfg-if 1.0.0",
+ "lazy_static",
+]
+
+[[package]]
name = "crunchy"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -982,7 +1057,7 @@
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
dependencies = [
"generic-array 0.14.4",
- "subtle 2.3.0",
+ "subtle 2.4.0",
]
[[package]]
@@ -1013,7 +1088,7 @@
"byteorder 1.3.4",
"digest 0.8.1",
"rand_core 0.5.1",
- "subtle 2.3.0",
+ "subtle 2.4.0",
"zeroize",
]
@@ -1026,15 +1101,15 @@
"byteorder 1.3.4",
"digest 0.9.0",
"rand_core 0.5.1",
- "subtle 2.3.0",
+ "subtle 2.4.0",
"zeroize",
]
[[package]]
name = "data-encoding"
-version = "2.3.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6"
+checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908"
[[package]]
name = "derive_more"
@@ -1119,9 +1194,9 @@
[[package]]
name = "dyn-clone"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82"
+checksum = "d55796afa1b20c2945ca8eabfc421839f2b766619209f1ede813cf2484f31804"
[[package]]
name = "ed25519"
@@ -1142,7 +1217,7 @@
"ed25519",
"rand 0.7.3",
"serde",
- "sha2 0.9.1",
+ "sha2 0.9.2",
"zeroize",
]
@@ -1182,9 +1257,9 @@
[[package]]
name = "errno"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01"
+checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe"
dependencies = [
"errno-dragonfly",
"libc",
@@ -1213,7 +1288,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
]
[[package]]
@@ -1285,7 +1360,7 @@
checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"
dependencies = [
"either",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 2.0.2",
"log",
"num-traits",
@@ -1313,11 +1388,11 @@
[[package]]
name = "flate2"
-version = "1.0.18"
+version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee"
+checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"crc32fast",
"libc",
"libz-sys",
@@ -1325,6 +1400,22 @@
]
[[package]]
+name = "flexi_logger"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aaab3caedb4149800f91e8e4899f29cd9ddf3b569b04c365ca9334f92f7542bf"
+dependencies = [
+ "atty",
+ "chrono",
+ "glob",
+ "lazy_static",
+ "log",
+ "regex",
+ "thiserror",
+ "yansi",
+]
+
+[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1333,15 +1424,25 @@
[[package]]
name = "fork-tree"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
]
[[package]]
+name = "form_urlencoded"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
+dependencies = [
+ "matches",
+ "percent-encoding 2.1.0",
+]
+
+[[package]]
name = "frame-benchmarking"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -1359,7 +1460,7 @@
[[package]]
name = "frame-benchmarking-cli"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-benchmarking",
"parity-scale-codec",
@@ -1377,7 +1478,7 @@
[[package]]
name = "frame-executive"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -1393,7 +1494,7 @@
[[package]]
name = "frame-metadata"
version = "12.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"serde",
@@ -1404,18 +1505,18 @@
[[package]]
name = "frame-support"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"bitmask",
"frame-metadata",
"frame-support-procedural",
"impl-trait-for-tuples",
"log",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
"parity-scale-codec",
"paste",
"serde",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"sp-arithmetic",
"sp-core",
"sp-inherents",
@@ -1429,7 +1530,7 @@
[[package]]
name = "frame-support-procedural"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support-procedural-tools",
"proc-macro2",
@@ -1440,7 +1541,7 @@
[[package]]
name = "frame-support-procedural-tools"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
@@ -1452,7 +1553,7 @@
[[package]]
name = "frame-support-procedural-tools-derive"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"proc-macro2",
"quote",
@@ -1462,7 +1563,7 @@
[[package]]
name = "frame-system"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"impl-trait-for-tuples",
@@ -1478,7 +1579,7 @@
[[package]]
name = "frame-system-benchmarking"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -1492,7 +1593,7 @@
[[package]]
name = "frame-system-rpc-runtime-api"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -1500,9 +1601,9 @@
[[package]]
name = "fs-swap"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb"
+checksum = "5839fda247e24ca4919c87c71dd5ca658f1f39e4f06829f80e3f15c3bafcfc2c"
dependencies = [
"lazy_static",
"libc",
@@ -1540,9 +1641,9 @@
[[package]]
name = "futures"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e"
+checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
dependencies = [
"futures-channel",
"futures-core",
@@ -1555,9 +1656,9 @@
[[package]]
name = "futures-channel"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74"
+checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
dependencies = [
"futures-core",
"futures-sink",
@@ -1574,9 +1675,9 @@
[[package]]
name = "futures-core"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b"
+checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
[[package]]
name = "futures-core-preview"
@@ -1601,20 +1702,20 @@
checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
dependencies = [
"futures 0.1.30",
- "futures 0.3.6",
+ "futures 0.3.8",
"lazy_static",
"log",
"parking_lot 0.9.0",
- "pin-project",
+ "pin-project 0.4.27",
"serde",
"serde_json",
]
[[package]]
name = "futures-executor"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab"
+checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
dependencies = [
"futures-core",
"futures-task",
@@ -1624,30 +1725,30 @@
[[package]]
name = "futures-io"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c"
+checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
[[package]]
name = "futures-lite"
-version = "1.11.1"
+version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "381a7ad57b1bad34693f63f6f377e1abded7a9c85c9d3eb6771e11c60aaadab9"
+checksum = "5e6c079abfac3ab269e2927ec048dabc89d009ebfdda6b8ee86624f30c689658"
dependencies = [
"fastrand",
"futures-core",
"futures-io",
"memchr",
"parking",
- "pin-project-lite",
+ "pin-project-lite 0.1.11",
"waker-fn",
]
[[package]]
name = "futures-macro"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b"
+checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
dependencies = [
"proc-macro-hack",
"proc-macro2",
@@ -1657,17 +1758,17 @@
[[package]]
name = "futures-sink"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd"
+checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
[[package]]
name = "futures-task"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94"
+checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
dependencies = [
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
]
[[package]]
@@ -1684,9 +1785,9 @@
[[package]]
name = "futures-util"
-version = "0.3.6"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34"
+checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
dependencies = [
"futures 0.1.30",
"futures-channel",
@@ -1696,7 +1797,7 @@
"futures-sink",
"futures-task",
"memchr",
- "pin-project",
+ "pin-project 1.0.2",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@@ -1722,9 +1823,9 @@
checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b"
dependencies = [
"bytes 0.5.6",
- "futures 0.3.6",
+ "futures 0.3.8",
"memchr",
- "pin-project",
+ "pin-project 0.4.27",
]
[[package]]
@@ -1734,6 +1835,19 @@
checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
[[package]]
+name = "generator"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc"
+dependencies = [
+ "cc",
+ "libc",
+ "log",
+ "rustc_version",
+ "winapi 0.3.9",
+]
+
+[[package]]
name = "generic-array"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1818,9 +1932,9 @@
[[package]]
name = "gimli"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
+checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
[[package]]
name = "glob"
@@ -1830,9 +1944,9 @@
[[package]]
name = "globset"
-version = "0.4.5"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120"
+checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a"
dependencies = [
"aho-corasick",
"bstr",
@@ -1874,21 +1988,22 @@
[[package]]
name = "h2"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53"
+checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
dependencies = [
"bytes 0.5.6",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
- "http 0.2.1",
+ "http 0.2.2",
"indexmap",
"slab",
- "tokio 0.2.22",
+ "tokio 0.2.24",
"tokio-util",
"tracing",
+ "tracing-futures",
]
[[package]]
@@ -1941,6 +2056,9 @@
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
+dependencies = [
+ "ahash 0.4.7",
+]
[[package]]
name = "heck"
@@ -2012,9 +2130,9 @@
[[package]]
name = "http"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
+checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
dependencies = [
"bytes 0.5.6",
"fnv",
@@ -2040,7 +2158,7 @@
checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
dependencies = [
"bytes 0.5.6",
- "http 0.2.1",
+ "http 0.2.2",
]
[[package]]
@@ -2096,23 +2214,23 @@
[[package]]
name = "hyper"
-version = "0.13.8"
+version = "0.13.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835"
+checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf"
dependencies = [
"bytes 0.5.6",
"futures-channel",
"futures-core",
"futures-util",
- "h2 0.2.6",
- "http 0.2.1",
+ "h2 0.2.7",
+ "http 0.2.2",
"http-body 0.3.1",
"httparse",
"httpdate",
"itoa",
- "pin-project",
+ "pin-project 1.0.2",
"socket2",
- "tokio 0.2.22",
+ "tokio 0.2.24",
"tower-service",
"tracing",
"want 0.3.0",
@@ -2127,11 +2245,11 @@
"bytes 0.5.6",
"ct-logs",
"futures-util",
- "hyper 0.13.8",
+ "hyper 0.13.9",
"log",
"rustls",
"rustls-native-certs",
- "tokio 0.2.22",
+ "tokio 0.2.24",
"tokio-rustls",
"webpki",
]
@@ -2189,9 +2307,9 @@
[[package]]
name = "indexmap"
-version = "1.6.0"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
+checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
dependencies = [
"autocfg 1.0.1",
"hashbrown 0.9.1",
@@ -2200,11 +2318,11 @@
[[package]]
name = "instant"
-version = "0.1.7"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66"
+checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -2222,7 +2340,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 2.0.2",
]
@@ -2282,9 +2400,9 @@
[[package]]
name = "js-sys"
-version = "0.3.45"
+version = "0.3.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8"
+checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
dependencies = [
"wasm-bindgen",
]
@@ -2443,7 +2561,7 @@
checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a"
dependencies = [
"parity-util-mem",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
]
[[package]]
@@ -2472,7 +2590,7 @@
"parking_lot 0.10.2",
"regex",
"rocksdb",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
]
[[package]]
@@ -2495,9 +2613,9 @@
[[package]]
name = "libc"
-version = "0.2.79"
+version = "0.2.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743"
+checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
[[package]]
name = "libloading"
@@ -2523,7 +2641,7 @@
dependencies = [
"atomic",
"bytes 0.5.6",
- "futures 0.3.6",
+ "futures 0.3.8",
"lazy_static",
"libp2p-core",
"libp2p-core-derive",
@@ -2549,8 +2667,8 @@
"multihash",
"parity-multiaddr",
"parking_lot 0.10.2",
- "pin-project",
- "smallvec 1.4.2",
+ "pin-project 0.4.27",
+ "smallvec 1.5.1",
"wasm-timer",
]
@@ -2561,11 +2679,11 @@
checksum = "52f13ba8c7df0768af2eb391696d562c7de88cc3a35122531aaa6a7d77754d25"
dependencies = [
"asn1_der",
- "bs58",
+ "bs58 0.3.1",
"ed25519-dalek",
"either",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"lazy_static",
"libsecp256k1",
@@ -2574,14 +2692,14 @@
"multistream-select",
"parity-multiaddr",
"parking_lot 0.10.2",
- "pin-project",
+ "pin-project 0.4.27",
"prost",
"prost-build",
"rand 0.7.3",
"ring",
"rw-stream-sink",
"sha2 0.8.2",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"thiserror",
"unsigned-varint 0.4.0",
"void",
@@ -2605,7 +2723,7 @@
checksum = "74029ae187f35f4b8ddf26b9779a68b340045d708528a103917cdca49a296db5"
dependencies = [
"flate2",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
]
@@ -2615,7 +2733,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cf319822e08dd65c8e060d2354e9f952895bbc433f5706c75ed010c152aee5e"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"log",
]
@@ -2628,13 +2746,13 @@
dependencies = [
"cuckoofilter",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"libp2p-swarm",
"prost",
"prost-build",
"rand 0.7.3",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
]
[[package]]
@@ -2647,7 +2765,7 @@
"byteorder 1.3.4",
"bytes 0.5.6",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures_codec",
"hex_fmt",
"libp2p-core",
@@ -2658,7 +2776,7 @@
"prost-build",
"rand 0.7.3",
"sha2 0.8.2",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"unsigned-varint 0.4.0",
"wasm-timer",
]
@@ -2669,13 +2787,13 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56396ee63aa9164eacf40c2c5d2bda8c4133c2f57e1b0425d51d3a4e362583b1"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"libp2p-swarm",
"log",
"prost",
"prost-build",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"wasm-timer",
]
@@ -2685,11 +2803,11 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc7fa9047f8b8f544278a35c2d9d45d3b2c1785f2d86d4e1629d6edf97be3955"
dependencies = [
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"bytes 0.5.6",
"either",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures_codec",
"libp2p-core",
"libp2p-swarm",
@@ -2699,7 +2817,7 @@
"prost-build",
"rand 0.7.3",
"sha2 0.8.2",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"uint",
"unsigned-varint 0.4.0",
"void",
@@ -2716,14 +2834,14 @@
"data-encoding",
"dns-parser",
"either",
- "futures 0.3.6",
+ "futures 0.3.8",
"lazy_static",
"libp2p-core",
"libp2p-swarm",
"log",
"net2",
"rand 0.7.3",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"void",
"wasm-timer",
]
@@ -2736,7 +2854,7 @@
dependencies = [
"bytes 0.5.6",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures_codec",
"libp2p-core",
"log",
@@ -2752,7 +2870,7 @@
dependencies = [
"bytes 0.5.6",
"curve25519-dalek 2.1.0",
- "futures 0.3.6",
+ "futures 0.3.8",
"lazy_static",
"libp2p-core",
"log",
@@ -2772,7 +2890,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad063c21dfcea4518ac9e8bd4119d33a5b26c41e674f602f41f05617a368a5c8"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -2788,7 +2906,7 @@
checksum = "903a12e99c72dbebefea258de887982adeacc7025baa1ceb10b7fa9928f54791"
dependencies = [
"bytes 0.5.6",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures_codec",
"libp2p-core",
"log",
@@ -2801,16 +2919,16 @@
[[package]]
name = "libp2p-pnet"
-version = "0.19.1"
+version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37d0db10e139d22d7af0b23ed7949449ec86262798aa0fd01595abdbcb02dc87"
+checksum = "96b3c2d5d26a9500e959a0e19743897239a6c4be78dadf99b70414301a70c006"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"log",
- "pin-project",
+ "pin-project 0.4.27",
"rand 0.7.3",
"salsa20",
- "sha3 0.8.2",
+ "sha3",
]
[[package]]
@@ -2821,14 +2939,14 @@
dependencies = [
"async-trait",
"bytes 0.5.6",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"libp2p-swarm",
"log",
- "lru 0.6.0",
+ "lru 0.6.2",
"minicbor",
"rand 0.7.3",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"unsigned-varint 0.5.1",
"wasm-timer",
]
@@ -2840,11 +2958,11 @@
checksum = "7193e444210132237b81b755ec7fe53f1c4bd2f53cf719729b94c0c72eb6eaa1"
dependencies = [
"either",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"log",
"rand 0.7.3",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"void",
"wasm-timer",
]
@@ -2856,7 +2974,7 @@
checksum = "44f42ec130d7a37a7e47bf4398026b7ad9185c08ed26972e2720f8b94112796f"
dependencies = [
"async-std",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"get_if_addrs",
"ipnet",
@@ -2872,7 +2990,7 @@
checksum = "dea7acb0a034f70d7db94c300eba3f65c0f6298820105624088a9609c9974d77"
dependencies = [
"async-std",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"log",
]
@@ -2883,7 +3001,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34c1faac6f92c21fbe155417957863ea822fba9e9fd5eb24c0912336a100e63f"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"js-sys",
"libp2p-core",
"parity-send-wrapper",
@@ -2899,14 +3017,14 @@
dependencies = [
"async-tls",
"either",
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
"log",
"quicksink",
"rustls",
"rw-stream-sink",
"soketto",
- "url 2.1.1",
+ "url 2.2.0",
"webpki",
"webpki-roots 0.18.0",
]
@@ -2917,9 +3035,9 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "781d9b9f043dcdabc40640807125368596b849fd4d96cdca2dcf052fdf6f33fd"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p-core",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.1",
"thiserror",
"yamux",
]
@@ -2948,7 +3066,7 @@
"hmac-drbg",
"rand 0.7.3",
"sha2 0.8.2",
- "subtle 2.3.0",
+ "subtle 2.4.0",
"typenum",
]
@@ -3009,9 +3127,9 @@
[[package]]
name = "lock_api"
-version = "0.4.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
+checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
dependencies = [
"scopeguard 1.1.0",
]
@@ -3026,6 +3144,19 @@
]
[[package]]
+name = "loom"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0e8460f2f2121162705187214720353c517b97bdfb3494c0b1e33d83ebe4bed"
+dependencies = [
+ "cfg-if 0.1.10",
+ "generator",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
name = "lru"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3036,11 +3167,11 @@
[[package]]
name = "lru"
-version = "0.6.0"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "111b945ac72ec09eb7bc62a0fbdc3cc6e80555a7245f52a69d3921a75b53b153"
+checksum = "3abe07af102235a56ac9a6dd904aab1e05483e2e8afdfffec3598be55b1b7606"
dependencies = [
- "hashbrown 0.8.2",
+ "hashbrown 0.9.1",
]
[[package]]
@@ -3075,9 +3206,9 @@
[[package]]
name = "matrixmultiply"
-version = "0.2.3"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
+checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1"
dependencies = [
"rawpointer",
]
@@ -3090,9 +3221,9 @@
[[package]]
name = "memchr"
-version = "2.3.3"
+version = "2.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
[[package]]
name = "memmap"
@@ -3114,6 +3245,15 @@
]
[[package]]
+name = "memoffset"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
+dependencies = [
+ "autocfg 1.0.1",
+]
+
+[[package]]
name = "memory-db"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3174,9 +3314,9 @@
[[package]]
name = "mio"
-version = "0.6.22"
+version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
"cfg-if 0.1.10",
"fuchsia-zircon",
@@ -3185,7 +3325,7 @@
"kernel32-sys",
"libc",
"log",
- "miow 0.2.1",
+ "miow 0.2.2",
"net2",
"slab",
"winapi 0.2.8",
@@ -3211,7 +3351,7 @@
dependencies = [
"log",
"mio",
- "miow 0.3.5",
+ "miow 0.3.6",
"winapi 0.3.9",
]
@@ -3228,9 +3368,9 @@
[[package]]
name = "miow"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
dependencies = [
"kernel32-sys",
"net2",
@@ -3240,9 +3380,9 @@
[[package]]
name = "miow"
-version = "0.3.5"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
+checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
dependencies = [
"socket2",
"winapi 0.3.9",
@@ -3263,9 +3403,9 @@
"blake2b_simd",
"blake2s_simd",
"digest 0.9.0",
- "sha-1 0.9.1",
- "sha2 0.9.1",
- "sha3 0.9.1",
+ "sha-1 0.9.2",
+ "sha2 0.9.2",
+ "sha3",
"unsigned-varint 0.5.1",
]
@@ -3277,16 +3417,16 @@
[[package]]
name = "multistream-select"
-version = "0.8.2"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5"
+checksum = "93faf2e41f9ee62fb01680ed48f3cc26652352327aa2e59869070358f6b7dd75"
dependencies = [
"bytes 0.5.6",
- "futures 0.3.6",
+ "futures 0.3.8",
"log",
- "pin-project",
- "smallvec 1.4.2",
- "unsigned-varint 0.4.0",
+ "pin-project 1.0.2",
+ "smallvec 1.5.1",
+ "unsigned-varint 0.5.1",
]
[[package]]
@@ -3327,9 +3467,9 @@
[[package]]
name = "net2"
-version = "0.2.35"
+version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
+checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
dependencies = [
"cfg-if 0.1.10",
"libc",
@@ -3340,9 +3480,10 @@
name = "nft"
version = "2.0.0"
dependencies = [
+ "flexi_logger",
"frame-benchmarking",
"frame-benchmarking-cli",
- "futures 0.3.6",
+ "futures 0.3.8",
"jsonrpc-core",
"log",
"nft-runtime",
@@ -3474,9 +3615,9 @@
[[package]]
name = "num-integer"
-version = "0.1.43"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
"autocfg 1.0.1",
"num-traits",
@@ -3496,9 +3637,9 @@
[[package]]
name = "num-traits"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
"autocfg 1.0.1",
"libm",
@@ -3533,9 +3674,9 @@
[[package]]
name = "object"
-version = "0.21.1"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693"
+checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
[[package]]
name = "once_cell"
@@ -3548,11 +3689,11 @@
[[package]]
name = "once_cell"
-version = "1.4.1"
+version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
dependencies = [
- "parking_lot 0.11.0",
+ "parking_lot 0.11.1",
]
[[package]]
@@ -3585,7 +3726,7 @@
[[package]]
name = "pallet-aura"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3604,7 +3745,7 @@
[[package]]
name = "pallet-authorship"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3619,7 +3760,7 @@
[[package]]
name = "pallet-balances"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3633,7 +3774,7 @@
[[package]]
name = "pallet-contracts"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"bitflags",
"frame-support",
@@ -3654,7 +3795,7 @@
[[package]]
name = "pallet-contracts-primitives"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-runtime",
@@ -3664,7 +3805,7 @@
[[package]]
name = "pallet-contracts-rpc"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
@@ -3683,7 +3824,7 @@
[[package]]
name = "pallet-contracts-rpc-runtime-api"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"pallet-contracts-primitives",
"parity-scale-codec",
@@ -3695,7 +3836,7 @@
[[package]]
name = "pallet-finality-tracker"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3711,7 +3852,7 @@
[[package]]
name = "pallet-grandpa"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3754,7 +3895,7 @@
[[package]]
name = "pallet-randomness-collective-flip"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3767,7 +3908,7 @@
[[package]]
name = "pallet-session"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3787,7 +3928,7 @@
[[package]]
name = "pallet-sudo"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3801,7 +3942,7 @@
[[package]]
name = "pallet-timestamp"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3819,14 +3960,14 @@
[[package]]
name = "pallet-transaction-payment"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
"serde",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"sp-core",
"sp-io",
"sp-runtime",
@@ -3836,7 +3977,7 @@
[[package]]
name = "pallet-transaction-payment-rpc"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
@@ -3854,7 +3995,7 @@
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -3867,7 +4008,7 @@
[[package]]
name = "pallet-treasury"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-support",
"frame-system",
@@ -3894,20 +4035,20 @@
[[package]]
name = "parity-multiaddr"
-version = "0.9.2"
+version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2165a93382a93de55868dcbfa11e4a8f99676a9164eee6a2b4a9479ad319c257"
+checksum = "43244a26dc1ddd3097216bb12eaa6cf8a07b060c72718d9ebd60fd297d6401df"
dependencies = [
"arrayref",
- "bs58",
+ "bs58 0.4.0",
"byteorder 1.3.4",
"data-encoding",
"multihash",
"percent-encoding 2.1.0",
"serde",
"static_assertions",
- "unsigned-varint 0.4.0",
- "url 2.1.1",
+ "unsigned-varint 0.5.1",
+ "url 2.2.0",
]
[[package]]
@@ -3916,7 +4057,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c740e5fbcb6847058b40ac7e5574766c6388f585e184d769910fe0d3a2ca861"
dependencies = [
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"bitvec",
"byte-slice-cast",
"parity-scale-codec-derive",
@@ -3952,7 +4093,7 @@
"libc",
"log",
"mio-named-pipes",
- "miow 0.3.5",
+ "miow 0.3.6",
"rand 0.7.3",
"tokio 0.1.22",
"tokio-named-pipes",
@@ -3972,7 +4113,7 @@
"parity-util-mem-derive",
"parking_lot 0.10.2",
"primitive-types",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"winapi 0.3.9",
]
@@ -4008,7 +4149,7 @@
"rand 0.7.3",
"sha-1 0.8.2",
"slab",
- "url 2.1.1",
+ "url 2.2.0",
]
[[package]]
@@ -4050,13 +4191,13 @@
[[package]]
name = "parking_lot"
-version = "0.11.0"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
+checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
dependencies = [
"instant",
- "lock_api 0.4.1",
- "parking_lot_core 0.8.0",
+ "lock_api 0.4.2",
+ "parking_lot_core 0.8.1",
]
[[package]]
@@ -4079,7 +4220,7 @@
checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
dependencies = [
"cfg-if 0.1.10",
- "cloudabi 0.0.3",
+ "cloudabi",
"libc",
"redox_syscall",
"rustc_version",
@@ -4094,25 +4235,24 @@
checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
dependencies = [
"cfg-if 0.1.10",
- "cloudabi 0.0.3",
+ "cloudabi",
"libc",
"redox_syscall",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"winapi 0.3.9",
]
[[package]]
name = "parking_lot_core"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
+checksum = "d7c6d9b8427445284a09c55be860a15855ab580a417ccad9da88f5a06787ced0"
dependencies = [
- "cfg-if 0.1.10",
- "cloudabi 0.1.0",
+ "cfg-if 1.0.0",
"instant",
"libc",
"redox_syscall",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"winapi 0.3.9",
]
@@ -4180,10 +4320,19 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
dependencies = [
- "pin-project-internal",
+ "pin-project-internal 0.4.27",
]
[[package]]
+name = "pin-project"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
+dependencies = [
+ "pin-project-internal 1.0.2",
+]
+
+[[package]]
name = "pin-project-internal"
version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4195,10 +4344,27 @@
]
[[package]]
+name = "pin-project-internal"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
+
+[[package]]
name = "pin-project-lite"
-version = "0.1.10"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e555d9e657502182ac97b539fb3dae8b79cda19e3e4f8ffb5e8de4f18df93c95"
+checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
[[package]]
name = "pin-utils"
@@ -4220,9 +4386,9 @@
[[package]]
name = "polling"
-version = "2.0.1"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab773feb154f12c49ffcfd66ab8bdcf9a1843f950db48b0d8be9d4393783b058"
+checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4"
dependencies = [
"cfg-if 0.1.10",
"libc",
@@ -4233,34 +4399,35 @@
[[package]]
name = "poly1305"
-version = "0.6.1"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22ce46de8e53ee414ca4d02bfefac75d8c12fba948b76622a40b4be34dfce980"
+checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8"
dependencies = [
+ "cpuid-bool 0.2.0",
"universal-hash",
]
[[package]]
name = "polyval"
-version = "0.4.1"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5884790f1ce3553ad55fec37b5aaac5882e0e845a2612df744d6c85c9bf046c"
+checksum = "b4fd92d8e0c06d08525d2e2643cc2b5c80c69ae8eb12c18272d501cd7079ccc0"
dependencies = [
- "cfg-if 0.1.10",
+ "cpuid-bool 0.2.0",
"universal-hash",
]
[[package]]
name = "ppv-lite86"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]]
name = "primitive-types"
-version = "0.7.2"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8"
+checksum = "7dd39dcacf71411ba488570da7bbc89b717225e46478b30ba99b92db6b149809"
dependencies = [
"fixed-hash",
"impl-codec",
@@ -4303,9 +4470,9 @@
[[package]]
name = "proc-macro-hack"
-version = "0.5.18"
+version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro-nested"
@@ -4331,7 +4498,7 @@
"cfg-if 0.1.10",
"fnv",
"lazy_static",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.1",
"regex",
"thiserror",
]
@@ -4412,7 +4579,7 @@
dependencies = [
"futures-core",
"futures-sink",
- "pin-project-lite",
+ "pin-project-lite 0.1.11",
]
[[package]]
@@ -4459,7 +4626,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
dependencies = [
- "cloudabi 0.0.3",
+ "cloudabi",
"fuchsia-cprng",
"libc",
"rand_core 0.3.1",
@@ -4587,7 +4754,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
dependencies = [
- "cloudabi 0.0.3",
+ "cloudabi",
"fuchsia-cprng",
"libc",
"rand_core 0.4.2",
@@ -4642,25 +4809,25 @@
[[package]]
name = "rayon"
-version = "1.4.1"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf6960dc9a5b4ee8d3e4c5787b4a112a8818e0290a42ff664ad60692fdf2032"
+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
dependencies = [
"autocfg 1.0.1",
- "crossbeam-deque",
+ "crossbeam-deque 0.8.0",
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
-version = "1.8.1"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf"
+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
dependencies = [
"crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
+ "crossbeam-deque 0.8.0",
+ "crossbeam-utils 0.8.1",
"lazy_static",
"num_cpus",
]
@@ -4693,18 +4860,18 @@
[[package]]
name = "ref-cast"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623"
+checksum = "e17626b2f4bcf35b84bf379072a66e28cfe5c3c6ae58b38e4914bb8891dabece"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144"
+checksum = "0c523ccaed8ac4b0288948849a350b37d3035827413c458b6a40ddb614bb4f72"
dependencies = [
"proc-macro2",
"quote",
@@ -4719,14 +4886,14 @@
dependencies = [
"log",
"rustc-hash",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
]
[[package]]
name = "regex"
-version = "1.4.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8963b85b8ce3074fecffde43b4b0dded83ce2f367dc8d363afc56679f3ee820b"
+checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
dependencies = [
"aho-corasick",
"memchr",
@@ -4746,9 +4913,9 @@
[[package]]
name = "regex-syntax"
-version = "0.6.20"
+version = "0.6.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c"
+checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
[[package]]
name = "region"
@@ -4779,13 +4946,13 @@
[[package]]
name = "ring"
-version = "0.16.15"
+version = "0.16.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4"
+checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226"
dependencies = [
"cc",
"libc",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
"spin",
"untrusted",
"web-sys",
@@ -4814,21 +4981,21 @@
[[package]]
name = "rust-argon2"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
dependencies = [
- "base64 0.12.3",
+ "base64 0.13.0",
"blake2b_simd",
"constant_time_eq",
- "crossbeam-utils",
+ "crossbeam-utils 0.8.1",
]
[[package]]
name = "rustc-demangle"
-version = "0.1.17"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2610b7f643d18c87dff3b489950269617e6601a51f1f05aa5daefee36f64f0b"
+checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
[[package]]
name = "rustc-hash"
@@ -4882,8 +5049,8 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
dependencies = [
- "futures 0.3.6",
- "pin-project",
+ "futures 0.3.8",
+ "pin-project 0.4.27",
"static_assertions",
]
@@ -4904,30 +5071,19 @@
[[package]]
name = "salsa20"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2324b0e8c3bb9a586a571fdb3136f70e7e2c748de00a78043f86e0cff91f91fe"
-dependencies = [
- "byteorder 1.3.4",
- "salsa20-core",
- "stream-cipher 0.3.2",
-]
-
-[[package]]
-name = "salsa20-core"
-version = "0.2.3"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fe6cc1b9f5a5867853ade63099de70f042f7679e408d1ffe52821c9248e6e69"
+checksum = "c7f47b10fa80f6969bbbd9c8e7cc998f082979d402a9e10579e2303a87955395"
dependencies = [
- "stream-cipher 0.3.2",
+ "stream-cipher",
]
[[package]]
name = "sc-basic-authorship"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
@@ -4949,7 +5105,7 @@
[[package]]
name = "sc-block-builder"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -4966,7 +5122,7 @@
[[package]]
name = "sc-chain-spec"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -4983,7 +5139,7 @@
[[package]]
name = "sc-chain-spec-derive"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -4994,7 +5150,7 @@
[[package]]
name = "sc-cli"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"ansi_term 0.12.1",
"atty",
@@ -5002,7 +5158,8 @@
"chrono",
"derive_more",
"fdlimit",
- "futures 0.3.6",
+ "flexi_logger",
+ "futures 0.3.8",
"hex",
"lazy_static",
"libp2p",
@@ -5034,7 +5191,7 @@
"structopt",
"substrate-prometheus-endpoint",
"time",
- "tokio 0.2.22",
+ "tokio 0.2.24",
"tracing",
"tracing-log",
"tracing-subscriber",
@@ -5043,11 +5200,11 @@
[[package]]
name = "sc-client-api"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"hash-db",
"hex-literal",
"kvdb",
@@ -5079,7 +5236,7 @@
[[package]]
name = "sc-client-db"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"blake2-rfc",
"hash-db",
@@ -5109,7 +5266,7 @@
[[package]]
name = "sc-consensus"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"sc-client-api",
"sp-blockchain",
@@ -5120,10 +5277,10 @@
[[package]]
name = "sc-consensus-aura"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
@@ -5151,9 +5308,9 @@
[[package]]
name = "sc-consensus-slots"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
@@ -5174,7 +5331,7 @@
[[package]]
name = "sc-executor"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"lazy_static",
@@ -5202,7 +5359,7 @@
[[package]]
name = "sc-executor-common"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"log",
@@ -5219,7 +5376,7 @@
[[package]]
name = "sc-executor-wasmi"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"log",
"parity-scale-codec",
@@ -5234,7 +5391,7 @@
[[package]]
name = "sc-executor-wasmtime"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"log",
"parity-scale-codec",
@@ -5252,17 +5409,17 @@
[[package]]
name = "sc-finality-grandpa"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"finality-grandpa",
"fork-tree",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
"parking_lot 0.10.2",
- "pin-project",
+ "pin-project 0.4.27",
"rand 0.7.3",
"sc-block-builder",
"sc-client-api",
@@ -5289,10 +5446,10 @@
[[package]]
name = "sc-informant"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"ansi_term 0.12.1",
- "futures 0.3.6",
+ "futures 0.3.8",
"log",
"parity-util-mem",
"sc-client-api",
@@ -5307,7 +5464,7 @@
[[package]]
name = "sc-keystore"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"hex",
@@ -5317,13 +5474,13 @@
"serde_json",
"sp-application-crypto",
"sp-core",
- "subtle 2.3.0",
+ "subtle 2.4.0",
]
[[package]]
name = "sc-light"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"hash-db",
"lazy_static",
@@ -5342,19 +5499,19 @@
[[package]]
name = "sc-network"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"async-std",
"async-trait",
"bitflags",
- "bs58",
+ "bs58 0.3.1",
"bytes 0.5.6",
"derive_more",
"either",
"erased-serde",
"fnv",
"fork-tree",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"futures_codec",
"hex",
@@ -5367,7 +5524,7 @@
"nohash-hasher",
"parity-scale-codec",
"parking_lot 0.10.2",
- "pin-project",
+ "pin-project 0.4.27",
"prost",
"prost-build",
"rand 0.7.3",
@@ -5396,9 +5553,9 @@
[[package]]
name = "sc-network-gossip"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -5411,13 +5568,13 @@
[[package]]
name = "sc-offchain"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"bytes 0.5.6",
"fnv",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
- "hyper 0.13.8",
+ "hyper 0.13.9",
"hyper-rustls",
"log",
"num_cpus",
@@ -5438,9 +5595,9 @@
[[package]]
name = "sc-peerset"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"libp2p",
"log",
"serde_json",
@@ -5451,7 +5608,7 @@
[[package]]
name = "sc-proposer-metrics"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -5460,9 +5617,9 @@
[[package]]
name = "sc-rpc"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"hash-db",
"jsonrpc-core",
"jsonrpc-pubsub",
@@ -5492,10 +5649,10 @@
[[package]]
name = "sc-rpc-api"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
@@ -5516,7 +5673,7 @@
[[package]]
name = "sc-rpc-server"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"futures 0.1.30",
"jsonrpc-core",
@@ -5534,13 +5691,13 @@
[[package]]
name = "sc-service"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"directories",
"exit-future",
"futures 0.1.30",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"hash-db",
"jsonrpc-core",
@@ -5550,7 +5707,7 @@
"parity-scale-codec",
"parity-util-mem",
"parking_lot 0.10.2",
- "pin-project",
+ "pin-project 0.4.27",
"rand 0.7.3",
"sc-block-builder",
"sc-chain-spec",
@@ -5596,7 +5753,7 @@
[[package]]
name = "sc-state-db"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"log",
"parity-scale-codec",
@@ -5610,14 +5767,14 @@
[[package]]
name = "sc-telemetry"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"libp2p",
"log",
"parking_lot 0.10.2",
- "pin-project",
+ "pin-project 0.4.27",
"rand 0.7.3",
"serde",
"slog",
@@ -5631,7 +5788,7 @@
[[package]]
name = "sc-tracing"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"erased-serde",
"log",
@@ -5650,10 +5807,10 @@
[[package]]
name = "sc-transaction-graph"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"linked-hash-map",
"log",
"parity-util-mem",
@@ -5671,10 +5828,10 @@
[[package]]
name = "sc-transaction-pool"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-diagnose",
"intervalier",
"log",
@@ -5711,14 +5868,14 @@
checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862"
dependencies = [
"arrayref",
- "arrayvec 0.5.1",
+ "arrayvec 0.5.2",
"curve25519-dalek 2.1.0",
"getrandom 0.1.15",
"merlin",
"rand 0.7.3",
"rand_core 0.5.1",
"sha2 0.8.2",
- "subtle 2.3.0",
+ "subtle 2.4.0",
"zeroize",
]
@@ -5751,9 +5908,9 @@
[[package]]
name = "scroll_derive"
-version = "0.10.3"
+version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dfde5d1531034db129e95c76ac857e2baecea3443579d493d02224950b0fb6d"
+checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d"
dependencies = [
"proc-macro2",
"quote",
@@ -5819,18 +5976,18 @@
[[package]]
name = "serde"
-version = "1.0.117"
+version = "1.0.118"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a"
+checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.117"
+version = "1.0.118"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e"
+checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
dependencies = [
"proc-macro2",
"quote",
@@ -5839,9 +5996,9 @@
[[package]]
name = "serde_json"
-version = "1.0.59"
+version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
+checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
dependencies = [
"itoa",
"ryu",
@@ -5862,13 +6019,13 @@
[[package]]
name = "sha-1"
-version = "0.9.1"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770"
+checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c"
dependencies = [
"block-buffer 0.9.0",
- "cfg-if 0.1.10",
- "cpuid-bool",
+ "cfg-if 1.0.0",
+ "cpuid-bool 0.1.2",
"digest 0.9.0",
"opaque-debug 0.3.0",
]
@@ -5887,28 +6044,15 @@
[[package]]
name = "sha2"
-version = "0.9.1"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1"
+checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8"
dependencies = [
"block-buffer 0.9.0",
- "cfg-if 0.1.10",
- "cpuid-bool",
+ "cfg-if 1.0.0",
+ "cpuid-bool 0.1.2",
"digest 0.9.0",
"opaque-debug 0.3.0",
-]
-
-[[package]]
-name = "sha3"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf"
-dependencies = [
- "block-buffer 0.7.3",
- "byte-tools",
- "digest 0.8.1",
- "keccak",
- "opaque-debug 0.2.3",
]
[[package]]
@@ -5925,11 +6069,12 @@
[[package]]
name = "sharded-slab"
-version = "0.0.9"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06d5a3f5166fb5b42a5439f2eee8b9de149e235961e3eb21c5808fc3ea17ff3e"
+checksum = "7b4921be914e16899a80adefb821f8ddb7974e3f1250223575a44ed994882127"
dependencies = [
"lazy_static",
+ "loom",
]
[[package]]
@@ -5939,12 +6084,21 @@
checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
[[package]]
+name = "signal-hook"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "604508c1418b99dfe1925ca9224829bb2a8a9a04dda655cc01fcad46f4ab05ed"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
name = "signal-hook-registry"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035"
+checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab"
dependencies = [
- "arc-swap",
"libc",
]
@@ -5962,9 +6116,9 @@
[[package]]
name = "slog"
-version = "2.5.2"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99"
+checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
dependencies = [
"erased-serde",
]
@@ -6015,9 +6169,9 @@
[[package]]
name = "smallvec"
-version = "1.4.2"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
+checksum = "ae524f056d7d770e174287294f562e95044c68e88dec909a00d2094805db9d75"
[[package]]
name = "snow"
@@ -6032,20 +6186,19 @@
"rand_core 0.5.1",
"ring",
"rustc_version",
- "sha2 0.9.1",
- "subtle 2.3.0",
+ "sha2 0.9.2",
+ "subtle 2.4.0",
"x25519-dalek 1.1.0",
]
[[package]]
name = "socket2"
-version = "0.3.15"
+version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44"
+checksum = "97e0e9fd577458a4f61fb91fcb559ea2afecc54c934119421f9f5d3d5b1a1057"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"libc",
- "redox_syscall",
"winapi 0.3.9",
]
@@ -6058,17 +6211,17 @@
"base64 0.12.3",
"bytes 0.5.6",
"flate2",
- "futures 0.3.6",
+ "futures 0.3.8",
"httparse",
"log",
"rand 0.7.3",
- "sha-1 0.9.1",
+ "sha-1 0.9.2",
]
[[package]]
name = "sp-allocator"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"log",
@@ -6080,7 +6233,7 @@
[[package]]
name = "sp-api"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"hash-db",
"parity-scale-codec",
@@ -6095,7 +6248,7 @@
[[package]]
name = "sp-api-proc-macro"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"blake2-rfc",
"proc-macro-crate",
@@ -6107,7 +6260,7 @@
[[package]]
name = "sp-application-crypto"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"serde",
@@ -6119,7 +6272,7 @@
[[package]]
name = "sp-arithmetic"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -6132,7 +6285,7 @@
[[package]]
name = "sp-authorship"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-inherents",
@@ -6143,7 +6296,7 @@
[[package]]
name = "sp-block-builder"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -6155,7 +6308,7 @@
[[package]]
name = "sp-blockchain"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"log",
@@ -6172,7 +6325,7 @@
[[package]]
name = "sp-chain-spec"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"serde",
"serde_json",
@@ -6181,10 +6334,10 @@
[[package]]
name = "sp-consensus"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -6207,7 +6360,7 @@
[[package]]
name = "sp-consensus-aura"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -6221,7 +6374,7 @@
[[package]]
name = "sp-consensus-slots"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-runtime",
@@ -6230,7 +6383,7 @@
[[package]]
name = "sp-core"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"base58",
"blake2-rfc",
@@ -6238,7 +6391,7 @@
"derive_more",
"dyn-clonable",
"ed25519-dalek",
- "futures 0.3.6",
+ "futures 0.3.8",
"hash-db",
"hash256-std-hasher",
"hex",
@@ -6274,7 +6427,7 @@
[[package]]
name = "sp-database"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"kvdb",
"parking_lot 0.10.2",
@@ -6283,7 +6436,7 @@
[[package]]
name = "sp-debug-derive"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"proc-macro2",
"quote",
@@ -6293,7 +6446,7 @@
[[package]]
name = "sp-externalities"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -6304,7 +6457,7 @@
[[package]]
name = "sp-finality-grandpa"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"finality-grandpa",
"log",
@@ -6320,7 +6473,7 @@
[[package]]
name = "sp-finality-tracker"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-inherents",
@@ -6330,7 +6483,7 @@
[[package]]
name = "sp-inherents"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
"parity-scale-codec",
@@ -6342,9 +6495,9 @@
[[package]]
name = "sp-io"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"hash-db",
"libsecp256k1",
"log",
@@ -6365,7 +6518,7 @@
[[package]]
name = "sp-keyring"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"lazy_static",
"sp-core",
@@ -6376,7 +6529,7 @@
[[package]]
name = "sp-offchain"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"sp-api",
"sp-core",
@@ -6386,7 +6539,7 @@
[[package]]
name = "sp-panic-handler"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"backtrace",
"log",
@@ -6395,7 +6548,7 @@
[[package]]
name = "sp-rpc"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"serde",
"sp-core",
@@ -6404,7 +6557,7 @@
[[package]]
name = "sp-runtime"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"either",
"hash256-std-hasher",
@@ -6426,7 +6579,7 @@
[[package]]
name = "sp-runtime-interface"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"primitive-types",
@@ -6442,7 +6595,7 @@
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"Inflector",
"proc-macro-crate",
@@ -6454,7 +6607,7 @@
[[package]]
name = "sp-sandbox"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-core",
@@ -6467,7 +6620,7 @@
[[package]]
name = "sp-serializer"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"serde",
"serde_json",
@@ -6476,7 +6629,7 @@
[[package]]
name = "sp-session"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -6489,7 +6642,7 @@
[[package]]
name = "sp-staking"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"parity-scale-codec",
"sp-runtime",
@@ -6499,7 +6652,7 @@
[[package]]
name = "sp-state-machine"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"hash-db",
"log",
@@ -6507,7 +6660,7 @@
"parity-scale-codec",
"parking_lot 0.10.2",
"rand 0.7.3",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"sp-core",
"sp-externalities",
"sp-panic-handler",
@@ -6520,12 +6673,12 @@
[[package]]
name = "sp-std"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
[[package]]
name = "sp-storage"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -6538,7 +6691,7 @@
[[package]]
name = "sp-timestamp"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -6552,7 +6705,7 @@
[[package]]
name = "sp-tracing"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"log",
"parity-scale-codec",
@@ -6565,10 +6718,10 @@
[[package]]
name = "sp-transaction-pool"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"derive_more",
- "futures 0.3.6",
+ "futures 0.3.8",
"log",
"parity-scale-codec",
"serde",
@@ -6580,7 +6733,7 @@
[[package]]
name = "sp-trie"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"hash-db",
"memory-db",
@@ -6594,9 +6747,9 @@
[[package]]
name = "sp-utils"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"futures-core",
"futures-timer 3.0.2",
"lazy_static",
@@ -6606,7 +6759,7 @@
[[package]]
name = "sp-version"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -6618,7 +6771,7 @@
[[package]]
name = "sp-wasm-interface"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -6655,15 +6808,6 @@
[[package]]
name = "stream-cipher"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
-dependencies = [
- "generic-array 0.12.3",
-]
-
-[[package]]
-name = "stream-cipher"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89"
@@ -6689,9 +6833,9 @@
[[package]]
name = "structopt"
-version = "0.3.20"
+version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "126d630294ec449fae0b16f964e35bf3c74f940da9dca17ee9b905f7b3112eb8"
+checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
dependencies = [
"clap",
"lazy_static",
@@ -6700,9 +6844,9 @@
[[package]]
name = "structopt-derive"
-version = "0.4.13"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65e51c492f9e23a220534971ff5afc14037289de430e3c83f9daf6a1b6ae91e8"
+checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
dependencies = [
"heck",
"proc-macro-error",
@@ -6748,7 +6892,7 @@
[[package]]
name = "substrate-build-script-utils"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"platforms",
]
@@ -6756,10 +6900,10 @@
[[package]]
name = "substrate-frame-rpc-system"
version = "2.0.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"frame-system-rpc-runtime-api",
- "futures 0.3.6",
+ "futures 0.3.8",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
@@ -6779,15 +6923,15 @@
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.8.0"
-source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#a200cdb93c6af5763b9c7bf313fa708764ac88ca"
+source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
dependencies = [
"async-std",
"derive_more",
"futures-util",
- "hyper 0.13.8",
+ "hyper 0.13.9",
"log",
"prometheus",
- "tokio 0.2.22",
+ "tokio 0.2.24",
]
[[package]]
@@ -6804,15 +6948,15 @@
[[package]]
name = "subtle"
-version = "2.3.0"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd"
+checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
[[package]]
name = "syn"
-version = "1.0.44"
+version = "1.0.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e03e57e4fcbfe7749842d53e24ccb9aa12b7252dbe5e91d2acad31834c8b8fdd"
+checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44"
dependencies = [
"proc-macro2",
"quote",
@@ -6859,9 +7003,9 @@
[[package]]
name = "termcolor"
-version = "1.1.0"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
dependencies = [
"winapi-util",
]
@@ -6877,18 +7021,18 @@
[[package]]
name = "thiserror"
-version = "1.0.21"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42"
+checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.21"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab"
+checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
dependencies = [
"proc-macro2",
"quote",
@@ -6932,7 +7076,7 @@
dependencies = [
"failure",
"hmac",
- "once_cell 1.4.1",
+ "once_cell 1.5.2",
"pbkdf2",
"rand 0.7.3",
"rustc-hash",
@@ -6951,9 +7095,18 @@
[[package]]
name = "tinyvec"
-version = "0.3.4"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
@@ -6981,9 +7134,9 @@
[[package]]
name = "tokio"
-version = "0.2.22"
+version = "0.2.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
+checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48"
dependencies = [
"bytes 0.5.6",
"fnv",
@@ -6995,7 +7148,7 @@
"mio",
"mio-uds",
"num_cpus",
- "pin-project-lite",
+ "pin-project-lite 0.1.11",
"signal-hook-registry",
"slab",
"winapi 0.3.9",
@@ -7039,7 +7192,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
dependencies = [
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"futures 0.1.30",
]
@@ -7095,7 +7248,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
dependencies = [
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"futures 0.1.30",
"lazy_static",
"log",
@@ -7116,7 +7269,7 @@
dependencies = [
"futures-core",
"rustls",
- "tokio 0.2.22",
+ "tokio 0.2.24",
"webpki",
]
@@ -7170,9 +7323,9 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
dependencies = [
- "crossbeam-deque",
+ "crossbeam-deque 0.7.3",
"crossbeam-queue",
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"futures 0.1.30",
"lazy_static",
"log",
@@ -7187,7 +7340,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
dependencies = [
- "crossbeam-utils",
+ "crossbeam-utils 0.7.2",
"futures 0.1.30",
"slab",
"tokio-executor 0.1.10",
@@ -7236,8 +7389,8 @@
"futures-core",
"futures-sink",
"log",
- "pin-project-lite",
- "tokio 0.2.22",
+ "pin-project-lite 0.1.11",
+ "tokio 0.2.24",
]
[[package]]
@@ -7257,13 +7410,13 @@
[[package]]
name = "tracing"
-version = "0.1.21"
+version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
+checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"log",
- "pin-project-lite",
+ "pin-project-lite 0.2.0",
"tracing-attributes",
"tracing-core",
]
@@ -7289,6 +7442,16 @@
]
[[package]]
+name = "tracing-futures"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
+dependencies = [
+ "pin-project 0.4.27",
+ "tracing",
+]
+
+[[package]]
name = "tracing-log"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7311,9 +7474,9 @@
[[package]]
name = "tracing-subscriber"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ef0a5e15477aa303afbfac3a44cba9b6430fdaad52423b1e6c0dbbe28c3eedd"
+checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401"
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -7323,7 +7486,7 @@
"serde",
"serde_json",
"sharded-slab",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"thread_local",
"tracing",
"tracing-core",
@@ -7341,7 +7504,7 @@
"hashbrown 0.8.2",
"log",
"rustc-hex",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
]
[[package]]
@@ -7408,18 +7571,18 @@
[[package]]
name = "unicode-normalization"
-version = "0.1.13"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
dependencies = [
"tinyvec",
]
[[package]]
name = "unicode-segmentation"
-version = "1.6.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
[[package]]
name = "unicode-width"
@@ -7440,7 +7603,7 @@
checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
dependencies = [
"generic-array 0.14.4",
- "subtle 2.3.0",
+ "subtle 2.4.0",
]
[[package]]
@@ -7484,10 +7647,11 @@
[[package]]
name = "url"
-version = "2.1.1"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
dependencies = [
+ "form_urlencoded",
"idna 0.2.0",
"matches",
"percent-encoding 2.1.0",
@@ -7495,9 +7659,9 @@
[[package]]
name = "vcpkg"
-version = "0.2.10"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
[[package]]
name = "vec-arena"
@@ -7564,19 +7728,19 @@
[[package]]
name = "wasm-bindgen"
-version = "0.2.68"
+version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42"
+checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.68"
+version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68"
+checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
dependencies = [
"bumpalo",
"lazy_static",
@@ -7589,11 +7753,11 @@
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.18"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da"
+checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"js-sys",
"wasm-bindgen",
"web-sys",
@@ -7601,9 +7765,9 @@
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.68"
+version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038"
+checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -7611,9 +7775,9 @@
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.68"
+version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe"
+checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
dependencies = [
"proc-macro2",
"quote",
@@ -7624,9 +7788,9 @@
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.68"
+version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
+checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
[[package]]
name = "wasm-timer"
@@ -7634,9 +7798,9 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"js-sys",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.1",
"pin-utils",
"wasm-bindgen",
"wasm-bindgen-futures",
@@ -7692,7 +7856,7 @@
"log",
"region",
"rustc-demangle",
- "smallvec 1.4.2",
+ "smallvec 1.5.1",
"target-lexicon",
"wasmparser 0.59.0",
"wasmtime-environ",
@@ -7825,7 +7989,7 @@
"lazy_static",
"libc",
"log",
- "memoffset",
+ "memoffset 0.5.6",
"more-asserts",
"region",
"thiserror",
@@ -7835,27 +7999,27 @@
[[package]]
name = "wast"
-version = "26.0.0"
+version = "30.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54b3678343bfdf1768c16308a4b53823b70f7bb148d3d38225123d4306ec731"
+checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2"
dependencies = [
"leb128",
]
[[package]]
name = "wat"
-version = "1.0.27"
+version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b2dccbce4d0e14875091846e110a2369267b18ddd0d6423479b88dad914d71"
+checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44"
dependencies = [
"wast",
]
[[package]]
name = "web-sys"
-version = "0.3.45"
+version = "0.3.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d"
+checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -7863,9 +8027,9 @@
[[package]]
name = "webpki"
-version = "0.21.3"
+version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae"
+checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
dependencies = [
"ring",
"untrusted",
@@ -7891,9 +8055,9 @@
[[package]]
name = "wepoll-sys"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "142bc2cba3fe88be1a8fcb55c727fa4cd5b0cf2d7438722792e22f26f04bc1e0"
+checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff"
dependencies = [
"cc",
]
@@ -7988,19 +8152,25 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c"
dependencies = [
- "futures 0.3.6",
+ "futures 0.3.8",
"log",
"nohash-hasher",
- "parking_lot 0.11.0",
+ "parking_lot 0.11.1",
"rand 0.7.3",
"static_assertions",
]
[[package]]
+name = "yansi"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71"
+
+[[package]]
name = "zeroize"
-version = "1.1.1"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f33972566adbd2d3588b0491eb94b98b43695c4ef897903470ede4f3f5a28a"
+checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36"
dependencies = [
"zeroize_derive",
]
@@ -8019,18 +8189,18 @@
[[package]]
name = "zstd"
-version = "0.5.3+zstd.1.4.5"
+version = "0.5.4+zstd.1.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8"
+checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "2.0.5+zstd.1.4.5"
+version = "2.0.6+zstd.1.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055"
+checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e"
dependencies = [
"libc",
"zstd-sys",
@@ -8038,9 +8208,9 @@
[[package]]
name = "zstd-sys"
-version = "1.4.17+zstd.1.4.5"
+version = "1.4.18+zstd.1.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b"
+checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81"
dependencies = [
"cc",
"glob",
doc/builders_walk_through.mddiffbeforeafterboth--- /dev/null
+++ b/doc/builders_walk_through.md
@@ -0,0 +1,244 @@
+# Builders Program Walk-Through
+
+This document walks through current state of Uniquch Chain as of end of October 2020.
+
+## Unique Chain Source code
+
+Unique chain is a substrate based chain, which mainly consists of NFT pallet (developed by Unique Network) and Smart Contracts pallet.
+
+As of now, it is based off Substrate 2.0 release and supports Ink! 3.0 smart contracts.
+
+[Unique Chain](https://github.com/usetech-llc/nft_private)
+
+### Unique TestNet
+
+The TestNet public node is avaiable at wss://unique.usetech.com. It connects to the standard AppsUI (works best with our version of AppsUI, see below, but connection can be still tested with Polkadot.js.org):
+
+1. Open the [Apps UI](https://polkadot.js.org/apps/#)
+2. Click on the network icon in the top left corner
+3. Scroll down the list and input `wss://unique.usetech.com` under "custom endpoint"
+4. After connection is established, copy these [UI Custom Types](https://github.com/usetech-llc/nft_parachain#ui-custom-types) and paste them in [Developer Settings](https://polkadot.js.org/apps/#/settings/developer). Hit "Save" button.
+5. Now the NFT node is connected with AppsUI.
+6. Go to [Chain State](https://polkadot.js.org/apps/#/chainstate) and verify that NFT pallet is visible and you can read information from it.
+7. For example, select nft -> collection, and enter collection ID 4 (for SubstraPunks) and click "+" button. You will see the collection properties such as UTF-16 encoded collection name and description, UTF-8 encoded token prefix, the size of custom data, etc.
+
+#### Getting some Unique Tokens
+
+1. Install Polkadot{.js} extension if you don't have it already installed. Here are the links for [Chrome](https://chrome.google.com/webstore/detail/polkadot%7Bjs%7D-extension/mopnmbcafieddcagagdcbnhejhlodfdd) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/polkadot-js-extension/) extensions.
+2. Create an address
+3. Use Unique Faucet Telegram bot: @UniqueFaucetBot
+
+### Smart Contracts Pallet
+
+1. Open [Contracts](https://polkadot.js.org/apps/#/contracts) tab. It only appears in the UI when Smart Contracts pallet is included in the runtime.
+2. Additionally, we can find an existing smart contract. Click on "Add an existing contract" link.
+3. Input this contract address: `5GdNqKMv4Sszq3SRd3TkXNa6a9ct4D3nXvtTWTFR7rTyccVJ`
+4. Input any contract name, for example `Claim Substrapunks`
+5. Download and drag-and-drop this [metadata.json](https://github.com/usetech-llc/substrapunks/releases/download/v1.0.2/metadata.json) file into contract ABI field.
+6. Click Save. The contract appears in the page. If the contract did not exist at that address, the UI would display an error message: "Unable to find deployed contract code at the specified address".
+
+### Integration Between Smart Contracts and NFT Pallet
+
+#### TestNet
+
+This is one of the most technically challenging parts. The pre-RC4 versions of Substrate did not function properly when we tried to use `ext_dispatch_call` to dispatch a runtime call to NFT pallet from Contracts pallet, and RC4 had the `ext_dispatch_call` already removed to "free space" for some friendlier way of interaction between pallets, that was not yet implemented. Thanks to Alexander Theißen who reverted the removal of `ext_dispatch_call` and created a special branch based on RC4 for us!
+
+The smart contract source code exists in this [repository folder](https://github.com/usetech-llc/nft_parachain/tree/master/smart_contract/ink-types-node-runtime), but the best way to test how the interaction between smart contracts and NFT pallet works is to see it in action using the [SubstraPunks Game Example](https://ipfs-gateway.usetech.com/ipns/QmaMtDqE9nhMX9RQLTpaCboqg7bqkb6Gi67iCKMe8NDpCE/) that uses smart contract to claim free characters. The complete demo of this game will come later, so please bare with us and let's put this item demonstration for a bit later.
+
+#### MainNet
+
+The Ink! 3.0 Chain Extensions will allow calling pallets from smart contracts with env() object in Ink!, as soon as they are ready. Our code is prewired for this and waiting for Chain Extensions to release.
+
+### Fungibility and Re-Fungibility support
+
+Fungible and Re-Fungible modes are fully implemented and ready for QA as of now. Fungible mode allows creation of ERC-20-like tokens, and Re-Fungible allows sharing NFT tokens between multiple addresses.
+
+#### Re-Fungibility
+
+Re-fungible feature is best demonstrated in action using our NFT wallet. First, you need to have some Unique and Re-Fungible tokens. [This section](#getting-some-unique-tokens) tells how to get them.
+
+1. Open the [NFT Wallet](https://uniqueapps.usetech.com/#/nft)
+2. Search for collection called "Artwork". Search can be done either by collection name or collection ID (which is 2).
+3. Click on "+ Add collection" in search results. The collection will appear under "My collections"
+4. Expand the "Artwork" collection and see that you own a token with a partial balance
+5. Transfer the token to some other address: Click "Transfer token" and enter address and the amount. Amount should be entered as decimal fraction. For example "0.01" to transfer 1/100th part of the token.
+6. Observe that your balance decreased by the amount you entered.
+
+#### Fungibility
+
+Fungible tokens can be created manually by calling extrinsics:
+1. Open [Extrinsics page in UI](https://uniqueapps.usetech.com/#/extrinsics)
+2. Select nft - createCollection
+3. In the CollectionMode select Fungible, enter decimal points number and click "Submit Transaction"
+4. Switch to [Explorer](https://uniqueapps.usetech.com/#/explorer) and find the block where the transaction was mined.
+5. Find nft.Created Event, which will contain the ID of the Fungible token you just created
+6. In order to mint a token, use nft - createItem extrinsic. Enter the collection ID (that you found in the previous step) and submit transaction. One token will be minted. (We also support Batch minting for minting different amounts, etc).
+
+#### Re-fungibility The Hard Way
+
+Also, the Re-Fungible support can be demonstrated using the standard UI features without NFT wallet.
+
+1. Open [Chain State](https://uniqueapps.usetech.com/#/chainstate).
+2. Select "nft" - "reFungbleItemList"
+3. Enter parameters: 2 and 1, click "+" button
+4. Observe the following data structure returned:
+
+```
+{
+ Collection: 2,
+ Owner: [
+ {
+ owner: 5FNujvbtMyKoJC2zTrfGVaQek7jhfR1L558BMhogfFfD7veH,
+ fraction: 3,000
+ },
+ {
+ owner: 5D73wtH5pqN99auP4b6KQRQAbketaSj4StkBJxACPBUAUdiq,
+ fraction: 3,000
+ },
+ {
+ owner: 5FZeTmbZQZsJcyEevjGVK1HHkcKfWBYxWpbgEffQ2M1SqAnP,
+ fraction: 2,000
+ },
+ {
+ owner: 5EnzEXBuxFHdymceAAtstym8FETQqH4inx29XJSP6uHaCUiP,
+ fraction: 1,000
+ },
+ {
+ owner: 5GU6iHnc3qTMaufmKYzHUpDmVN2CgzA2JMcGFQLcKNDbE7c6,
+ fraction: 1,000
+ }
+ ],
+ Data:
+}
+```
+
+The Owner field contains a list of owners with the fractions they own. The fractions are represented as fixed point decimals. The number of decimal points in this fraction is determined by collection properties. For example, in the Artwork collection this property is equal to 4. The owned fraction is then determined as `fraction` divided by 10^DecimalPoints, i.e. 10,000 in this case.
+
+5. Staying in Chain State, select "nft" - "colection"
+6. Input "2" and click "+"
+7. Observe the following structure returned. It tells that collection is ReFungible and DecimalPoints field is equal to 4.
+
+```
+{
+ Owner: 5FNujvbtMyKoJC2zTrfGVaQek7jhfR1L558BMhogfFfD7veH,
+ Mode: {
+ ReFungible: [
+ 0,
+ 4
+ ]
+ },
+ Access: 0,
+ DecimalPoints: 4,
+ Name: [
+...
+```
+
+### Off-Chain Schema to store token image URLs
+
+This feature is best demonstrated in action using our NFT wallet. First, you need to have some Unique and Re-Fungible tokens. [This section](#getting-some-unique-tokens) tells how to get them.
+
+1. Open the [NFT Wallet](https://uniqueapps.usetech.com/#/nft)
+2. Search for collection called "Artwork". Search can be done either by collection name or collection ID (which is 2).
+3. Expand "Artwork" collection
+4. Click on the image to zoom in.
+5. Right-click on the image and select "Open Image in New Tab"
+6. Note the image URL:
+```
+https://ipfs-gateway.usetech.com/ipfs/QmUSv64cUmL2m44QYkUFWmH89qykC8VLPFwjhpeAScjejS/image1.jpg
+```
+7. Open [Chain State](https://uniqueapps.usetech.com/#/chainstate).
+8. Select "nft" - "colection"
+9. Input "2" and click "+"
+10. Scroll down:
+```
+ ],
+ TokenPrefix: ARTu0000,
+ CustomDataSize: 0,
+ OffchainSchema: https://ipfs-gateway.usetech.com/ipfs/QmUSv64cUmL2m44QYkUFWmH89qykC8VLPFwjhpeAScjejS/image{id}.jpg,
+ Sponsor: 5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM,
+ UnconfirmedSponsor: 5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM
+}
+```
+11. Observe the field called `OffchainSchema`. This field defines the URL schema that is used to contruct token URLs based on the token ID. In this particular example, the {id} template variable is replaced with token id 1, which results in the proper image URL.
+
+### New economic models
+
+This feature is best demonstrated when you own a SubstraPunk character. Please proceed with the demonstration, and then come back after you claim one.
+
+1. Create a new address in Polkadot{.js} extension. We need an address that has zero balance in Unique tokens. Let's call it "ZERO BALANCE" address.
+2. Open the [NFT Wallet](https://uniqueapps.usetech.com/#/nft)
+3. Search for collection called "SubstraPunks" (partial search also works, so you can just type "punk" and hit Enter)
+4. Add collection
+5. Expand substrapunks collection and transfer your PNK token to your "ZERO BALANCE" address.
+6. Now select your "ZERO BALANCE" address in the drop-down list and repeat searching and adding the collection for this address.
+7. Transfer token back to your main address. Observe that despite the zero balance, the transfer is successful.
+
+### White Lists and Public Mint Permission
+
+We did not complete these features in time by Hackusama deadline, but because they are important for security of the network, we completed them after the deadline anyway. They can be seen in branch [feature/white_list](https://github.com/usetech-llc/nft_parachain/tree/feature/white_list). Here are the permalinks to essential functions:
+
+[white_lists](https://github.com/usetech-llc/nft_parachain/blob/b7c59f0085ed2bc1922e937adf68ef4174a8ba36/pallets/nft/src/lib.rs#L659)
+
+[mint_permission](https://github.com/usetech-llc/nft_parachain/blob/b7c59f0085ed2bc1922e937adf68ef4174a8ba36/pallets/nft/src/lib.rs#L373)
+
+## NFT Wallet
+
+[Project Description](https://github.com/usetech-llc/apps/blob/master/README.md)
+
+All features of the NFT Wallet were already demonstrated previously:
+
+* Enables adding favorite collections
+* Shows tokens owned
+* Allows NFT and Re-Fungible transfers
+* Shows Re-Fungible Balances
+* Shows Token Images
+
+## Our version of AppsUI
+
+The UI was also mainly demonstrated. We only need to show some configuration that happens behind the scenes:
+
+### Loads appropriate custom API types
+1. Open the [NFT Wallet Developer Settings](https://uniqueapps.usetech.com/#/settings/developer)
+2. Observe that Custom UI types are already in place
+
+### Defaults to NFT TestNet
+
+1. Open the [NFT Wallet](https://uniqueapps.usetech.com/)
+2. Observe that Unique Network icon appears in the left top corner without a need to specify the network
+3. Click on Unique Network icon and see that `NFT Testnet` is in the network list
+
+## Unity API and SDK PoC
+
+[Project Description](https://github.com/usetech-llc/nft_unity/blob/master/README.md)
+
+In order to see Unity Asset in action, please follow the instructions in this README file:
+
+[Demonstration](https://github.com/usetech-llc/nft_unity/blob/master/src/DemoApplication/readme.md)
+
+## SubstraPunks Game and Marketplace
+
+[Project Description](https://github.com/usetech-llc/substrapunks/blob/master/README.md)
+
+First, you will need some Unique balance. [This section](#getting-some-unique-tokens) tells how to get the TestNet currency.
+
+This game initially was meant as a demonstration, but all Punks were quickly claimed, and we had to develop the marketplace to keep demonstrating capability of it. [Here](https://github.com/usetech-llc/nft_parachain/blob/master/doc/hackusama_walk_through.md#substrapunks-game) is the original description.
+
+Here is how one can test Marketplace:
+
+1. Open [Substrapunks Marketplace](https://ipfs-gateway.usetech.com/ipns/QmaMtDqE9nhMX9RQLTpaCboqg7bqkb6Gi67iCKMe8NDpCE/)
+2. Contact us in [Unique Telegram channel](https://t.me/Uniquechain), so we can place a test NFT for you buy on the marketplace.
+3. Refresh the marketplace page and click on the NFT to buy (the one we placed)
+4. Go through buying process
+5. Let us know to exchange KSM back for the NFT (if you would not like to keep the punk of course :) )
+
+### How Marketplace works
+
+Marketplace is a PoC and it consists a PoC bridge between Kusama and Unique and a Matcher smart contract.
+
+#### Kusama Bridge
+
+The bridge works mainly as an escrow that locks NFTs and KSM allowing users to trustlessly exchange their assets.
+
+#### Matcher Smart Contract
+
+The matcher smart contract allows placing punks on sale and buying. It operates assets that are locked in the bridge and releases them once the trade happens or the offer is cancelled.
node/src/chain_spec.rsdiffbeforeafterboth--- a/node/src/chain_spec.rs
+++ b/node/src/chain_spec.rs
@@ -180,8 +180,8 @@
fungible_item_id: vec![],
refungible_item_id: vec![],
chain_limit: ChainLimits {
- collection_numbers_limit: 10,
- account_token_ownership_limit: 10,
+ collection_numbers_limit: 100000,
+ account_token_ownership_limit: 1000000,
collections_admins_limit: 5,
custom_data_limit: 2048,
nft_sponsor_transfer_timeout: 15,
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -29,10 +29,10 @@
use sp_runtime::sp_std::prelude::Vec;
use sp_runtime::{
traits::{
- DispatchInfoOf, Dispatchable, PostDispatchInfoOf, Saturating, SignedExtension, Zero,
+ DispatchInfoOf, Dispatchable, PostDispatchInfoOf, Saturating, SaturatedConversion, SignedExtension, Zero,
},
transaction_validity::{
- InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+ TransactionPriority, InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
},
FixedPointOperand, FixedU128,
};
@@ -2302,6 +2302,13 @@
<transaction_payment::Module<T>>::compute_fee(len as u32, info, tip)
}
+ fn get_priority(len: usize, info: &DispatchInfoOf<T::Call>, final_fee: BalanceOf<T>) -> TransactionPriority {
+ let weight_saturation = T::MaximumBlockWeight::get() / info.weight.max(1);
+ let len_saturation = T::MaximumBlockLength::get() as u64 / (len as u64).max(1);
+ let coefficient: BalanceOf<T> = weight_saturation.min(len_saturation).saturated_into::<BalanceOf<T>>();
+ final_fee.saturating_mul(coefficient).saturated_into::<TransactionPriority>()
+ }
+
fn withdraw_fee(
&self,
who: &T::AccountId,
@@ -2525,12 +2532,16 @@
fn validate(
&self,
- _who: &Self::AccountId,
- _call: &Self::Call,
- _info: &DispatchInfoOf<Self::Call>,
- _len: usize,
+ who: &Self::AccountId,
+ call: &Self::Call,
+ info: &DispatchInfoOf<Self::Call>,
+ len: usize,
) -> TransactionValidity {
- Ok(ValidTransaction::default())
+ let (fee, _) = self.withdraw_fee(who, call, info, len)?;
+ Ok(ValidTransaction {
+ priority: Self::get_priority(len, info, fee),
+ ..Default::default()
+ })
}
fn pre_dispatch(
runtime/src/lib.rsdiffbeforeafterboth1//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm.23#![cfg_attr(not(feature = "std"), no_std)]4// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.5#![recursion_limit = "256"]67// Make the WASM binary available.8#[cfg(feature = "std")]9include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));1011use pallet_contracts_rpc_runtime_api::ContractExecResult;12use pallet_grandpa::fg_primitives;13use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};14use sp_api::impl_runtime_apis;15use sp_consensus_aura::sr25519::AuthorityId as AuraId;16use sp_core::{ crypto::KeyTypeId, crypto::Public, OpaqueMetadata };17use sp_runtime::{18 create_runtime_str, generic, impl_opaque_keys,19 traits::{20 Convert, BlakeTwo256, Block as BlockT, IdentifyAccount, 21 IdentityLookup, NumberFor, Saturating, Verify,22 },23 transaction_validity::{TransactionSource, TransactionValidity},24 ApplyExtrinsicResult, MultiSignature,25};26use sp_std::prelude::*;27#[cfg(feature = "std")]28use sp_version::NativeVersion;29use sp_version::RuntimeVersion;3031// A few exports that help ease life for downstream crates.32pub use pallet_balances::Call as BalancesCall;33pub use pallet_contracts::Schedule as ContractsSchedule;34pub use frame_support::{35 construct_runtime,36 dispatch::DispatchResult,37 parameter_types,38 traits::{39 Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,40 WithdrawReason, LockIdentifier,41 },42 weights::{43 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},44 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,45 WeightToFeePolynomial,46 },47 StorageValue,48};49#[cfg(any(feature = "std", test))]50pub use sp_runtime::BuildStorage;51use sp_runtime:: { Perbill, Permill, Percent, ModuleId };52use frame_system::{self as system, EnsureRoot };53use sp_std::{marker::PhantomData};5455pub use pallet_timestamp::Call as TimestampCall;5657/// Struct that handles the conversion of Balance -> `u64`. This is used for58/// staking's election calculation.59pub struct CurrencyToVoteHandler;6061impl CurrencyToVoteHandler {62 fn factor() -> Balance {63 (Balances::total_issuance() / u64::max_value() as Balance).max(1)64 }65}6667impl Convert<Balance, u64> for CurrencyToVoteHandler {68 fn convert(x: Balance) -> u64 {69 (x / Self::factor()) as u6470 }71}7273impl Convert<u128, Balance> for CurrencyToVoteHandler {74 fn convert(x: u128) -> Balance {75 x * Self::factor()76 }77}7879/// Re-export a nft pallet80/// TODO: Check this re-export. Is this safe and good style?81extern crate pallet_nft;82pub use pallet_nft::*;8384/// An index to a block.85pub type BlockNumber = u32;8687/// Alias to 512-bit hash when used in the context of a transaction signature on the chain.88pub type Signature = MultiSignature;8990/// Some way of identifying an account on the chain. We intentionally make it equivalent91/// to the public key of our transaction signing scheme.92pub type AccountId = <<Signature as Verify>::Signer as IdentifyAccount>::AccountId;9394/// The type for looking up accounts. We don't expect more than 4 billion of them, but you95/// never know...96pub type AccountIndex = u32;9798/// Balance of an account.99pub type Balance = u128;100101/// Index of a transaction in the chain.102pub type Index = u32;103104/// A hash of some data used by the chain.105pub type Hash = sp_core::H256;106107/// Digest item type.108pub type DigestItem = generic::DigestItem<Hash>;109110mod nft_weights;111112/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know113/// the specifics of the runtime. They can then be made to be agnostic over specific formats114/// of data like extrinsics, allowing for them to continue syncing the network through upgrades115/// to even the core data structures.116pub mod opaque {117 use super::*;118119 pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic;120121 /// Opaque block header type.122 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;123 /// Opaque block type.124 pub type Block = generic::Block<Header, UncheckedExtrinsic>;125 /// Opaque block identifier type.126 pub type BlockId = generic::BlockId<Block>;127128 impl_opaque_keys! {129 pub struct SessionKeys {130 pub aura: Aura,131 pub grandpa: Grandpa,132 }133 }134}135136/// This runtime version.137pub const VERSION: RuntimeVersion = RuntimeVersion {138 spec_name: create_runtime_str!("nft"),139 impl_name: create_runtime_str!("nft"),140 authoring_version: 1,141 spec_version: 2,142 impl_version: 1,143 apis: RUNTIME_API_VERSIONS,144 transaction_version: 1,145};146147pub const MILLISECS_PER_BLOCK: u64 = 6000;148149pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;150151// These time units are defined in number of blocks.152pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber);153pub const HOURS: BlockNumber = MINUTES * 60;154pub const DAYS: BlockNumber = HOURS * 24;155156/// The version information used to identify this runtime when compiled natively.157#[cfg(feature = "std")]158pub fn native_version() -> NativeVersion {159 NativeVersion {160 runtime_version: VERSION,161 can_author_with: Default::default(),162 }163}164165/// Provides a membership set with only the configured aura users166pub struct ValiudatorsOnly<Runtime: pallet_aura::Trait>(PhantomData<Runtime>);167impl frame_support::traits::Contains<AccountId> for ValiudatorsOnly<Runtime> {168 fn contains(t: &AccountId) -> bool {169 let arr: [u8; 32] = *t.as_ref();170 let raw_key: Vec<u8> = Vec::from(arr);171172 match pallet_aura::Module::<Runtime>::authorities().iter().find(|auth| auth.to_raw_vec() == raw_key) {173 Some(_) => true,174 None => false,175 } 176 }177 fn sorted_members() -> Vec<AccountId> {178 let mut members: Vec<AccountId> = Vec::new();179 for auth in pallet_aura::Module::<Runtime>::authorities() {180 let mut arr: [u8; 32] = Default::default(); 181 let bor_arr = auth.clone().to_raw_vec();182 let slice = bor_arr.as_slice();183 arr.copy_from_slice(slice);184 members.push(AccountId::from(arr));185 }186 members 187 }188 fn count() -> usize {189 pallet_aura::Module::<Runtime>::authorities().len()190 }191}192193impl frame_support::traits::ContainsLengthBound for ValiudatorsOnly<Runtime> {194 fn min_len() -> usize {195 1196 }197 fn max_len() -> usize {198 100199 }200}201202parameter_types! {203 pub const BlockHashCount: BlockNumber = 2400;204 /// We allow for 2 seconds of compute with a 6 second average block time.205 pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;206 pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);207 /// Assume 10% of weight for average on_initialize calls.208 pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()209 .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();210 pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;211 pub const Version: RuntimeVersion = VERSION;212}213214impl system::Trait for Runtime {215 /// The basic call filter to use in dispatchable.216 type BaseCallFilter = ();217 /// The identifier used to distinguish between accounts.218 type AccountId = AccountId;219 /// The aggregated dispatch type that is available for extrinsics.220 type Call = Call;221 /// The lookup mechanism to get account ID from whatever is passed in dispatchers.222 type Lookup = IdentityLookup<AccountId>;223 /// The index type for storing how many extrinsics an account has signed.224 type Index = Index;225 /// The index type for blocks.226 type BlockNumber = BlockNumber;227 /// The type for hashing blocks and tries.228 type Hash = Hash;229 /// The hashing algorithm used.230 type Hashing = BlakeTwo256;231 /// The header type.232 type Header = generic::Header<BlockNumber, BlakeTwo256>;233 /// The ubiquitous event type.234 type Event = Event;235 /// The ubiquitous origin type.236 type Origin = Origin;237 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).238 type BlockHashCount = BlockHashCount;239 /// Maximum weight of each block.240 type MaximumBlockWeight = MaximumBlockWeight;241 /// The weight of database operations that the runtime can invoke.242 type DbWeight = RocksDbWeight;243 /// The weight of the overhead invoked on the block import process, independent of the244 /// extrinsics included in that block.245 type BlockExecutionWeight = BlockExecutionWeight;246 /// The base weight of any extrinsic processed by the runtime, independent of the247 /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...)248 type ExtrinsicBaseWeight = ExtrinsicBaseWeight;249 /// The maximum weight that a single extrinsic of `Normal` dispatch class can have,250 /// idependent of the logic of that extrinsics. (Roughly max block weight - average on251 /// initialize cost).252 type MaximumExtrinsicWeight = MaximumExtrinsicWeight;253 /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.254 type MaximumBlockLength = MaximumBlockLength;255 /// Portion of the block weight that is available to all normal transactions.256 type AvailableBlockRatio = AvailableBlockRatio;257 /// Version of the runtime.258 type Version = Version;259 /// This type is being generated by `construct_runtime!`.260 type PalletInfo = PalletInfo;261 /// What to do if a new account is created.262 type OnNewAccount = ();263 /// What to do if an account is fully reaped from the system.264 type OnKilledAccount = ();265 /// The data to be stored in an account.266 type AccountData = pallet_balances::AccountData<Balance>;267 /// Weight information for the extrinsics of this pallet.268 type SystemWeightInfo = ();269}270271impl pallet_aura::Trait for Runtime {272 type AuthorityId = AuraId;273}274275impl pallet_grandpa::Trait for Runtime {276 type Event = Event;277 type Call = Call;278279 type KeyOwnerProofSystem = ();280281 type KeyOwnerProof =282 <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof;283284 type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(285 KeyTypeId,286 GrandpaId,287 )>>::IdentificationTuple;288289 type HandleEquivocation = ();290291 type WeightInfo = ();292}293294parameter_types! {295 pub const MinimumPeriod: u64 = SLOT_DURATION / 2;296}297298impl pallet_timestamp::Trait for Runtime {299 /// A timestamp: milliseconds since the unix epoch.300 type Moment = u64;301 type OnTimestampSet = Aura;302 type MinimumPeriod = MinimumPeriod;303 type WeightInfo = ();304}305306parameter_types! {307 // pub const ExistentialDeposit: u128 = 500;308 pub const ExistentialDeposit: u128 = 0;309 pub const MaxLocks: u32 = 50;310}311312impl pallet_balances::Trait for Runtime {313 type MaxLocks = MaxLocks;314 /// The type for recording an account's balance.315 type Balance = Balance;316 /// The ubiquitous event type.317 type Event = Event;318 type DustRemoval = ();319 type ExistentialDeposit = ExistentialDeposit;320 type AccountStore = System;321 type WeightInfo = ();322}323324pub const MILLICENTS: Balance = 1_000_000_000;325pub const CENTS: Balance = 1_000 * MILLICENTS;326pub const DOLLARS: Balance = 100 * CENTS;327328parameter_types! {329 pub const TombstoneDeposit: Balance = 0;330 pub const RentByteFee: Balance = 4 * MILLICENTS;331 pub const RentDepositOffset: Balance = 1000 * MILLICENTS;332 pub const SurchargeReward: Balance = 150 * MILLICENTS;333}334335impl pallet_contracts::Trait for Runtime {336 type Time = Timestamp;337 type Randomness = RandomnessCollectiveFlip;338 type Currency = Balances;339 type Event = Event;340 type DetermineContractAddress = pallet_contracts::SimpleAddressDeterminer<Runtime>;341 type TrieIdGenerator = pallet_contracts::TrieIdFromParentCounter<Runtime>;342 type RentPayment = ();343 type SignedClaimHandicap = pallet_contracts::DefaultSignedClaimHandicap;344 type TombstoneDeposit = TombstoneDeposit;345 type StorageSizeOffset = pallet_contracts::DefaultStorageSizeOffset;346 type RentByteFee = RentByteFee;347 type RentDepositOffset = RentDepositOffset;348 type SurchargeReward = SurchargeReward;349 type MaxDepth = pallet_contracts::DefaultMaxDepth;350 type MaxValueSize = pallet_contracts::DefaultMaxValueSize;351 type WeightPrice = pallet_transaction_payment::Module<Self>;352}353354parameter_types! {355 pub const TransactionByteFee: Balance = 10 * MILLICENTS;356}357358impl pallet_transaction_payment::Trait for Runtime {359 type Currency = pallet_balances::Module<Runtime>;360 type OnTransactionPayment = ();361 type TransactionByteFee = TransactionByteFee;362 type WeightToFee = IdentityFee<Balance>;363 type FeeMultiplierUpdate = ();364}365366parameter_types! {367 pub const ProposalBond: Permill = Permill::from_percent(5);368 pub const ProposalBondMinimum: Balance = 1 * DOLLARS;369 pub const SpendPeriod: BlockNumber = 5 * MINUTES;370 pub const Burn: Permill = Permill::from_percent(0);371 pub const TipCountdown: BlockNumber = 1 * DAYS;372 pub const TipFindersFee: Percent = Percent::from_percent(20);373 pub const TipReportDepositBase: Balance = 1 * DOLLARS;374 pub const DataDepositPerByte: Balance = 1 * CENTS;375 pub const BountyDepositBase: Balance = 1 * DOLLARS;376 pub const BountyDepositPayoutDelay: BlockNumber = 1 * DAYS;377 pub const TreasuryModuleId: ModuleId = ModuleId(*b"py/trsry");378 pub const BountyUpdatePeriod: BlockNumber = 14 * DAYS;379 pub const MaximumReasonLength: u32 = 16384;380 pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);381 pub const BountyValueMinimum: Balance = 5 * DOLLARS;382}383384impl pallet_treasury::Trait for Runtime {385 type ModuleId = TreasuryModuleId;386 type Currency = Balances;387 type ApproveOrigin = EnsureRoot<AccountId>;388 type RejectOrigin = EnsureRoot<AccountId>;389 type Tippers = ValiudatorsOnly<Self>;390 type TipCountdown = TipCountdown;391 type TipFindersFee = TipFindersFee;392 type TipReportDepositBase = TipReportDepositBase;393 type DataDepositPerByte = DataDepositPerByte;394 type Event = Event;395 type OnSlash = ();396 type ProposalBond = ProposalBond;397 type ProposalBondMinimum = ProposalBondMinimum;398 type SpendPeriod = SpendPeriod;399 type Burn = Burn;400 type BountyDepositBase = BountyDepositBase;401 type BountyDepositPayoutDelay = BountyDepositPayoutDelay;402 type BountyUpdatePeriod = BountyUpdatePeriod;403 type BountyCuratorDeposit = BountyCuratorDeposit;404 type BountyValueMinimum = BountyValueMinimum;405 type MaximumReasonLength = MaximumReasonLength;406 type BurnDestination = ();407 type WeightInfo = ();408}409410impl pallet_sudo::Trait for Runtime {411 type Event = Event;412 type Call = Call;413}414415/// Used for the module nft in `./nft.rs`416impl pallet_nft::Trait for Runtime {417 type Event = Event;418 type WeightInfo = nft_weights::WeightInfo;419}420421construct_runtime!(422 pub enum Runtime where423 Block = Block,424 NodeBlock = opaque::Block,425 UncheckedExtrinsic = UncheckedExtrinsic426 {427 System: system::{Module, Call, Config, Storage, Event<T>},428 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},429 Contracts: pallet_contracts::{Module, Call, Config, Storage, Event<T>},430 Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},431 Aura: pallet_aura::{Module, Config<T>, Inherent},432 Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},433 Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},434 TransactionPayment: pallet_transaction_payment::{Module, Storage},435 Sudo: pallet_sudo::{Module, Call, Config<T>, Storage, Event<T>},436 Nft: pallet_nft::{Module, Call, Config<T>, Storage, Event<T>},437 Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},438 }439);440441/// The address format for describing accounts.442pub type Address = AccountId;443/// Block header type as expected by this runtime.444pub type Header = generic::Header<BlockNumber, BlakeTwo256>;445/// Block type as expected by this runtime.446pub type Block = generic::Block<Header, UncheckedExtrinsic>;447/// A Block signed with a Justification448pub type SignedBlock = generic::SignedBlock<Block>;449/// BlockId type as expected by this runtime.450pub type BlockId = generic::BlockId<Block>;451/// The SignedExtension to the basic transaction logic.452pub type SignedExtra = (453 system::CheckSpecVersion<Runtime>,454 system::CheckTxVersion<Runtime>,455 system::CheckGenesis<Runtime>,456 system::CheckEra<Runtime>,457 system::CheckNonce<Runtime>,458 system::CheckWeight<Runtime>,459 pallet_nft::ChargeTransactionPayment<Runtime>,460);461/// Unchecked extrinsic type as expected by this runtime.462pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;463/// Extrinsic type that has already been checked.464pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, Call, SignedExtra>;465/// Executive: handles dispatch to the various modules.466pub type Executive =467 frame_executive::Executive<Runtime, Block, system::ChainContext<Runtime>, Runtime, AllModules>;468469impl_runtime_apis! {470471 impl pallet_contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber>472 for Runtime473 {474 fn call(475 origin: AccountId,476 dest: AccountId,477 value: Balance,478 gas_limit: u64,479 input_data: Vec<u8>,480 ) -> ContractExecResult {481 let (exec_result, gas_consumed) =482 Contracts::bare_call(origin, dest.into(), value, gas_limit, input_data);483 match exec_result {484 Ok(v) => ContractExecResult::Success {485 flags: v.flags.bits(),486 data: v.data,487 gas_consumed: gas_consumed,488 },489 Err(_) => ContractExecResult::Error,490 }491 }492493 fn get_storage(494 address: AccountId,495 key: [u8; 32],496 ) -> pallet_contracts_primitives::GetStorageResult {497 Contracts::get_storage(address, key)498 }499500 fn rent_projection(501 address: AccountId,502 ) -> pallet_contracts_primitives::RentProjectionResult<BlockNumber> {503 Contracts::rent_projection(address)504 }505 }506507 impl sp_api::Core<Block> for Runtime {508 fn version() -> RuntimeVersion {509 VERSION510 }511512 fn execute_block(block: Block) {513 Executive::execute_block(block)514 }515516 fn initialize_block(header: &<Block as BlockT>::Header) {517 Executive::initialize_block(header)518 }519 }520521 impl sp_api::Metadata<Block> for Runtime {522 fn metadata() -> OpaqueMetadata {523 Runtime::metadata().into()524 }525 }526527 impl sp_block_builder::BlockBuilder<Block> for Runtime {528 fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {529 Executive::apply_extrinsic(extrinsic)530 }531532 fn finalize_block() -> <Block as BlockT>::Header {533 Executive::finalize_block()534 }535536 fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {537 data.create_extrinsics()538 }539540 fn check_inherents(541 block: Block,542 data: sp_inherents::InherentData,543 ) -> sp_inherents::CheckInherentsResult {544 data.check_extrinsics(&block)545 }546547 fn random_seed() -> <Block as BlockT>::Hash {548 RandomnessCollectiveFlip::random_seed()549 }550 }551552 impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {553 fn validate_transaction(554 source: TransactionSource,555 tx: <Block as BlockT>::Extrinsic,556 ) -> TransactionValidity {557 Executive::validate_transaction(source, tx)558 }559 }560561 impl sp_offchain::OffchainWorkerApi<Block> for Runtime {562 fn offchain_worker(header: &<Block as BlockT>::Header) {563 Executive::offchain_worker(header)564 }565 }566567 impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {568 fn slot_duration() -> u64 {569 Aura::slot_duration()570 }571572 fn authorities() -> Vec<AuraId> {573 Aura::authorities()574 }575 }576577 impl sp_session::SessionKeys<Block> for Runtime {578 fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {579 opaque::SessionKeys::generate(seed)580 }581582 fn decode_session_keys(583 encoded: Vec<u8>,584 ) -> Option<Vec<(Vec<u8>, KeyTypeId)>> {585 opaque::SessionKeys::decode_into_raw_public_keys(&encoded)586 }587 }588589 impl fg_primitives::GrandpaApi<Block> for Runtime {590 fn grandpa_authorities() -> GrandpaAuthorityList {591 Grandpa::grandpa_authorities()592 }593594 fn submit_report_equivocation_unsigned_extrinsic(595 _equivocation_proof: fg_primitives::EquivocationProof<596 <Block as BlockT>::Hash,597 NumberFor<Block>,598 >,599 _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof,600 ) -> Option<()> {601 None602 }603604 fn generate_key_ownership_proof(605 _set_id: fg_primitives::SetId,606 _authority_id: GrandpaId,607 ) -> Option<fg_primitives::OpaqueKeyOwnershipProof> {608 // NOTE: this is the only implementation possible since we've609 // defined our key owner proof type as a bottom type (i.e. a type610 // with no values).611 None612 }613 }614 615 impl frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Index> for Runtime {616 fn account_nonce(account: AccountId) -> Index {617 System::account_nonce(account)618 }619 }620621 impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance> for Runtime {622 fn query_info(623 uxt: <Block as BlockT>::Extrinsic,624 len: u32,625 ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo<Balance> {626 TransactionPayment::query_info(uxt, len)627 }628 }629630 #[cfg(feature = "runtime-benchmarks")]631 impl frame_benchmarking::Benchmark<Block> for Runtime {632 fn dispatch_benchmark(633 config: frame_benchmarking::BenchmarkConfig634 ) -> Result<Vec<frame_benchmarking::BenchmarkBatch>, sp_runtime::RuntimeString> {635 use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey};636637 let whitelist: Vec<TrackedStorageKey> = vec![638 // Alice account639 hex_literal::hex!("d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d").to_vec().into(),640 // // Total Issuance641 // hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(),642 // // Execution Phase643 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(),644 // // Event Count645 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(),646 // // System Events647 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(),648 ];649650 let mut batches = Vec::<BenchmarkBatch>::new();651 let params = (&config, &whitelist);652653 add_benchmark!(params, batches, pallet_nft, Nft);654655 if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }656 Ok(batches)657 }658 }659}1//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm.23#![cfg_attr(not(feature = "std"), no_std)]4// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.5#![recursion_limit = "256"]67// Make the WASM binary available.8#[cfg(feature = "std")]9include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));1011use pallet_contracts_rpc_runtime_api::ContractExecResult;12use pallet_grandpa::fg_primitives;13use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};14use sp_api::impl_runtime_apis;15use sp_consensus_aura::sr25519::AuthorityId as AuraId;16use sp_core::{ crypto::KeyTypeId, crypto::Public, OpaqueMetadata };17use sp_runtime::{18 create_runtime_str, generic, impl_opaque_keys,19 traits::{20 Convert, BlakeTwo256, Block as BlockT, IdentifyAccount, 21 IdentityLookup, NumberFor, Saturating, Verify,22 },23 transaction_validity::{TransactionSource, TransactionValidity},24 ApplyExtrinsicResult, MultiSignature,25};26use sp_std::prelude::*;27#[cfg(feature = "std")]28use sp_version::NativeVersion;29use sp_version::RuntimeVersion;3031// A few exports that help ease life for downstream crates.32pub use pallet_balances::Call as BalancesCall;33pub use pallet_contracts::Schedule as ContractsSchedule;34pub use frame_support::{35 construct_runtime,36 dispatch::DispatchResult,37 parameter_types,38 traits::{39 Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,40 WithdrawReason, LockIdentifier,41 },42 weights::{43 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},44 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,45 WeightToFeePolynomial,46 },47 StorageValue,48};49#[cfg(any(feature = "std", test))]50pub use sp_runtime::BuildStorage;51use sp_runtime:: { Perbill, Permill, Percent, ModuleId };52use frame_system::{self as system, EnsureRoot };53use sp_std::{marker::PhantomData};5455pub use pallet_timestamp::Call as TimestampCall;5657/// Struct that handles the conversion of Balance -> `u64`. This is used for58/// staking's election calculation.59pub struct CurrencyToVoteHandler;6061impl CurrencyToVoteHandler {62 fn factor() -> Balance {63 (Balances::total_issuance() / u64::max_value() as Balance).max(1)64 }65}6667impl Convert<Balance, u64> for CurrencyToVoteHandler {68 fn convert(x: Balance) -> u64 {69 (x / Self::factor()) as u6470 }71}7273impl Convert<u128, Balance> for CurrencyToVoteHandler {74 fn convert(x: u128) -> Balance {75 x * Self::factor()76 }77}7879/// Re-export a nft pallet80/// TODO: Check this re-export. Is this safe and good style?81extern crate pallet_nft;82pub use pallet_nft::*;8384/// An index to a block.85pub type BlockNumber = u32;8687/// Alias to 512-bit hash when used in the context of a transaction signature on the chain.88pub type Signature = MultiSignature;8990/// Some way of identifying an account on the chain. We intentionally make it equivalent91/// to the public key of our transaction signing scheme.92pub type AccountId = <<Signature as Verify>::Signer as IdentifyAccount>::AccountId;9394/// The type for looking up accounts. We don't expect more than 4 billion of them, but you95/// never know...96pub type AccountIndex = u32;9798/// Balance of an account.99pub type Balance = u128;100101/// Index of a transaction in the chain.102pub type Index = u32;103104/// A hash of some data used by the chain.105pub type Hash = sp_core::H256;106107/// Digest item type.108pub type DigestItem = generic::DigestItem<Hash>;109110mod nft_weights;111112/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know113/// the specifics of the runtime. They can then be made to be agnostic over specific formats114/// of data like extrinsics, allowing for them to continue syncing the network through upgrades115/// to even the core data structures.116pub mod opaque {117 use super::*;118119 pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic;120121 /// Opaque block header type.122 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;123 /// Opaque block type.124 pub type Block = generic::Block<Header, UncheckedExtrinsic>;125 /// Opaque block identifier type.126 pub type BlockId = generic::BlockId<Block>;127128 impl_opaque_keys! {129 pub struct SessionKeys {130 pub aura: Aura,131 pub grandpa: Grandpa,132 }133 }134}135136/// This runtime version.137pub const VERSION: RuntimeVersion = RuntimeVersion {138 spec_name: create_runtime_str!("nft"),139 impl_name: create_runtime_str!("nft"),140 authoring_version: 1,141 spec_version: 2,142 impl_version: 1,143 apis: RUNTIME_API_VERSIONS,144 transaction_version: 1,145};146147pub const MILLISECS_PER_BLOCK: u64 = 6000;148149pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;150151// These time units are defined in number of blocks.152pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber);153pub const HOURS: BlockNumber = MINUTES * 60;154pub const DAYS: BlockNumber = HOURS * 24;155156/// The version information used to identify this runtime when compiled natively.157#[cfg(feature = "std")]158pub fn native_version() -> NativeVersion {159 NativeVersion {160 runtime_version: VERSION,161 can_author_with: Default::default(),162 }163}164165/// Provides a membership set with only the configured aura users166pub struct ValiudatorsOnly<Runtime: pallet_aura::Trait>(PhantomData<Runtime>);167impl frame_support::traits::Contains<AccountId> for ValiudatorsOnly<Runtime> {168 fn contains(t: &AccountId) -> bool {169 let arr: [u8; 32] = *t.as_ref();170 let raw_key: Vec<u8> = Vec::from(arr);171172 match pallet_aura::Module::<Runtime>::authorities().iter().find(|auth| auth.to_raw_vec() == raw_key) {173 Some(_) => true,174 None => false,175 } 176 }177 fn sorted_members() -> Vec<AccountId> {178 let mut members: Vec<AccountId> = Vec::new();179 for auth in pallet_aura::Module::<Runtime>::authorities() {180 let mut arr: [u8; 32] = Default::default(); 181 let bor_arr = auth.clone().to_raw_vec();182 let slice = bor_arr.as_slice();183 arr.copy_from_slice(slice);184 members.push(AccountId::from(arr));185 }186 members 187 }188 fn count() -> usize {189 pallet_aura::Module::<Runtime>::authorities().len()190 }191}192193impl frame_support::traits::ContainsLengthBound for ValiudatorsOnly<Runtime> {194 fn min_len() -> usize {195 1196 }197 fn max_len() -> usize {198 100199 }200}201202parameter_types! {203 pub const BlockHashCount: BlockNumber = 2400;204 /// We allow for 2 seconds of compute with a 6 second average block time.205 pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;206 pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);207 /// Assume 10% of weight for average on_initialize calls.208 pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()209 .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();210 pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;211 pub const Version: RuntimeVersion = VERSION;212}213214impl system::Trait for Runtime {215 /// The basic call filter to use in dispatchable.216 type BaseCallFilter = ();217 /// The identifier used to distinguish between accounts.218 type AccountId = AccountId;219 /// The aggregated dispatch type that is available for extrinsics.220 type Call = Call;221 /// The lookup mechanism to get account ID from whatever is passed in dispatchers.222 type Lookup = IdentityLookup<AccountId>;223 /// The index type for storing how many extrinsics an account has signed.224 type Index = Index;225 /// The index type for blocks.226 type BlockNumber = BlockNumber;227 /// The type for hashing blocks and tries.228 type Hash = Hash;229 /// The hashing algorithm used.230 type Hashing = BlakeTwo256;231 /// The header type.232 type Header = generic::Header<BlockNumber, BlakeTwo256>;233 /// The ubiquitous event type.234 type Event = Event;235 /// The ubiquitous origin type.236 type Origin = Origin;237 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).238 type BlockHashCount = BlockHashCount;239 /// Maximum weight of each block.240 type MaximumBlockWeight = MaximumBlockWeight;241 /// The weight of database operations that the runtime can invoke.242 type DbWeight = RocksDbWeight;243 /// The weight of the overhead invoked on the block import process, independent of the244 /// extrinsics included in that block.245 type BlockExecutionWeight = BlockExecutionWeight;246 /// The base weight of any extrinsic processed by the runtime, independent of the247 /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...)248 type ExtrinsicBaseWeight = ExtrinsicBaseWeight;249 /// The maximum weight that a single extrinsic of `Normal` dispatch class can have,250 /// idependent of the logic of that extrinsics. (Roughly max block weight - average on251 /// initialize cost).252 type MaximumExtrinsicWeight = MaximumExtrinsicWeight;253 /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.254 type MaximumBlockLength = MaximumBlockLength;255 /// Portion of the block weight that is available to all normal transactions.256 type AvailableBlockRatio = AvailableBlockRatio;257 /// Version of the runtime.258 type Version = Version;259 /// This type is being generated by `construct_runtime!`.260 type PalletInfo = PalletInfo;261 /// What to do if a new account is created.262 type OnNewAccount = ();263 /// What to do if an account is fully reaped from the system.264 type OnKilledAccount = ();265 /// The data to be stored in an account.266 type AccountData = pallet_balances::AccountData<Balance>;267 /// Weight information for the extrinsics of this pallet.268 type SystemWeightInfo = ();269}270271impl pallet_aura::Trait for Runtime {272 type AuthorityId = AuraId;273}274275impl pallet_grandpa::Trait for Runtime {276 type Event = Event;277 type Call = Call;278279 type KeyOwnerProofSystem = ();280281 type KeyOwnerProof =282 <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof;283284 type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(285 KeyTypeId,286 GrandpaId,287 )>>::IdentificationTuple;288289 type HandleEquivocation = ();290291 type WeightInfo = ();292}293294parameter_types! {295 pub const MinimumPeriod: u64 = SLOT_DURATION / 2;296}297298impl pallet_timestamp::Trait for Runtime {299 /// A timestamp: milliseconds since the unix epoch.300 type Moment = u64;301 type OnTimestampSet = Aura;302 type MinimumPeriod = MinimumPeriod;303 type WeightInfo = ();304}305306parameter_types! {307 // pub const ExistentialDeposit: u128 = 500;308 pub const ExistentialDeposit: u128 = 0;309 pub const MaxLocks: u32 = 50;310}311312impl pallet_balances::Trait for Runtime {313 type MaxLocks = MaxLocks;314 /// The type for recording an account's balance.315 type Balance = Balance;316 /// The ubiquitous event type.317 type Event = Event;318 type DustRemoval = Treasury;319 type ExistentialDeposit = ExistentialDeposit;320 type AccountStore = System;321 type WeightInfo = ();322}323324pub const MILLICENTS: Balance = 1_000_000_000;325pub const CENTS: Balance = 1_000 * MILLICENTS;326pub const DOLLARS: Balance = 100 * CENTS;327328parameter_types! {329 pub const TombstoneDeposit: Balance = 0;330 pub const RentByteFee: Balance = 4 * MILLICENTS;331 pub const RentDepositOffset: Balance = 1000 * MILLICENTS;332 pub const SurchargeReward: Balance = 150 * MILLICENTS;333}334335impl pallet_contracts::Trait for Runtime {336 type Time = Timestamp;337 type Randomness = RandomnessCollectiveFlip;338 type Currency = Balances;339 type Event = Event;340 type DetermineContractAddress = pallet_contracts::SimpleAddressDeterminer<Runtime>;341 type TrieIdGenerator = pallet_contracts::TrieIdFromParentCounter<Runtime>;342 type RentPayment = ();343 type SignedClaimHandicap = pallet_contracts::DefaultSignedClaimHandicap;344 type TombstoneDeposit = TombstoneDeposit;345 type StorageSizeOffset = pallet_contracts::DefaultStorageSizeOffset;346 type RentByteFee = RentByteFee;347 type RentDepositOffset = RentDepositOffset;348 type SurchargeReward = SurchargeReward;349 type MaxDepth = pallet_contracts::DefaultMaxDepth;350 type MaxValueSize = pallet_contracts::DefaultMaxValueSize;351 type WeightPrice = pallet_transaction_payment::Module<Self>;352}353354parameter_types! {355 pub const TransactionByteFee: Balance = 10 * MILLICENTS;356}357358impl pallet_transaction_payment::Trait for Runtime {359 type Currency = pallet_balances::Module<Runtime>;360 type OnTransactionPayment = Treasury;361 type TransactionByteFee = TransactionByteFee;362 type WeightToFee = IdentityFee<Balance>;363 type FeeMultiplierUpdate = ();364}365366parameter_types! {367 pub const ProposalBond: Permill = Permill::from_percent(5);368 pub const ProposalBondMinimum: Balance = 1 * DOLLARS;369 pub const SpendPeriod: BlockNumber = 5 * MINUTES;370 pub const Burn: Permill = Permill::from_percent(0);371 pub const TipCountdown: BlockNumber = 1 * DAYS;372 pub const TipFindersFee: Percent = Percent::from_percent(20);373 pub const TipReportDepositBase: Balance = 1 * DOLLARS;374 pub const DataDepositPerByte: Balance = 1 * CENTS;375 pub const BountyDepositBase: Balance = 1 * DOLLARS;376 pub const BountyDepositPayoutDelay: BlockNumber = 1 * DAYS;377 pub const TreasuryModuleId: ModuleId = ModuleId(*b"py/trsry");378 pub const BountyUpdatePeriod: BlockNumber = 14 * DAYS;379 pub const MaximumReasonLength: u32 = 16384;380 pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);381 pub const BountyValueMinimum: Balance = 5 * DOLLARS;382}383384impl pallet_treasury::Trait for Runtime {385 type ModuleId = TreasuryModuleId;386 type Currency = Balances;387 type ApproveOrigin = EnsureRoot<AccountId>;388 type RejectOrigin = EnsureRoot<AccountId>;389 type Tippers = ValiudatorsOnly<Self>;390 type TipCountdown = TipCountdown;391 type TipFindersFee = TipFindersFee;392 type TipReportDepositBase = TipReportDepositBase;393 type DataDepositPerByte = DataDepositPerByte;394 type Event = Event;395 type OnSlash = ();396 type ProposalBond = ProposalBond;397 type ProposalBondMinimum = ProposalBondMinimum;398 type SpendPeriod = SpendPeriod;399 type Burn = Burn;400 type BountyDepositBase = BountyDepositBase;401 type BountyDepositPayoutDelay = BountyDepositPayoutDelay;402 type BountyUpdatePeriod = BountyUpdatePeriod;403 type BountyCuratorDeposit = BountyCuratorDeposit;404 type BountyValueMinimum = BountyValueMinimum;405 type MaximumReasonLength = MaximumReasonLength;406 type BurnDestination = ();407 type WeightInfo = ();408}409410impl pallet_sudo::Trait for Runtime {411 type Event = Event;412 type Call = Call;413}414415/// Used for the module nft in `./nft.rs`416impl pallet_nft::Trait for Runtime {417 type Event = Event;418 type WeightInfo = nft_weights::WeightInfo;419}420421construct_runtime!(422 pub enum Runtime where423 Block = Block,424 NodeBlock = opaque::Block,425 UncheckedExtrinsic = UncheckedExtrinsic426 {427 System: system::{Module, Call, Config, Storage, Event<T>},428 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},429 Contracts: pallet_contracts::{Module, Call, Config, Storage, Event<T>},430 Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},431 Aura: pallet_aura::{Module, Config<T>, Inherent},432 Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},433 Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},434 TransactionPayment: pallet_transaction_payment::{Module, Storage},435 Sudo: pallet_sudo::{Module, Call, Config<T>, Storage, Event<T>},436 Nft: pallet_nft::{Module, Call, Config<T>, Storage, Event<T>},437 Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},438 }439);440441/// The address format for describing accounts.442pub type Address = AccountId;443/// Block header type as expected by this runtime.444pub type Header = generic::Header<BlockNumber, BlakeTwo256>;445/// Block type as expected by this runtime.446pub type Block = generic::Block<Header, UncheckedExtrinsic>;447/// A Block signed with a Justification448pub type SignedBlock = generic::SignedBlock<Block>;449/// BlockId type as expected by this runtime.450pub type BlockId = generic::BlockId<Block>;451/// The SignedExtension to the basic transaction logic.452pub type SignedExtra = (453 system::CheckSpecVersion<Runtime>,454 system::CheckTxVersion<Runtime>,455 system::CheckGenesis<Runtime>,456 system::CheckEra<Runtime>,457 system::CheckNonce<Runtime>,458 system::CheckWeight<Runtime>,459 pallet_nft::ChargeTransactionPayment<Runtime>,460);461/// Unchecked extrinsic type as expected by this runtime.462pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;463/// Extrinsic type that has already been checked.464pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, Call, SignedExtra>;465/// Executive: handles dispatch to the various modules.466pub type Executive =467 frame_executive::Executive<Runtime, Block, system::ChainContext<Runtime>, Runtime, AllModules>;468469impl_runtime_apis! {470471 impl pallet_contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber>472 for Runtime473 {474 fn call(475 origin: AccountId,476 dest: AccountId,477 value: Balance,478 gas_limit: u64,479 input_data: Vec<u8>,480 ) -> ContractExecResult {481 let (exec_result, gas_consumed) =482 Contracts::bare_call(origin, dest.into(), value, gas_limit, input_data);483 match exec_result {484 Ok(v) => ContractExecResult::Success {485 flags: v.flags.bits(),486 data: v.data,487 gas_consumed: gas_consumed,488 },489 Err(_) => ContractExecResult::Error,490 }491 }492493 fn get_storage(494 address: AccountId,495 key: [u8; 32],496 ) -> pallet_contracts_primitives::GetStorageResult {497 Contracts::get_storage(address, key)498 }499500 fn rent_projection(501 address: AccountId,502 ) -> pallet_contracts_primitives::RentProjectionResult<BlockNumber> {503 Contracts::rent_projection(address)504 }505 }506507 impl sp_api::Core<Block> for Runtime {508 fn version() -> RuntimeVersion {509 VERSION510 }511512 fn execute_block(block: Block) {513 Executive::execute_block(block)514 }515516 fn initialize_block(header: &<Block as BlockT>::Header) {517 Executive::initialize_block(header)518 }519 }520521 impl sp_api::Metadata<Block> for Runtime {522 fn metadata() -> OpaqueMetadata {523 Runtime::metadata().into()524 }525 }526527 impl sp_block_builder::BlockBuilder<Block> for Runtime {528 fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {529 Executive::apply_extrinsic(extrinsic)530 }531532 fn finalize_block() -> <Block as BlockT>::Header {533 Executive::finalize_block()534 }535536 fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {537 data.create_extrinsics()538 }539540 fn check_inherents(541 block: Block,542 data: sp_inherents::InherentData,543 ) -> sp_inherents::CheckInherentsResult {544 data.check_extrinsics(&block)545 }546547 fn random_seed() -> <Block as BlockT>::Hash {548 RandomnessCollectiveFlip::random_seed()549 }550 }551552 impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {553 fn validate_transaction(554 source: TransactionSource,555 tx: <Block as BlockT>::Extrinsic,556 ) -> TransactionValidity {557 Executive::validate_transaction(source, tx)558 }559 }560561 impl sp_offchain::OffchainWorkerApi<Block> for Runtime {562 fn offchain_worker(header: &<Block as BlockT>::Header) {563 Executive::offchain_worker(header)564 }565 }566567 impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {568 fn slot_duration() -> u64 {569 Aura::slot_duration()570 }571572 fn authorities() -> Vec<AuraId> {573 Aura::authorities()574 }575 }576577 impl sp_session::SessionKeys<Block> for Runtime {578 fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {579 opaque::SessionKeys::generate(seed)580 }581582 fn decode_session_keys(583 encoded: Vec<u8>,584 ) -> Option<Vec<(Vec<u8>, KeyTypeId)>> {585 opaque::SessionKeys::decode_into_raw_public_keys(&encoded)586 }587 }588589 impl fg_primitives::GrandpaApi<Block> for Runtime {590 fn grandpa_authorities() -> GrandpaAuthorityList {591 Grandpa::grandpa_authorities()592 }593594 fn submit_report_equivocation_unsigned_extrinsic(595 _equivocation_proof: fg_primitives::EquivocationProof<596 <Block as BlockT>::Hash,597 NumberFor<Block>,598 >,599 _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof,600 ) -> Option<()> {601 None602 }603604 fn generate_key_ownership_proof(605 _set_id: fg_primitives::SetId,606 _authority_id: GrandpaId,607 ) -> Option<fg_primitives::OpaqueKeyOwnershipProof> {608 // NOTE: this is the only implementation possible since we've609 // defined our key owner proof type as a bottom type (i.e. a type610 // with no values).611 None612 }613 }614 615 impl frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Index> for Runtime {616 fn account_nonce(account: AccountId) -> Index {617 System::account_nonce(account)618 }619 }620621 impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance> for Runtime {622 fn query_info(623 uxt: <Block as BlockT>::Extrinsic,624 len: u32,625 ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo<Balance> {626 TransactionPayment::query_info(uxt, len)627 }628 }629630 #[cfg(feature = "runtime-benchmarks")]631 impl frame_benchmarking::Benchmark<Block> for Runtime {632 fn dispatch_benchmark(633 config: frame_benchmarking::BenchmarkConfig634 ) -> Result<Vec<frame_benchmarking::BenchmarkBatch>, sp_runtime::RuntimeString> {635 use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey};636637 let whitelist: Vec<TrackedStorageKey> = vec![638 // Alice account639 hex_literal::hex!("d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d").to_vec().into(),640 // // Total Issuance641 // hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(),642 // // Execution Phase643 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(),644 // // Event Count645 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(),646 // // System Events647 // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(),648 ];649650 let mut batches = Vec::<BenchmarkBatch>::new();651 let params = (&config, &whitelist);652653 add_benchmark!(params, batches, pallet_nft, Nft);654655 if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }656 Ok(batches)657 }658 }659}tests/package-lock.jsondiffbeforeafterboth--- a/tests/package-lock.json
+++ b/tests/package-lock.json
@@ -13,13 +13,12 @@
"@polkadot/api-contract": "^2.3.1",
"@polkadot/types": "^2.3.1",
"@polkadot/util": "^3.4.1",
- "@types/bn.js": "^4.11.6",
+ "bignumber.js": "^9.0.0",
"chai-as-promised": "^7.1.1"
},
"devDependencies": {
"@polkadot/dev": "^0.52.11",
"@polkadot/ts": "^0.3.41",
- "@types/bn.js": "^4.11.6",
"@types/chai": "^4.2.12",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.0.3",
@@ -7114,6 +7113,14 @@
"node": "*"
}
},
+ "node_modules/bignumber.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
+ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/binary-extensions": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
@@ -34960,6 +34967,11 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
+ "bignumber.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
+ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA=="
+ },
"binary-extensions": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -6,7 +6,6 @@
"devDependencies": {
"@polkadot/dev": "^0.52.11",
"@polkadot/ts": "^0.3.41",
- "@types/bn.js": "^4.11.6",
"@types/chai": "^4.2.12",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.0.3",
@@ -27,7 +26,7 @@
"@polkadot/api-contract": "^2.3.1",
"@polkadot/types": "^2.3.1",
"@polkadot/util": "^3.4.1",
- "@types/bn.js": "^4.11.6",
+ "bignumber.js": "^9.0.0",
"chai-as-promised": "^7.1.1"
},
"standard": {
tests/src/accounts.tsdiffbeforeafterboth--- a/tests/src/accounts.ts
+++ b/tests/src/accounts.ts
@@ -1,2 +1,3 @@
export const bobsPublicKey = '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty';
export const alicesPublicKey = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
+export const ferdiesPublicKey = '5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL';
tests/src/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/createCollection.test.ts
+++ b/tests/src/createCollection.test.ts
@@ -1,90 +1,67 @@
-import { assert } from 'chai';
-import privateKey from './substrate/privateKey';
-import usingApi from './substrate/substrate-api';
-import waitNewBlocks from './substrate/wait-new-blocks';
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+import { default as usingApi } from "./substrate/substrate-api";
+import { createCollectionExpectSuccess, createCollectionExpectFailure } from "./util/helpers";
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
describe('integration test: ext. createCollection():', () => {
it('Create new NFT collection', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', '1', '1', 'NFT')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount === AcollectionCount) {assert.fail('Error: NFT collection NOT created.'); }
- });
+ await createCollectionExpectSuccess('A', 'B', 'C', 'NFT');
+ });
+ it('Create new NFT collection whith collection_name of maximum length (64 bytes)', async () => {
+ await createCollectionExpectSuccess(
+ 'ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCD',
+ '1', '1', 'NFT');
});
+ it('Create new NFT collection whith collection_description of maximum length (256 bytes)', async () => {
+ await createCollectionExpectSuccess(
+ 'A',
+ 'ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJabcdef',
+ '1', 'NFT');
+ });
+ it('Create new NFT collection whith token_prefix of maximum length (16 bytes)', async () => {
+ await createCollectionExpectSuccess(
+ '1',
+ '1',
+ 'ABCDEFGHIJABCDEF', 'NFT');
+ });
it('Create new Fungible collection', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', '1', '1', 'Fungible')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount === AcollectionCount) {assert.fail('Error: Fungible collection NOT created.'); } });
+ await createCollectionExpectSuccess('1', '1', '1', 'Fungible');
});
it('Create new ReFungible collection', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', '1', '1', 'ReFungible')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount === AcollectionCount) {assert.fail('Error: ReFungible collection NOT created.'); } });
+ await createCollectionExpectSuccess('1', '1', '1', 'ReFungible');
});
});
describe('(!negative test!) integration test: ext. createCollection():', () => {
it('(!negative test!) create new NFT collection whith incorrect data (mode)', async () => {
await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', '1', '1', 'BadMode')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount > AcollectionCount) {assert.fail('Error: Incorrect collection created.'); }
- });
- });
- it('(!negative test!) create new NFT collection whith incorrect data (token_prefix)', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', '1', '0x999', 'NFT')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount > AcollectionCount) {assert.fail('Incorrect data (token_prefix) created.'); }
+ const AcollectionCount = parseInt((await api.query.nft.collectionCount()).toString());
+
+ const badTransaction = async function () {
+ await createCollectionExpectSuccess('1', '1', '1', 'BadMode');
+ };
+ expect(badTransaction()).to.be.rejected;
+
+ const BcollectionCount = parseInt((await api.query.nft.collectionCount()).toString());
+ expect(BcollectionCount).to.be.equal(AcollectionCount, 'Error: Incorrect collection created.');
});
});
it('(!negative test!) create new NFT collection whith incorrect data (collection_name)', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('BadName', '1', '1', 'NFT')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount > AcollectionCount) {assert.fail('Incorrect data (collection_name) created.'); } });
+ await createCollectionExpectFailure(
+ 'ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDE',
+ '1', '1', 'NFT');
});
it('(!negative test!) create new NFT collection whith incorrect data (collection_description)', async () => {
- await usingApi(async (api) => {
- const alicePrivateKey = privateKey('//Alice');
- const AcollectionCount = await api.query.nft.collectionCount();
- await api.tx.nft
- .createCollection('1', 'BadDesk', '1', 'NFT')
- .signAndSend(alicePrivateKey);
- await waitNewBlocks(api);
- const BcollectionCount = await api.query.nft.collectionCount();
- if (BcollectionCount > AcollectionCount) {assert.fail('Incorrect data (collection_desc) created.'); } });
+ await createCollectionExpectFailure('1',
+ 'ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJabcdefg',
+ '1', 'NFT');
+ });
+ it('(!negative test!) create new NFT collection whith incorrect data (token_prefix)', async () => {
+ await createCollectionExpectFailure('1', '1',
+ 'ABCDEFGHIJABCDEFG',
+ 'NFT');
});
});
tests/src/createMultipleItems.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/createMultipleItems.test.ts
@@ -0,0 +1,64 @@
+import { assert } from 'chai';
+import { alicesPublicKey } from './accounts';
+import privateKey from './substrate/privateKey';
+import usingApi from './substrate/substrate-api';
+import waitNewBlocks from './substrate/wait-new-blocks';
+
+const idCollection = 12;
+
+describe('integration test: ext. createMultipleItems():', () => {
+ it('Create two NFT tokens in active NFT collection', async () => {
+ await usingApi(async (api) => {
+ const AitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (before): ${AitemListIndex}`);
+ const args = ['NFT', 'NFT'];
+ const alicePrivateKey = privateKey('//Alice');
+ const createMultipleItems = await api.tx.nft
+ .createMultipleItems(idCollection, alicesPublicKey, args)
+ .signAndSend(alicePrivateKey);
+ // tslint:disable-next-line: no-unused-expression
+ assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');
+ console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);
+ await waitNewBlocks(api);
+ const BitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (after): ${BitemListIndex}`);
+ if (BitemListIndex === AitemListIndex) { assert.fail('Corret token not added in collection!'); }
+ });
+ });
+ it('(!negative test!) Create two Fungible tokens in active NFT collection', async () => {
+ await usingApi(async (api) => {
+ const AitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (before): ${AitemListIndex}`);
+ const args = ['Fungible', 'Fungible'];
+ const alicePrivateKey = privateKey('//Alice');
+ const createMultipleItems = await api.tx.nft
+ .createMultipleItems(idCollection, alicesPublicKey, args)
+ .signAndSend(alicePrivateKey);
+ // tslint:disable-next-line: no-unused-expression
+ assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');
+ console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);
+ await waitNewBlocks(api);
+ const BitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (after): ${BitemListIndex}`);
+ if (BitemListIndex > AitemListIndex) { assert.fail('Incorrect token added in collection!'); }
+ });
+ });
+ it('(!negative test!) Create two ReFungible tokens in active NFT collection', async () => {
+ await usingApi(async (api) => {
+ const AitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (before): ${AitemListIndex}`);
+ const args = ['ReFungible', 'ReFungible'];
+ const alicePrivateKey = privateKey('//Alice');
+ const createMultipleItems = await api.tx.nft
+ .createMultipleItems(idCollection, alicesPublicKey, args)
+ .signAndSend(alicePrivateKey);
+ // tslint:disable-next-line: no-unused-expression
+ assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');
+ console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);
+ await waitNewBlocks(api);
+ const BitemListIndex = await api.query.nft.itemListIndex(idCollection);
+ console.log(`itemListIndex count (after): ${BitemListIndex}`);
+ if (BitemListIndex > AitemListIndex) { assert.fail('Incorrect token added in collection!'); }
+ });
+ });
+});
tests/src/crefitFeesToTreasury.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/crefitFeesToTreasury.test.ts
@@ -0,0 +1,107 @@
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";
+import { alicesPublicKey, bobsPublicKey } from "./accounts";
+import privateKey from "./substrate/privateKey";
+import { BigNumber } from 'bignumber.js';
+import { createCollectionExpectSuccess, getGenericResult } from './util/helpers';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+const Treasury = "5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z";
+const saneMinimumFee = 0.0001;
+const saneMaximumFee = 0.01;
+
+describe('integration test: Fees must be credited to Treasury:', () => {
+ it('Total issuance does not change', async () => {
+ await usingApi(async (api) => {
+ const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());
+
+ const alicePrivateKey = privateKey('//Alice');
+ const amount = new BigNumber(1);
+ const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());
+
+ const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
+
+ const totalAfter = new BigNumber((await api.query.balances.totalIssuance()).toString());
+
+ expect(result.success).to.be.true;
+ expect(totalAfter.toFixed()).to.be.equal(totalBefore.toFixed());
+ });
+ });
+
+ it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {
+ await usingApi(async (api) => {
+ const alicePrivateKey = privateKey('//Alice');
+ const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+
+ const amount = new BigNumber(1);
+ const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());
+ const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
+
+ const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const fee = aliceBalanceBefore.minus(aliceBalanceAfter).minus(amount);
+ const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+
+ expect(result.success).to.be.true;
+ expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ });
+ });
+
+ it('Treasury balance increased by failed tx fee', async () => {
+ await usingApi(async (api) => {
+ const bobPrivateKey = privateKey('//Bob');
+ const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const bobBalanceBefore = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());
+
+ const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);
+ const result = getGenericResult(await submitTransactionAsync(bobPrivateKey, badTx));
+
+ const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const bobBalanceAfter = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());
+ const fee = bobBalanceBefore.minus(bobBalanceAfter);
+ const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+
+ expect(result.success).to.be.false;
+ expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ });
+ });
+
+ it('NFT Transactions also send fees to Treasury', async () => {
+ await usingApi(async (api) => {
+ const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+
+ await createCollectionExpectSuccess('A', 'B', 'C', 'NFT');
+
+ const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
+ const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+
+ expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ });
+ });
+
+ it('Fees are sane', async () => {
+ await usingApi(async (api) => {
+ const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+
+ await createCollectionExpectSuccess('A', 'B', 'C', 'NFT');
+
+ const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
+ const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
+ const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+
+ expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(0.01);
+ expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(0.0001);
+ });
+ });
+
+});
+
tests/src/substrate/substrate-api.tsdiffbeforeafterboth--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -1,7 +1,10 @@
import { WsProvider, ApiPromise } from "@polkadot/api";
+import type { AccountId, Address, ApplyExtrinsicResult, DispatchError, DispatchInfo, EventRecord, Extrinsic, ExtrinsicStatus, Hash, RuntimeDispatchInfo } from '@polkadot/types/interfaces';
+import { IKeyringPair } from "@polkadot/types/types";
+
import config from "../config";
import promisifySubstrate from "./promisify-substrate";
-import { ApiOptions } from "@polkadot/api/types";
+import { ApiOptions, SubmittableExtrinsic, ApiTypes } from "@polkadot/api/types";
import rtt from "../../../runtime_types.json";
function defaultApiOptions(): ApiOptions {
@@ -23,4 +26,28 @@
} finally {
await api.disconnect();
}
-}
\ No newline at end of file
+}
+
+export function submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {
+ return new Promise(async function(resolve, reject) {
+ try {
+ await transaction.signAndSend(sender, ({ events = [], status }) => {
+ if (status.isReady) {
+ // nothing to do
+ // console.log(`Current tx status is Ready`);
+ } else if (status.isBroadcast) {
+ // nothing to do
+ // console.log(`Current tx status is Broadcast`);
+ } else if (status.isInBlock || status.isFinalized) {
+ resolve(events);
+ } else {
+ console.log(`Something went wrong with transaction. Status: ${status}`);
+ reject("Transaction failed");
+ }
+ });
+ } catch (e) {
+ console.log("Error: ", e);
+ reject(e);
+ }
+ });
+}
tests/src/transfer.test.tsdiffbeforeafterboth--- a/tests/src/transfer.test.ts
+++ b/tests/src/transfer.test.ts
@@ -1,8 +1,6 @@
-import { expect } from "chai";
-import usingApi from "./substrate/substrate-api";
-import promisifySubstrate from "./substrate/promisify-substrate";
-import waitNewBlocks from "./substrate/wait-new-blocks";
-import { alicesPublicKey, bobsPublicKey } from "./accounts";
+import { expect, assert } from "chai";
+import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";
+import { alicesPublicKey, bobsPublicKey, ferdiesPublicKey } from "./accounts";
import privateKey from "./substrate/privateKey";
import getBalance from "./substrate/get-balance";
@@ -14,15 +12,30 @@
const alicePrivateKey = privateKey('//Alice');
const transfer = api.tx.balances.transfer(bobsPublicKey, 1n);
-
- await promisifySubstrate(api, () => transfer.signAndSend(alicePrivateKey))();
+ const result = await submitTransactionAsync(alicePrivateKey, transfer);
- await waitNewBlocks(api);
-
const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;
expect(bobsBalanceAfter > bobsBalanceBefore).to.be.true;
});
});
+
+ it('Inability to pay fees error message is correct', async () => {
+ await usingApi(async api => {
+ const pk = privateKey('//Ferdie');
+
+ console.log = function () {};
+ console.error = function () {};
+
+ const badTransfer = api.tx.balances.transfer(bobsPublicKey, 1n);
+ const badTransaction = async function () {
+ const result = await submitTransactionAsync(pk, badTransfer);
+ };
+ await expect(badTransaction()).to.be.rejectedWith("Inability to pay some fees");
+
+ delete console.log;
+ delete console.error;
+ });
+ });
});
tests/src/util/helpers.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/util/helpers.ts
@@ -0,0 +1,100 @@
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+import type { EventRecord } from '@polkadot/types/interfaces';
+import { default as usingApi, submitTransactionAsync } from "../substrate/substrate-api";
+import privateKey from '../substrate/privateKey';
+import { alicesPublicKey } from "../accounts";
+import { strToUTF16, utf16ToStr, hexToStr } from '../util/util';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+type GenericResult = {
+ success: boolean,
+};
+
+type CreateCollectionResult = {
+ success: boolean,
+ collectionId: number
+};
+
+export function getGenericResult(events: EventRecord[]): GenericResult {
+ let result: GenericResult = {
+ success: false
+ }
+ events.forEach(({ phase, event: { data, method, section } }) => {
+ // console.log(` ${phase}: ${section}.${method}:: ${data}`);
+ if (method == 'ExtrinsicSuccess') {
+ result.success = true;
+ }
+ });
+ return result;
+}
+
+function getCreateCollectionResult(events: EventRecord[]): CreateCollectionResult {
+ let success = false;
+ let collectionId: number = 0;
+ events.forEach(({ phase, event: { data, method, section } }) => {
+ // console.log(` ${phase}: ${section}.${method}:: ${data}`);
+ if (method == 'ExtrinsicSuccess') {
+ success = true;
+ } else if ((section == 'nft') && (method == 'Created')) {
+ collectionId = parseInt(data[0].toString());
+ }
+ });
+ let result: CreateCollectionResult = {
+ success,
+ collectionId
+ }
+ return result;
+}
+
+export async function createCollectionExpectSuccess(name: string, description: string, tokenPrefix: string, mode: string) {
+ await usingApi(async (api) => {
+ // Get number of collections before the transaction
+ const AcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+
+ // Run the CreateCollection transaction
+ const alicePrivateKey = privateKey('//Alice');
+ const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), mode);
+ const events = await submitTransactionAsync(alicePrivateKey, tx);
+ const result = getCreateCollectionResult(events);
+
+ // Get number of collections after the transaction
+ const BcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+
+ // Get the collection
+ const collection: any = (await api.query.nft.collection(result.collectionId)).toJSON();
+
+ // What to expect
+ expect(result.success).to.be.true;
+ expect(result.collectionId).to.be.equal(BcollectionCount);
+ expect(collection).to.be.not.null;
+ expect(BcollectionCount).to.be.equal(AcollectionCount+1, 'Error: NFT collection NOT created.');
+ expect(collection.Owner).to.be.equal(alicesPublicKey);
+ expect(utf16ToStr(collection.Name)).to.be.equal(name);
+ expect(utf16ToStr(collection.Description)).to.be.equal(description);
+ expect(hexToStr(collection.TokenPrefix)).to.be.equal(tokenPrefix);
+ });
+}
+
+export async function createCollectionExpectFailure(name: string, description: string, tokenPrefix: string, mode: string) {
+ await usingApi(async (api) => {
+ // Get number of collections before the transaction
+ const AcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+
+ // Run the CreateCollection transaction
+ const alicePrivateKey = privateKey('//Alice');
+ const tx = api.tx.nft.createCollection(name, description, tokenPrefix, mode);
+ const events = await submitTransactionAsync(alicePrivateKey, tx);
+ const result = getCreateCollectionResult(events);
+
+ // Get number of collections after the transaction
+ const BcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+
+ // What to expect
+ expect(result.success).to.be.false;
+ expect(BcollectionCount).to.be.equal(AcollectionCount, 'Error: Collection with incorrect data created.');
+ });
+}
+
tests/src/util/util.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/util/util.ts
@@ -0,0 +1,30 @@
+export function strToUTF16(str: string): any {
+ let buf: number[] = [];
+ for (let i=0, strLen=str.length; i < strLen; i++) {
+ buf.push(str.charCodeAt(i));
+ }
+ return buf;
+}
+
+export function utf16ToStr(buf: number[]): string {
+ let str: string = "";
+ for (let i=0, strLen=buf.length; i < strLen; i++) {
+ if (buf[i] != 0) str += String.fromCharCode(buf[i]);
+ else break;
+ }
+ return str;
+}
+
+export function hexToStr(buf: string): string {
+ let str: string = "";
+ let hexStart = buf.indexOf("0x");
+ if (hexStart < 0) hexStart = 0;
+ else hexStart = 2;
+ for (let i=hexStart, strLen=buf.length; i < strLen; i+=2) {
+ let ch = buf[i] + buf[i+1];
+ let num = parseInt(ch, 16);
+ if (num != 0) str += String.fromCharCode(num);
+ else break;
+ }
+ return str;
+}