git.delta.rocks / unique-network / refs/commits / 1d9eb90d136e

difftreelog

Merge branch 'develop' of github.com:usetech-llc/nft_private into feature/NFTPAR-252_setMintPermission

Yaroslav Bolyukin2021-02-04parents: #8a2456a #104a9a3.patch.diff
in: master

53 files changed

added.devcontainer/Dockerfilediffbeforeafterboth

no changes

added.devcontainer/devcontainer.jsondiffbeforeafterboth

no changes

modifiedCargo.lockdiffbeforeafterboth
1212
13[[package]]13[[package]]
14name = "addr2line"14name = "addr2line"
15version = "0.14.0"15version = "0.14.1"
16source = "registry+https://github.com/rust-lang/crates.io-index"16source = "registry+https://github.com/rust-lang/crates.io-index"
17checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"17checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
18dependencies = [18dependencies = [
19 "gimli 0.23.0",19 "gimli 0.23.0",
20]20]
65checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6"65checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6"
66dependencies = [66dependencies = [
67 "block-cipher",67 "block-cipher",
68 "byteorder 1.3.4",68 "byteorder",
69 "opaque-debug 0.3.0",69 "opaque-debug 0.3.0",
70]70]
7171
79 "opaque-debug 0.3.0",79 "opaque-debug 0.3.0",
80]80]
81
82[[package]]
83name = "ahash"
84version = "0.2.19"
85source = "registry+https://github.com/rust-lang/crates.io-index"
86checksum = "29661b60bec623f0586702976ff4d0c9942dcb6723161c2df0eea78455cfedfb"
87dependencies = [
88 "const-random",
89]
90
91[[package]]
92name = "ahash"
93version = "0.3.8"
94source = "registry+https://github.com/rust-lang/crates.io-index"
95checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
9681
97[[package]]82[[package]]
98name = "ahash"83name = "ahash"
109 "memchr",94 "memchr",
110]95]
111
112[[package]]
113name = "alga"
114version = "0.9.3"
115source = "registry+https://github.com/rust-lang/crates.io-index"
116checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
117dependencies = [
118 "approx",
119 "num-complex",
120 "num-traits",
121]
12296
123[[package]]97[[package]]
124name = "ansi_term"98name = "ansi_term"
140114
141[[package]]115[[package]]
142name = "anyhow"116name = "anyhow"
143version = "1.0.35"117version = "1.0.38"
144source = "registry+https://github.com/rust-lang/crates.io-index"118source = "registry+https://github.com/rust-lang/crates.io-index"
145checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"119checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
146120
147[[package]]121[[package]]
148name = "approx"122name = "approx"
153 "num-traits",127 "num-traits",
154]128]
155
156[[package]]
157name = "arc-swap"
158version = "0.4.8"
159source = "registry+https://github.com/rust-lang/crates.io-index"
160checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8"
161129
162[[package]]130[[package]]
163name = "arrayref"131name = "arrayref"
220 "concurrent-queue",188 "concurrent-queue",
221 "fastrand",189 "fastrand",
222 "futures-lite",190 "futures-lite",
223 "once_cell 1.5.2",191 "once_cell",
224 "vec-arena",192 "vec-arena",
225]193]
226194
227[[package]]195[[package]]
228name = "async-global-executor"196name = "async-global-executor"
229version = "1.4.3"197version = "2.0.2"
230source = "registry+https://github.com/rust-lang/crates.io-index"198source = "registry+https://github.com/rust-lang/crates.io-index"
231checksum = "73079b49cd26b8fd5a15f68fc7707fc78698dc2a3d61430f2a7a9430230dfa04"199checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
232dependencies = [200dependencies = [
201 "async-channel",
233 "async-executor",202 "async-executor",
234 "async-io",203 "async-io",
204 "async-mutex",
205 "blocking",
235 "futures-lite",206 "futures-lite",
236 "num_cpus",207 "num_cpus",
237 "once_cell 1.5.2",208 "once_cell",
238]209]
239210
240[[package]]211[[package]]
249 "libc",220 "libc",
250 "log",221 "log",
251 "nb-connect",222 "nb-connect",
252 "once_cell 1.5.2",223 "once_cell",
253 "parking",224 "parking",
254 "polling",225 "polling",
255 "vec-arena",226 "vec-arena",
256 "waker-fn",227 "waker-fn",
257 "winapi 0.3.9",228 "winapi 0.3.9",
258]229]
230
231[[package]]
232name = "async-lock"
233version = "2.3.0"
234source = "registry+https://github.com/rust-lang/crates.io-index"
235checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb"
236dependencies = [
237 "event-listener",
238]
259239
260[[package]]240[[package]]
261name = "async-mutex"241name = "async-mutex"
277 "cfg-if 0.1.10",257 "cfg-if 0.1.10",
278 "event-listener",258 "event-listener",
279 "futures-lite",259 "futures-lite",
280 "once_cell 1.5.2",260 "once_cell",
281 "signal-hook",261 "signal-hook",
282 "winapi 0.3.9",262 "winapi 0.3.9",
283]263]
284264
285[[package]]265[[package]]
286name = "async-std"266name = "async-std"
287version = "1.8.0"267version = "1.9.0"
288source = "registry+https://github.com/rust-lang/crates.io-index"268source = "registry+https://github.com/rust-lang/crates.io-index"
289checksum = "8f9f84f1280a2b436a2c77c2582602732b6c2f4321d5494d6e799e6c367859a8"269checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341"
290dependencies = [270dependencies = [
291 "async-channel",271 "async-channel",
292 "async-global-executor",272 "async-global-executor",
293 "async-io",273 "async-io",
294 "async-mutex",274 "async-lock",
295 "async-process",275 "async-process",
296 "blocking",
297 "crossbeam-utils 0.8.1",276 "crossbeam-utils 0.8.1",
298 "futures-channel",277 "futures-channel",
299 "futures-core",278 "futures-core",
304 "log",283 "log",
305 "memchr",284 "memchr",
306 "num_cpus",285 "num_cpus",
307 "once_cell 1.5.2",286 "once_cell",
308 "pin-project-lite 0.2.0",287 "pin-project-lite 0.2.4",
309 "pin-utils",288 "pin-utils",
310 "slab",289 "slab",
311 "wasm-bindgen-futures",290 "wasm-bindgen-futures",
317source = "registry+https://github.com/rust-lang/crates.io-index"296source = "registry+https://github.com/rust-lang/crates.io-index"
318checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"297checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
319
320[[package]]
321name = "async-tls"
322version = "0.8.0"
323source = "registry+https://github.com/rust-lang/crates.io-index"
324checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634"
325dependencies = [
326 "futures 0.3.8",
327 "rustls",
328 "webpki",
329 "webpki-roots 0.19.0",
330]
331298
332[[package]]299[[package]]
333name = "async-trait"300name = "async-trait"
340 "syn",307 "syn",
341]308]
309
310[[package]]
311name = "asynchronous-codec"
312version = "0.5.0"
313source = "registry+https://github.com/rust-lang/crates.io-index"
314checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6"
315dependencies = [
316 "bytes 1.0.1",
317 "futures-sink",
318 "futures-util",
319 "memchr",
320 "pin-project-lite 0.2.4",
321]
342322
343[[package]]323[[package]]
344name = "atomic"324name = "atomic"
345version = "0.4.6"325version = "0.5.0"
346source = "registry+https://github.com/rust-lang/crates.io-index"326source = "registry+https://github.com/rust-lang/crates.io-index"
347checksum = "64f46ca51dca4837f1520754d1c8c36636356b81553d928dc9c177025369a06e"327checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281"
328dependencies = [
329 "autocfg",
330]
348331
349[[package]]332[[package]]
350name = "atomic-waker"333name = "atomic-waker"
363 "winapi 0.3.9",346 "winapi 0.3.9",
364]347]
365
366[[package]]
367name = "autocfg"
368version = "0.1.7"
369source = "registry+https://github.com/rust-lang/crates.io-index"
370checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
371348
372[[package]]349[[package]]
373name = "autocfg"350name = "autocfg"
377354
378[[package]]355[[package]]
379name = "backtrace"356name = "backtrace"
380version = "0.3.55"357version = "0.3.56"
381source = "registry+https://github.com/rust-lang/crates.io-index"358source = "registry+https://github.com/rust-lang/crates.io-index"
382checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"359checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
383dependencies = [360dependencies = [
384 "addr2line",361 "addr2line",
385 "cfg-if 1.0.0",362 "cfg-if 1.0.0",
386 "libc",363 "libc",
387 "miniz_oxide",364 "miniz_oxide",
388 "object 0.22.0",365 "object 0.23.0",
389 "rustc-demangle",366 "rustc-demangle",
390]367]
391368
395source = "registry+https://github.com/rust-lang/crates.io-index"372source = "registry+https://github.com/rust-lang/crates.io-index"
396checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83"373checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83"
397
398[[package]]
399name = "base64"
400version = "0.11.0"
401source = "registry+https://github.com/rust-lang/crates.io-index"
402checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
403374
404[[package]]375[[package]]
405name = "base64"376name = "base64"
419source = "registry+https://github.com/rust-lang/crates.io-index"390source = "registry+https://github.com/rust-lang/crates.io-index"
420checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"391checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"
421dependencies = [392dependencies = [
422 "byteorder 1.3.4",393 "byteorder",
423 "serde",394 "serde",
424]395]
425396
444 "regex",415 "regex",
445 "rustc-hash",416 "rustc-hash",
446 "shlex",417 "shlex",
447 "which",418 "which 3.1.1",
448]419]
449
450[[package]]
451name = "bip39"
452version = "0.6.0-beta.1"
453source = "registry+https://github.com/rust-lang/crates.io-index"
454checksum = "7059804e226b3ac116519a252d7f5fb985a5ccc0e93255e036a5f7e7283323f4"
455dependencies = [
456 "failure",
457 "hashbrown 0.1.8",
458 "hmac",
459 "once_cell 0.1.8",
460 "pbkdf2",
461 "rand 0.6.5",
462 "sha2 0.8.2",
463]
464420
465[[package]]421[[package]]
466name = "bitflags"422name = "bitflags"
467version = "1.2.1"423version = "1.2.1"
468source = "registry+https://github.com/rust-lang/crates.io-index"424source = "registry+https://github.com/rust-lang/crates.io-index"
469checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"425checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
470
471[[package]]
472name = "bitmask"
473version = "0.5.0"
474source = "registry+https://github.com/rust-lang/crates.io-index"
475checksum = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead"
476426
477[[package]]427[[package]]
478name = "bitvec"428name = "bitvec"
516 "constant_time_eq",466 "constant_time_eq",
517]467]
518
519[[package]]
520name = "blake2s_simd"
521version = "0.5.11"
522source = "registry+https://github.com/rust-lang/crates.io-index"
523checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2"
524dependencies = [
525 "arrayref",
526 "arrayvec 0.5.2",
527 "constant_time_eq",
528]
529468
530[[package]]469[[package]]
531name = "block-buffer"470name = "block-buffer"
535dependencies = [474dependencies = [
536 "block-padding 0.1.5",475 "block-padding 0.1.5",
537 "byte-tools",476 "byte-tools",
538 "byteorder 1.3.4",477 "byteorder",
539 "generic-array 0.12.3",478 "generic-array 0.12.3",
540]479]
541480
584 "atomic-waker",523 "atomic-waker",
585 "fastrand",524 "fastrand",
586 "futures-lite",525 "futures-lite",
587 "once_cell 1.5.2",526 "once_cell",
588]527]
589
590[[package]]
591name = "bs58"
592version = "0.3.1"
593source = "registry+https://github.com/rust-lang/crates.io-index"
594checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
595528
596[[package]]529[[package]]
597name = "bs58"530name = "bs58"
610543
611[[package]]544[[package]]
612name = "bumpalo"545name = "bumpalo"
613version = "3.4.0"546version = "3.5.0"
614source = "registry+https://github.com/rust-lang/crates.io-index"547source = "registry+https://github.com/rust-lang/crates.io-index"
615checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"548checksum = "f07aa6688c702439a1be0307b6a94dffe1168569e45b9500c1372bc580740d59"
616549
617[[package]]550[[package]]
618name = "byte-slice-cast"551name = "byte-slice-cast"
626source = "registry+https://github.com/rust-lang/crates.io-index"559source = "registry+https://github.com/rust-lang/crates.io-index"
627checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"560checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
628
629[[package]]
630name = "byteorder"
631version = "0.5.3"
632source = "registry+https://github.com/rust-lang/crates.io-index"
633checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
634561
635[[package]]562[[package]]
636name = "byteorder"563name = "byteorder"
637version = "1.3.4"564version = "1.4.2"
638source = "registry+https://github.com/rust-lang/crates.io-index"565source = "registry+https://github.com/rust-lang/crates.io-index"
639checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"566checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
640567
641[[package]]568[[package]]
642name = "bytes"569name = "bytes"
643version = "0.4.12"570version = "0.4.12"
644source = "registry+https://github.com/rust-lang/crates.io-index"571source = "registry+https://github.com/rust-lang/crates.io-index"
645checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"572checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
646dependencies = [573dependencies = [
647 "byteorder 1.3.4",574 "byteorder",
648 "either",575 "either",
649 "iovec",576 "iovec",
650]577]
656checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"583checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
657584
658[[package]]585[[package]]
659name = "c_linked_list"586name = "bytes"
660version = "1.1.1"587version = "1.0.1"
661source = "registry+https://github.com/rust-lang/crates.io-index"588source = "registry+https://github.com/rust-lang/crates.io-index"
662checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b"589checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
663590
664[[package]]591[[package]]
665name = "cache-padded"592name = "cache-padded"
733 "winapi 0.3.9",660 "winapi 0.3.9",
734]661]
662
663[[package]]
664name = "cipher"
665version = "0.2.5"
666source = "registry+https://github.com/rust-lang/crates.io-index"
667checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
668dependencies = [
669 "generic-array 0.14.4",
670]
735671
736[[package]]672[[package]]
737name = "clang-sys"673name = "clang-sys"
777 "cache-padded",713 "cache-padded",
778]714]
779
780[[package]]
781name = "const-random"
782version = "0.1.13"
783source = "registry+https://github.com/rust-lang/crates.io-index"
784checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4"
785dependencies = [
786 "const-random-macro",
787 "proc-macro-hack",
788]
789
790[[package]]
791name = "const-random-macro"
792version = "0.1.13"
793source = "registry+https://github.com/rust-lang/crates.io-index"
794checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40"
795dependencies = [
796 "getrandom 0.2.0",
797 "lazy_static",
798 "proc-macro-hack",
799 "tiny-keccak",
800]
801715
802[[package]]716[[package]]
803name = "const_fn"717name = "const_fn"
804version = "0.4.4"718version = "0.4.5"
805source = "registry+https://github.com/rust-lang/crates.io-index"719source = "registry+https://github.com/rust-lang/crates.io-index"
806checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"720checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
807721
808[[package]]722[[package]]
809name = "constant_time_eq"723name = "constant_time_eq"
854source = "registry+https://github.com/rust-lang/crates.io-index"768source = "registry+https://github.com/rust-lang/crates.io-index"
855checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38"769checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38"
856dependencies = [770dependencies = [
857 "byteorder 1.3.4",771 "byteorder",
858 "cranelift-bforest",772 "cranelift-bforest",
859 "cranelift-codegen-meta",773 "cranelift-codegen-meta",
860 "cranelift-codegen-shared",774 "cranelift-codegen-shared",
863 "log",777 "log",
864 "regalloc",778 "regalloc",
865 "serde",779 "serde",
866 "smallvec 1.5.1",780 "smallvec 1.6.1",
867 "target-lexicon",781 "target-lexicon",
868 "thiserror",782 "thiserror",
869]783]
901dependencies = [815dependencies = [
902 "cranelift-codegen",816 "cranelift-codegen",
903 "log",817 "log",
904 "smallvec 1.5.1",818 "smallvec 1.6.1",
905 "target-lexicon",819 "target-lexicon",
906]820]
907821
978source = "registry+https://github.com/rust-lang/crates.io-index"892source = "registry+https://github.com/rust-lang/crates.io-index"
979checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"893checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
980dependencies = [894dependencies = [
981 "autocfg 1.0.1",895 "autocfg",
982 "cfg-if 0.1.10",896 "cfg-if 0.1.10",
983 "crossbeam-utils 0.7.2",897 "crossbeam-utils 0.7.2",
984 "lazy_static",898 "lazy_static",
985 "maybe-uninit",899 "maybe-uninit",
986 "memoffset 0.5.6",900 "memoffset 0.5.6",
987 "scopeguard 1.1.0",901 "scopeguard",
988]902]
989903
990[[package]]904[[package]]
998 "crossbeam-utils 0.8.1",912 "crossbeam-utils 0.8.1",
999 "lazy_static",913 "lazy_static",
1000 "memoffset 0.6.1",914 "memoffset 0.6.1",
1001 "scopeguard 1.1.0",915 "scopeguard",
1002]916]
1003917
1004[[package]]918[[package]]
1018source = "registry+https://github.com/rust-lang/crates.io-index"932source = "registry+https://github.com/rust-lang/crates.io-index"
1019checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"933checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
1020dependencies = [934dependencies = [
1021 "autocfg 1.0.1",935 "autocfg",
1022 "cfg-if 0.1.10",936 "cfg-if 0.1.10",
1023 "lazy_static",937 "lazy_static",
1024]938]
1029source = "registry+https://github.com/rust-lang/crates.io-index"943source = "registry+https://github.com/rust-lang/crates.io-index"
1030checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"944checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
1031dependencies = [945dependencies = [
1032 "autocfg 1.0.1",946 "autocfg",
1033 "cfg-if 1.0.0",947 "cfg-if 1.0.0",
1034 "lazy_static",948 "lazy_static",
1035]949]
1069 "sct",983 "sct",
1070]984]
985
986[[package]]
987name = "ctor"
988version = "0.1.18"
989source = "registry+https://github.com/rust-lang/crates.io-index"
990checksum = "10bcb9d7dcbf7002aaffbb53eac22906b64cdcc127971dcc387d8eb7c95d5560"
991dependencies = [
992 "quote",
993 "syn",
994]
1071995
1072[[package]]996[[package]]
1073name = "cuckoofilter"997name = "cuckoofilter"
1074version = "0.3.2"998version = "0.5.0"
1075source = "registry+https://github.com/rust-lang/crates.io-index"999source = "registry+https://github.com/rust-lang/crates.io-index"
1076checksum = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f"1000checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18"
1077dependencies = [1001dependencies = [
1078 "byteorder 0.5.3",1002 "byteorder",
1003 "fnv",
1079 "rand 0.3.23",1004 "rand 0.7.3",
1080]1005]
10811006
1082[[package]]1007[[package]]
1083name = "curve25519-dalek"1008name = "curve25519-dalek"
1084version = "2.1.0"1009version = "2.1.2"
1085source = "registry+https://github.com/rust-lang/crates.io-index"1010source = "registry+https://github.com/rust-lang/crates.io-index"
1086checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5"1011checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8"
1087dependencies = [1012dependencies = [
1088 "byteorder 1.3.4",1013 "byteorder",
1089 "digest 0.8.1",1014 "digest 0.8.1",
1090 "rand_core 0.5.1",1015 "rand_core 0.5.1",
1091 "subtle 2.4.0",1016 "subtle 2.4.0",
10941019
1095[[package]]1020[[package]]
1096name = "curve25519-dalek"1021name = "curve25519-dalek"
1097version = "3.0.0"1022version = "3.0.2"
1098source = "registry+https://github.com/rust-lang/crates.io-index"1023source = "registry+https://github.com/rust-lang/crates.io-index"
1099checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307"1024checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f"
1100dependencies = [1025dependencies = [
1101 "byteorder 1.3.4",1026 "byteorder",
1102 "digest 0.9.0",1027 "digest 0.9.0",
1103 "rand_core 0.5.1",1028 "rand_core 0.5.1",
1104 "subtle 2.4.0",1029 "subtle 2.4.0",
1150 "dirs-sys",1075 "dirs-sys",
1151]1076]
1077
1078[[package]]
1079name = "directories"
1080version = "3.0.1"
1081source = "registry+https://github.com/rust-lang/crates.io-index"
1082checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f"
1083dependencies = [
1084 "dirs-sys",
1085]
11521086
1153[[package]]1087[[package]]
1154name = "dirs-sys"1088name = "dirs-sys"
1167source = "registry+https://github.com/rust-lang/crates.io-index"1101source = "registry+https://github.com/rust-lang/crates.io-index"
1168checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea"1102checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea"
1169dependencies = [1103dependencies = [
1170 "byteorder 1.3.4",1104 "byteorder",
1171 "quick-error",1105 "quick-error 1.2.3",
1172]1106]
11731107
1174[[package]]1108[[package]]
11941128
1195[[package]]1129[[package]]
1196name = "dyn-clone"1130name = "dyn-clone"
1197version = "1.0.3"1131version = "1.0.4"
1198source = "registry+https://github.com/rust-lang/crates.io-index"1132source = "registry+https://github.com/rust-lang/crates.io-index"
1199checksum = "d55796afa1b20c2945ca8eabfc421839f2b766619209f1ede813cf2484f31804"1133checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf"
12001134
1201[[package]]1135[[package]]
1202name = "ed25519"1136name = "ed25519"
1213source = "registry+https://github.com/rust-lang/crates.io-index"1147source = "registry+https://github.com/rust-lang/crates.io-index"
1214checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"1148checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
1215dependencies = [1149dependencies = [
1216 "curve25519-dalek 3.0.0",1150 "curve25519-dalek 3.0.2",
1217 "ed25519",1151 "ed25519",
1218 "rand 0.7.3",1152 "rand 0.7.3",
1219 "serde",1153 "serde",
12681202
1269[[package]]1203[[package]]
1270name = "erased-serde"1204name = "erased-serde"
1271version = "0.3.12"1205version = "0.3.13"
1272source = "registry+https://github.com/rust-lang/crates.io-index"1206source = "registry+https://github.com/rust-lang/crates.io-index"
1273checksum = "6ca8b296792113e1500fd935ae487be6e00ce318952a6880555554824d6ebf38"1207checksum = "0465971a8cc1fa2455c8465aaa377131e1f1cf4983280f474a13e68793aa770c"
1274dependencies = [1208dependencies = [
1275 "serde",1209 "serde",
1276]1210]
1308source = "registry+https://github.com/rust-lang/crates.io-index"1242source = "registry+https://github.com/rust-lang/crates.io-index"
1309checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"1243checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
1310dependencies = [1244dependencies = [
1311 "futures 0.3.8",1245 "futures 0.3.12",
1312]1246]
13131247
1314[[package]]1248[[package]]
1380checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"1314checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"
1381dependencies = [1315dependencies = [
1382 "either",1316 "either",
1383 "futures 0.3.8",1317 "futures 0.3.12",
1384 "futures-timer 2.0.2",1318 "futures-timer 2.0.2",
1385 "log",1319 "log",
1386 "num-traits",1320 "num-traits",
13901324
1391[[package]]1325[[package]]
1392name = "fixed-hash"1326name = "fixed-hash"
1393version = "0.6.1"1327version = "0.7.0"
1394source = "registry+https://github.com/rust-lang/crates.io-index"1328source = "registry+https://github.com/rust-lang/crates.io-index"
1395checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c"1329checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c"
1396dependencies = [1330dependencies = [
1397 "byteorder 1.3.4",1331 "byteorder",
1398 "rand 0.7.3",1332 "rand 0.8.3",
1399 "rustc-hex",1333 "rustc-hex",
1400 "static_assertions",1334 "static_assertions",
1401]1335]
14431377
1444[[package]]1378[[package]]
1445name = "fork-tree"1379name = "fork-tree"
1446version = "2.0.0"1380version = "2.0.1"
1447source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1381source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1448dependencies = [1382dependencies = [
1449 "parity-scale-codec",1383 "parity-scale-codec",
1450]1384]
14611395
1462[[package]]1396[[package]]
1463name = "frame-benchmarking"1397name = "frame-benchmarking"
1464version = "2.0.0"1398version = "2.0.1"
1465source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1399source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1466dependencies = [1400dependencies = [
1467 "frame-support",1401 "frame-support",
1468 "frame-system",1402 "frame-system",
14791413
1480[[package]]1414[[package]]
1481name = "frame-benchmarking-cli"1415name = "frame-benchmarking-cli"
1482version = "2.0.0"1416version = "2.0.1"
1483source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1417source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1484dependencies = [1418dependencies = [
1419 "Inflector",
1420 "chrono",
1485 "frame-benchmarking",1421 "frame-benchmarking",
1422 "handlebars",
1486 "parity-scale-codec",1423 "parity-scale-codec",
1487 "sc-cli",1424 "sc-cli",
1488 "sc-client-db",1425 "sc-client-db",
1489 "sc-executor",1426 "sc-executor",
1490 "sc-service",1427 "sc-service",
1428 "serde",
1491 "sp-core",1429 "sp-core",
1492 "sp-externalities",1430 "sp-externalities",
1431 "sp-keystore",
1493 "sp-runtime",1432 "sp-runtime",
1494 "sp-state-machine",1433 "sp-state-machine",
1495 "structopt",1434 "structopt",
1496]1435]
14971436
1498[[package]]1437[[package]]
1499name = "frame-executive"1438name = "frame-executive"
1500version = "2.0.0"1439version = "2.0.1"
1501source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1440source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1502dependencies = [1441dependencies = [
1503 "frame-support",1442 "frame-support",
1504 "frame-system",1443 "frame-system",
15131452
1514[[package]]1453[[package]]
1515name = "frame-metadata"1454name = "frame-metadata"
1516version = "12.0.0"1455version = "12.0.1"
1517source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1456source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1518dependencies = [1457dependencies = [
1519 "parity-scale-codec",1458 "parity-scale-codec",
1520 "serde",1459 "serde",
15241463
1525[[package]]1464[[package]]
1526name = "frame-support"1465name = "frame-support"
1527version = "2.0.0"1466version = "2.0.1"
1528source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1467source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1529dependencies = [1468dependencies = [
1530 "bitmask",1469 "bitflags",
1531 "frame-metadata",1470 "frame-metadata",
1532 "frame-support-procedural",1471 "frame-support-procedural",
1533 "impl-trait-for-tuples",1472 "impl-trait-for-tuples 0.2.0",
1534 "log",1473 "log",
1535 "once_cell 1.5.2",1474 "once_cell",
1536 "parity-scale-codec",1475 "parity-scale-codec",
1537 "paste",1476 "paste",
1538 "serde",1477 "serde",
1539 "smallvec 1.5.1",1478 "smallvec 1.6.1",
1540 "sp-arithmetic",1479 "sp-arithmetic",
1541 "sp-core",1480 "sp-core",
1542 "sp-inherents",1481 "sp-inherents",
15491488
1550[[package]]1489[[package]]
1551name = "frame-support-procedural"1490name = "frame-support-procedural"
1552version = "2.0.0"1491version = "2.0.1"
1553source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1492source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1554dependencies = [1493dependencies = [
1494 "Inflector",
1555 "frame-support-procedural-tools",1495 "frame-support-procedural-tools",
1556 "proc-macro2",1496 "proc-macro2",
1557 "quote",1497 "quote",
15601500
1561[[package]]1501[[package]]
1562name = "frame-support-procedural-tools"1502name = "frame-support-procedural-tools"
1563version = "2.0.0"1503version = "2.0.1"
1564source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1504source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1565dependencies = [1505dependencies = [
1566 "frame-support-procedural-tools-derive",1506 "frame-support-procedural-tools-derive",
1567 "proc-macro-crate",1507 "proc-macro-crate",
15721512
1573[[package]]1513[[package]]
1574name = "frame-support-procedural-tools-derive"1514name = "frame-support-procedural-tools-derive"
1575version = "2.0.0"1515version = "2.0.1"
1576source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1516source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1577dependencies = [1517dependencies = [
1578 "proc-macro2",1518 "proc-macro2",
1579 "quote",1519 "quote",
15821522
1583[[package]]1523[[package]]
1584name = "frame-system"1524name = "frame-system"
1585version = "2.0.0"1525version = "2.0.1"
1586source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1526source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1587dependencies = [1527dependencies = [
1588 "frame-support",1528 "frame-support",
1589 "impl-trait-for-tuples",1529 "impl-trait-for-tuples 0.2.0",
1590 "parity-scale-codec",1530 "parity-scale-codec",
1591 "serde",1531 "serde",
1592 "sp-core",1532 "sp-core",
15981538
1599[[package]]1539[[package]]
1600name = "frame-system-benchmarking"1540name = "frame-system-benchmarking"
1601version = "2.0.0"1541version = "2.0.1"
1602source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1542source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1603dependencies = [1543dependencies = [
1604 "frame-benchmarking",1544 "frame-benchmarking",
1605 "frame-support",1545 "frame-support",
16121552
1613[[package]]1553[[package]]
1614name = "frame-system-rpc-runtime-api"1554name = "frame-system-rpc-runtime-api"
1615version = "2.0.0"1555version = "2.0.1"
1616source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"1556source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
1617dependencies = [1557dependencies = [
1618 "parity-scale-codec",1558 "parity-scale-codec",
1619 "sp-api",1559 "sp-api",
16611601
1662[[package]]1602[[package]]
1663name = "futures"1603name = "futures"
1664version = "0.3.8"1604version = "0.3.12"
1665source = "registry+https://github.com/rust-lang/crates.io-index"1605source = "registry+https://github.com/rust-lang/crates.io-index"
1666checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"1606checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150"
1667dependencies = [1607dependencies = [
1668 "futures-channel",1608 "futures-channel",
1669 "futures-core",1609 "futures-core",
16761616
1677[[package]]1617[[package]]
1678name = "futures-channel"1618name = "futures-channel"
1679version = "0.3.8"1619version = "0.3.12"
1680source = "registry+https://github.com/rust-lang/crates.io-index"1620source = "registry+https://github.com/rust-lang/crates.io-index"
1681checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"1621checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846"
1682dependencies = [1622dependencies = [
1683 "futures-core",1623 "futures-core",
1684 "futures-sink",1624 "futures-sink",
1685]1625]
1686
1687[[package]]
1688name = "futures-channel-preview"
1689version = "0.3.0-alpha.19"
1690source = "registry+https://github.com/rust-lang/crates.io-index"
1691checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
1692dependencies = [
1693 "futures-core-preview",
1694]
16951626
1696[[package]]1627[[package]]
1697name = "futures-core"1628name = "futures-core"
1698version = "0.3.8"1629version = "0.3.12"
1699source = "registry+https://github.com/rust-lang/crates.io-index"1630source = "registry+https://github.com/rust-lang/crates.io-index"
1700checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"1631checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65"
1701
1702[[package]]
1703name = "futures-core-preview"
1704version = "0.3.0-alpha.19"
1705source = "registry+https://github.com/rust-lang/crates.io-index"
1706checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
17071632
1708[[package]]1633[[package]]
1709name = "futures-cpupool"1634name = "futures-cpupool"
1722checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"1647checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
1723dependencies = [1648dependencies = [
1724 "futures 0.1.30",1649 "futures 0.1.30",
1725 "futures 0.3.8",1650 "futures 0.3.12",
1726 "lazy_static",1651 "lazy_static",
1727 "log",1652 "log",
1728 "parking_lot 0.9.0",1653 "parking_lot 0.9.0",
17331658
1734[[package]]1659[[package]]
1735name = "futures-executor"1660name = "futures-executor"
1736version = "0.3.8"1661version = "0.3.12"
1737source = "registry+https://github.com/rust-lang/crates.io-index"1662source = "registry+https://github.com/rust-lang/crates.io-index"
1738checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"1663checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9"
1739dependencies = [1664dependencies = [
1740 "futures-core",1665 "futures-core",
1741 "futures-task",1666 "futures-task",
17451670
1746[[package]]1671[[package]]
1747name = "futures-io"1672name = "futures-io"
1748version = "0.3.8"1673version = "0.3.12"
1749source = "registry+https://github.com/rust-lang/crates.io-index"1674source = "registry+https://github.com/rust-lang/crates.io-index"
1750checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"1675checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500"
17511676
1752[[package]]1677[[package]]
1753name = "futures-lite"1678name = "futures-lite"
1754version = "1.11.2"1679version = "1.11.3"
1755source = "registry+https://github.com/rust-lang/crates.io-index"1680source = "registry+https://github.com/rust-lang/crates.io-index"
1756checksum = "5e6c079abfac3ab269e2927ec048dabc89d009ebfdda6b8ee86624f30c689658"1681checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb"
1757dependencies = [1682dependencies = [
1758 "fastrand",1683 "fastrand",
1759 "futures-core",1684 "futures-core",
1760 "futures-io",1685 "futures-io",
1761 "memchr",1686 "memchr",
1762 "parking",1687 "parking",
1763 "pin-project-lite 0.1.11",1688 "pin-project-lite 0.2.4",
1764 "waker-fn",1689 "waker-fn",
1765]1690]
17661691
1767[[package]]1692[[package]]
1768name = "futures-macro"1693name = "futures-macro"
1769version = "0.3.8"1694version = "0.3.12"
1770source = "registry+https://github.com/rust-lang/crates.io-index"1695source = "registry+https://github.com/rust-lang/crates.io-index"
1771checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"1696checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd"
1772dependencies = [1697dependencies = [
1773 "proc-macro-hack",1698 "proc-macro-hack",
1774 "proc-macro2",1699 "proc-macro2",
1775 "quote",1700 "quote",
1776 "syn",1701 "syn",
1777]1702]
1703
1704[[package]]
1705name = "futures-rustls"
1706version = "0.21.1"
1707source = "registry+https://github.com/rust-lang/crates.io-index"
1708checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b"
1709dependencies = [
1710 "futures-io",
1711 "rustls 0.19.0",
1712 "webpki",
1713]
17781714
1779[[package]]1715[[package]]
1780name = "futures-sink"1716name = "futures-sink"
1781version = "0.3.8"1717version = "0.3.12"
1782source = "registry+https://github.com/rust-lang/crates.io-index"1718source = "registry+https://github.com/rust-lang/crates.io-index"
1783checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"1719checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6"
17841720
1785[[package]]1721[[package]]
1786name = "futures-task"1722name = "futures-task"
1787version = "0.3.8"1723version = "0.3.12"
1788source = "registry+https://github.com/rust-lang/crates.io-index"1724source = "registry+https://github.com/rust-lang/crates.io-index"
1789checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"1725checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86"
1790dependencies = [1726dependencies = [
1791 "once_cell 1.5.2",1727 "once_cell",
1792]1728]
17931729
1794[[package]]1730[[package]]
18051741
1806[[package]]1742[[package]]
1807name = "futures-util"1743name = "futures-util"
1808version = "0.3.8"1744version = "0.3.12"
1809source = "registry+https://github.com/rust-lang/crates.io-index"1745source = "registry+https://github.com/rust-lang/crates.io-index"
1810checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"1746checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b"
1811dependencies = [1747dependencies = [
1812 "futures 0.1.30",1748 "futures 0.1.30",
1813 "futures-channel",1749 "futures-channel",
1817 "futures-sink",1753 "futures-sink",
1818 "futures-task",1754 "futures-task",
1819 "memchr",1755 "memchr",
1820 "pin-project 1.0.2",1756 "pin-project-lite 0.2.4",
1821 "pin-utils",1757 "pin-utils",
1822 "proc-macro-hack",1758 "proc-macro-hack",
1823 "proc-macro-nested",1759 "proc-macro-nested",
1824 "slab",1760 "slab",
1825]1761]
1826
1827[[package]]
1828name = "futures-util-preview"
1829version = "0.3.0-alpha.19"
1830source = "registry+https://github.com/rust-lang/crates.io-index"
1831checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d"
1832dependencies = [
1833 "futures-channel-preview",
1834 "futures-core-preview",
1835 "pin-utils",
1836 "slab",
1837]
1838
1839[[package]]
1840name = "futures_codec"
1841version = "0.4.1"
1842source = "registry+https://github.com/rust-lang/crates.io-index"
1843checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b"
1844dependencies = [
1845 "bytes 0.5.6",
1846 "futures 0.3.8",
1847 "memchr",
1848 "pin-project 0.4.27",
1849]
18501762
1851[[package]]1763[[package]]
1852name = "gcc"1764name = "gcc"
1853version = "0.3.55"1765version = "0.3.55"
1854source = "registry+https://github.com/rust-lang/crates.io-index"1766source = "registry+https://github.com/rust-lang/crates.io-index"
1855checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"1767checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
1856
1857[[package]]
1858name = "generator"
1859version = "0.6.23"
1860source = "registry+https://github.com/rust-lang/crates.io-index"
1861checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc"
1862dependencies = [
1863 "cc",
1864 "libc",
1865 "log",
1866 "rustc_version",
1867 "winapi 0.3.9",
1868]
18691768
1870[[package]]1769[[package]]
1871name = "generic-array"1770name = "generic-array"
1876 "typenum",1775 "typenum",
1877]1776]
1777
1778[[package]]
1779name = "generic-array"
1780version = "0.13.2"
1781source = "registry+https://github.com/rust-lang/crates.io-index"
1782checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd"
1783dependencies = [
1784 "typenum",
1785]
18781786
1879[[package]]1787[[package]]
1880name = "generic-array"1788name = "generic-array"
1886 "version_check",1794 "version_check",
1887]1795]
1888
1889[[package]]
1890name = "get_if_addrs"
1891version = "0.5.3"
1892source = "registry+https://github.com/rust-lang/crates.io-index"
1893checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7"
1894dependencies = [
1895 "c_linked_list",
1896 "get_if_addrs-sys",
1897 "libc",
1898 "winapi 0.2.8",
1899]
1900
1901[[package]]
1902name = "get_if_addrs-sys"
1903version = "0.1.1"
1904source = "registry+https://github.com/rust-lang/crates.io-index"
1905checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48"
1906dependencies = [
1907 "gcc",
1908 "libc",
1909]
19101796
1911[[package]]1797[[package]]
1912name = "getrandom"1798name = "getrandom"
1913version = "0.1.15"1799version = "0.1.16"
1914source = "registry+https://github.com/rust-lang/crates.io-index"1800source = "registry+https://github.com/rust-lang/crates.io-index"
1915checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"1801checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
1916dependencies = [1802dependencies = [
1917 "cfg-if 0.1.10",1803 "cfg-if 1.0.0",
1918 "libc",1804 "libc",
1919 "wasi 0.9.0+wasi-snapshot-preview1",1805 "wasi 0.9.0+wasi-snapshot-preview1",
1920]1806]
19211807
1922[[package]]1808[[package]]
1923name = "getrandom"1809name = "getrandom"
1924version = "0.2.0"1810version = "0.2.2"
1925source = "registry+https://github.com/rust-lang/crates.io-index"1811source = "registry+https://github.com/rust-lang/crates.io-index"
1926checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4"1812checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
1927dependencies = [1813dependencies = [
1928 "cfg-if 0.1.10",1814 "cfg-if 1.0.0",
1929 "libc",1815 "libc",
1930 "wasi 0.9.0+wasi-snapshot-preview1",1816 "wasi 0.10.0+wasi-snapshot-preview1",
1931]1817]
19321818
1933[[package]]1819[[package]]
1934name = "ghash"1820name = "ghash"
1935version = "0.3.0"1821version = "0.3.1"
1936source = "registry+https://github.com/rust-lang/crates.io-index"1822source = "registry+https://github.com/rust-lang/crates.io-index"
1937checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531"1823checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375"
1938dependencies = [1824dependencies = [
1825 "opaque-debug 0.3.0",
1939 "polyval",1826 "polyval",
1940]1827]
19411828
1994source = "registry+https://github.com/rust-lang/crates.io-index"1881source = "registry+https://github.com/rust-lang/crates.io-index"
1995checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"1882checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
1996dependencies = [1883dependencies = [
1997 "byteorder 1.3.4",1884 "byteorder",
1998 "bytes 0.4.12",1885 "bytes 0.4.12",
1999 "fnv",1886 "fnv",
2000 "futures 0.1.30",1887 "futures 0.1.30",
2017 "futures-core",1904 "futures-core",
2018 "futures-sink",1905 "futures-sink",
2019 "futures-util",1906 "futures-util",
2020 "http 0.2.2",1907 "http 0.2.3",
2021 "indexmap",1908 "indexmap",
2022 "slab",1909 "slab",
2023 "tokio 0.2.24",1910 "tokio 0.2.24",
2026 "tracing-futures",1913 "tracing-futures",
2027]1914]
1915
1916[[package]]
1917name = "handlebars"
1918version = "3.5.2"
1919source = "registry+https://github.com/rust-lang/crates.io-index"
1920checksum = "964d0e99a61fe9b1b347389b77ebf8b7e1587b70293676aaca7d27e59b9073b2"
1921dependencies = [
1922 "log",
1923 "pest",
1924 "pest_derive",
1925 "quick-error 2.0.0",
1926 "serde",
1927 "serde_json",
1928]
20281929
2029[[package]]1930[[package]]
2030name = "hash-db"1931name = "hash-db"
2041 "crunchy",1942 "crunchy",
2042]1943]
2043
2044[[package]]
2045name = "hashbrown"
2046version = "0.1.8"
2047source = "registry+https://github.com/rust-lang/crates.io-index"
2048checksum = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da"
2049dependencies = [
2050 "byteorder 1.3.4",
2051 "scopeguard 0.3.3",
2052]
2053
2054[[package]]
2055name = "hashbrown"
2056version = "0.6.3"
2057source = "registry+https://github.com/rust-lang/crates.io-index"
2058checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead"
2059dependencies = [
2060 "ahash 0.2.19",
2061 "autocfg 0.1.7",
2062]
2063
2064[[package]]
2065name = "hashbrown"
2066version = "0.8.2"
2067source = "registry+https://github.com/rust-lang/crates.io-index"
2068checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
2069dependencies = [
2070 "ahash 0.3.8",
2071 "autocfg 1.0.1",
2072]
20731944
2074[[package]]1945[[package]]
2075name = "hashbrown"1946name = "hashbrown"
2076version = "0.9.1"1947version = "0.9.1"
2077source = "registry+https://github.com/rust-lang/crates.io-index"1948source = "registry+https://github.com/rust-lang/crates.io-index"
2078checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"1949checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
2079dependencies = [1950dependencies = [
2080 "ahash 0.4.7",1951 "ahash",
2081]1952]
20821953
2083[[package]]1954[[package]]
2084name = "heck"1955name = "heck"
2085version = "0.3.1"1956version = "0.3.2"
2086source = "registry+https://github.com/rust-lang/crates.io-index"1957source = "registry+https://github.com/rust-lang/crates.io-index"
2087checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"1958checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
2088dependencies = [1959dependencies = [
2089 "unicode-segmentation",1960 "unicode-segmentation",
2090]1961]
20911962
2092[[package]]1963[[package]]
2093name = "hermit-abi"1964name = "hermit-abi"
2094version = "0.1.17"1965version = "0.1.18"
2095source = "registry+https://github.com/rust-lang/crates.io-index"1966source = "registry+https://github.com/rust-lang/crates.io-index"
2096checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"1967checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
2097dependencies = [1968dependencies = [
2098 "libc",1969 "libc",
2099]1970]
2126 "digest 0.8.1",1997 "digest 0.8.1",
2127]1998]
1999
2000[[package]]
2001name = "hmac"
2002version = "0.8.1"
2003source = "registry+https://github.com/rust-lang/crates.io-index"
2004checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
2005dependencies = [
2006 "crypto-mac 0.8.0",
2007 "digest 0.9.0",
2008]
21282009
2129[[package]]2010[[package]]
2130name = "hmac-drbg"2011name = "hmac-drbg"
2134dependencies = [2015dependencies = [
2135 "digest 0.8.1",2016 "digest 0.8.1",
2136 "generic-array 0.12.3",2017 "generic-array 0.12.3",
2137 "hmac",2018 "hmac 0.7.1",
2138]2019]
21392020
2140[[package]]2021[[package]]
21502031
2151[[package]]2032[[package]]
2152name = "http"2033name = "http"
2153version = "0.2.2"2034version = "0.2.3"
2154source = "registry+https://github.com/rust-lang/crates.io-index"2035source = "registry+https://github.com/rust-lang/crates.io-index"
2155checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"2036checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
2156dependencies = [2037dependencies = [
2157 "bytes 0.5.6",2038 "bytes 1.0.1",
2158 "fnv",2039 "fnv",
2159 "itoa",2040 "itoa",
2160]2041]
2178checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"2059checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
2179dependencies = [2060dependencies = [
2180 "bytes 0.5.6",2061 "bytes 0.5.6",
2181 "http 0.2.2",2062 "http 0.2.3",
2182]2063]
21832064
2184[[package]]2065[[package]]
2199source = "registry+https://github.com/rust-lang/crates.io-index"2080source = "registry+https://github.com/rust-lang/crates.io-index"
2200checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"2081checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
2201dependencies = [2082dependencies = [
2202 "quick-error",2083 "quick-error 1.2.3",
2203]2084]
22042085
2205[[package]]2086[[package]]
2223 "time",2104 "time",
2224 "tokio 0.1.22",2105 "tokio 0.1.22",
2225 "tokio-buf",2106 "tokio-buf",
2226 "tokio-executor 0.1.10",2107 "tokio-executor",
2227 "tokio-io",2108 "tokio-io",
2228 "tokio-reactor",2109 "tokio-reactor",
2229 "tokio-tcp",2110 "tokio-tcp",
2243 "futures-core",2124 "futures-core",
2244 "futures-util",2125 "futures-util",
2245 "h2 0.2.7",2126 "h2 0.2.7",
2246 "http 0.2.2",2127 "http 0.2.3",
2247 "http-body 0.3.1",2128 "http-body 0.3.1",
2248 "httparse",2129 "httparse",
2249 "httpdate",2130 "httpdate",
2250 "itoa",2131 "itoa",
2251 "pin-project 1.0.2",2132 "pin-project 1.0.4",
2252 "socket2",2133 "socket2",
2253 "tokio 0.2.24",2134 "tokio 0.2.24",
2254 "tower-service",2135 "tower-service",
2267 "futures-util",2148 "futures-util",
2268 "hyper 0.13.9",2149 "hyper 0.13.9",
2269 "log",2150 "log",
2270 "rustls",2151 "rustls 0.18.1",
2271 "rustls-native-certs",2152 "rustls-native-certs",
2272 "tokio 0.2.24",2153 "tokio 0.2.24",
2273 "tokio-rustls",2154 "tokio-rustls",
2296 "unicode-normalization",2177 "unicode-normalization",
2297]2178]
2179
2180[[package]]
2181name = "if-addrs"
2182version = "0.6.5"
2183source = "registry+https://github.com/rust-lang/crates.io-index"
2184checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48"
2185dependencies = [
2186 "if-addrs-sys",
2187 "libc",
2188 "winapi 0.3.9",
2189]
2190
2191[[package]]
2192name = "if-addrs-sys"
2193version = "0.3.2"
2194source = "registry+https://github.com/rust-lang/crates.io-index"
2195checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
2196dependencies = [
2197 "cc",
2198 "libc",
2199]
2200
2201[[package]]
2202name = "if-watch"
2203version = "0.1.8"
2204source = "registry+https://github.com/rust-lang/crates.io-index"
2205checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85"
2206dependencies = [
2207 "async-io",
2208 "futures 0.3.12",
2209 "futures-lite",
2210 "if-addrs",
2211 "ipnet",
2212 "libc",
2213 "log",
2214 "winapi 0.3.9",
2215]
22982216
2299[[package]]2217[[package]]
2300name = "impl-codec"2218name = "impl-codec"
2325 "syn",2243 "syn",
2326]2244]
2245
2246[[package]]
2247name = "impl-trait-for-tuples"
2248version = "0.2.0"
2249source = "registry+https://github.com/rust-lang/crates.io-index"
2250checksum = "6f65a8ecf74feeacdab8d38cb129e550ca871cccaa7d1921d8636ecd75534903"
2251dependencies = [
2252 "proc-macro2",
2253 "quote",
2254 "syn",
2255]
23272256
2328[[package]]2257[[package]]
2329name = "indexmap"2258name = "indexmap"
2330version = "1.6.1"2259version = "1.6.1"
2331source = "registry+https://github.com/rust-lang/crates.io-index"2260source = "registry+https://github.com/rust-lang/crates.io-index"
2332checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"2261checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
2333dependencies = [2262dependencies = [
2334 "autocfg 1.0.1",2263 "autocfg",
2335 "hashbrown 0.9.1",2264 "hashbrown",
2336 "serde",2265 "serde",
2337]2266]
23382267
2360source = "registry+https://github.com/rust-lang/crates.io-index"2289source = "registry+https://github.com/rust-lang/crates.io-index"
2361checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"2290checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
2362dependencies = [2291dependencies = [
2363 "futures 0.3.8",2292 "futures 0.3.12",
2364 "futures-timer 2.0.2",2293 "futures-timer 2.0.2",
2365]2294]
23662295
2385source = "registry+https://github.com/rust-lang/crates.io-index"2314source = "registry+https://github.com/rust-lang/crates.io-index"
2386checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"2315checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
2387
2388[[package]]
2389name = "itertools"
2390version = "0.8.2"
2391source = "registry+https://github.com/rust-lang/crates.io-index"
2392checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
2393dependencies = [
2394 "either",
2395]
23962316
2397[[package]]2317[[package]]
2398name = "itertools"2318name = "itertools"
24052325
2406[[package]]2326[[package]]
2407name = "itoa"2327name = "itoa"
2408version = "0.4.6"2328version = "0.4.7"
2409source = "registry+https://github.com/rust-lang/crates.io-index"2329source = "registry+https://github.com/rust-lang/crates.io-index"
2410checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"2330checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
24112331
2412[[package]]2332[[package]]
2413name = "jobserver"2333name = "jobserver"
24202340
2421[[package]]2341[[package]]
2422name = "js-sys"2342name = "js-sys"
2423version = "0.3.46"2343version = "0.3.47"
2424source = "registry+https://github.com/rust-lang/crates.io-index"2344source = "registry+https://github.com/rust-lang/crates.io-index"
2425checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"2345checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65"
2426dependencies = [2346dependencies = [
2427 "wasm-bindgen",2347 "wasm-bindgen",
2428]2348]
25762496
2577[[package]]2497[[package]]
2578name = "kvdb"2498name = "kvdb"
2579version = "0.7.0"2499version = "0.8.0"
2580source = "registry+https://github.com/rust-lang/crates.io-index"2500source = "registry+https://github.com/rust-lang/crates.io-index"
2581checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a"2501checksum = "92312348daade49976a6dc59263ad39ed54f840aacb5664874f7c9aa16e5f848"
2582dependencies = [2502dependencies = [
2583 "parity-util-mem",2503 "parity-util-mem",
2584 "smallvec 1.5.1",2504 "smallvec 1.6.1",
2585]2505]
25862506
2587[[package]]2507[[package]]
2588name = "kvdb-memorydb"2508name = "kvdb-memorydb"
2589version = "0.7.0"2509version = "0.8.0"
2590source = "registry+https://github.com/rust-lang/crates.io-index"2510source = "registry+https://github.com/rust-lang/crates.io-index"
2591checksum = "73de822b260a3bdfb889dbbb65bb2d473eee2253973d6fa4a5d149a2a4a7c66e"2511checksum = "986052a8d16c692eaebe775391f9a3ac26714f3907132658500b601dec94c8c2"
2592dependencies = [2512dependencies = [
2593 "kvdb",2513 "kvdb",
2594 "parity-util-mem",2514 "parity-util-mem",
2595 "parking_lot 0.10.2",2515 "parking_lot 0.11.1",
2596]2516]
25972517
2598[[package]]2518[[package]]
2599name = "kvdb-rocksdb"2519name = "kvdb-rocksdb"
2600version = "0.9.1"2520version = "0.10.0"
2601source = "registry+https://github.com/rust-lang/crates.io-index"2521source = "registry+https://github.com/rust-lang/crates.io-index"
2602checksum = "44947dd392f09475af614d740fe0320b66d01cb5b977f664bbbb5e45a70ea4c1"2522checksum = "8d92c36be64baba5ea549116ff0d7ffd445456a7be8aaee21ec05882b980cd11"
2603dependencies = [2523dependencies = [
2604 "fs-swap",2524 "fs-swap",
2605 "kvdb",2525 "kvdb",
2606 "log",2526 "log",
2607 "num_cpus",2527 "num_cpus",
2608 "owning_ref",2528 "owning_ref",
2609 "parity-util-mem",2529 "parity-util-mem",
2610 "parking_lot 0.10.2",2530 "parking_lot 0.11.1",
2611 "regex",2531 "regex",
2612 "rocksdb",2532 "rocksdb",
2613 "smallvec 1.5.1",2533 "smallvec 1.6.1",
2614]2534]
26152535
2616[[package]]2536[[package]]
26332553
2634[[package]]2554[[package]]
2635name = "libc"2555name = "libc"
2636version = "0.2.81"2556version = "0.2.82"
2637source = "registry+https://github.com/rust-lang/crates.io-index"2557source = "registry+https://github.com/rust-lang/crates.io-index"
2638checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"2558checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"
26392559
2640[[package]]2560[[package]]
2641name = "libloading"2561name = "libloading"
26552575
2656[[package]]2576[[package]]
2657name = "libp2p"2577name = "libp2p"
2658version = "0.28.1"2578version = "0.34.0"
2659source = "registry+https://github.com/rust-lang/crates.io-index"2579source = "registry+https://github.com/rust-lang/crates.io-index"
2660checksum = "571f5a4604c1a40d75651da141dfde29ad15329f537a779528803297d2220274"2580checksum = "d5133112ce42be9482f6a87be92a605dd6bbc9e93c297aee77d172ff06908f3a"
2661dependencies = [2581dependencies = [
2662 "atomic",2582 "atomic",
2663 "bytes 0.5.6",2583 "bytes 1.0.1",
2664 "futures 0.3.8",2584 "futures 0.3.12",
2665 "lazy_static",2585 "lazy_static",
2666 "libp2p-core",2586 "libp2p-core",
2667 "libp2p-core-derive",2587 "libp2p-core-derive",
2684 "libp2p-wasm-ext",2604 "libp2p-wasm-ext",
2685 "libp2p-websocket",2605 "libp2p-websocket",
2686 "libp2p-yamux",2606 "libp2p-yamux",
2687 "multihash",
2688 "parity-multiaddr",2607 "parity-multiaddr",
2689 "parking_lot 0.10.2",2608 "parking_lot 0.11.1",
2690 "pin-project 0.4.27",2609 "pin-project 1.0.4",
2691 "smallvec 1.5.1",2610 "smallvec 1.6.1",
2692 "wasm-timer",2611 "wasm-timer",
2693]2612]
26942613
2695[[package]]2614[[package]]
2696name = "libp2p-core"2615name = "libp2p-core"
2697version = "0.22.1"2616version = "0.27.0"
2698source = "registry+https://github.com/rust-lang/crates.io-index"2617source = "registry+https://github.com/rust-lang/crates.io-index"
2699checksum = "52f13ba8c7df0768af2eb391696d562c7de88cc3a35122531aaa6a7d77754d25"2618checksum = "dad04d3cef6c1df366a6ab58c9cf8b06497699e335d83ac2174783946ff847d6"
2700dependencies = [2619dependencies = [
2701 "asn1_der",2620 "asn1_der",
2702 "bs58 0.3.1",2621 "bs58",
2703 "ed25519-dalek",2622 "ed25519-dalek",
2704 "either",2623 "either",
2705 "fnv",2624 "fnv",
2706 "futures 0.3.8",2625 "futures 0.3.12",
2707 "futures-timer 3.0.2",2626 "futures-timer 3.0.2",
2708 "lazy_static",2627 "lazy_static",
2709 "libsecp256k1",2628 "libsecp256k1",
2710 "log",2629 "log",
2711 "multihash",2630 "multihash",
2712 "multistream-select",2631 "multistream-select",
2713 "parity-multiaddr",2632 "parity-multiaddr",
2714 "parking_lot 0.10.2",2633 "parking_lot 0.11.1",
2715 "pin-project 0.4.27",2634 "pin-project 1.0.4",
2716 "prost",2635 "prost",
2717 "prost-build",2636 "prost-build",
2718 "rand 0.7.3",2637 "rand 0.7.3",
2719 "ring",2638 "ring",
2720 "rw-stream-sink",2639 "rw-stream-sink",
2721 "sha2 0.8.2",2640 "sha2 0.9.2",
2722 "smallvec 1.5.1",2641 "smallvec 1.6.1",
2723 "thiserror",2642 "thiserror",
2724 "unsigned-varint 0.4.0",2643 "unsigned-varint 0.6.0",
2725 "void",2644 "void",
2726 "zeroize",2645 "zeroize",
2727]2646]
27282647
2729[[package]]2648[[package]]
2730name = "libp2p-core-derive"2649name = "libp2p-core-derive"
2731version = "0.20.2"2650version = "0.21.0"
2732source = "registry+https://github.com/rust-lang/crates.io-index"2651source = "registry+https://github.com/rust-lang/crates.io-index"
2733checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213"2652checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156"
2734dependencies = [2653dependencies = [
2735 "quote",2654 "quote",
2736 "syn",2655 "syn",
2737]2656]
27382657
2739[[package]]2658[[package]]
2740name = "libp2p-deflate"2659name = "libp2p-deflate"
2741version = "0.22.0"2660version = "0.27.1"
2742source = "registry+https://github.com/rust-lang/crates.io-index"2661source = "registry+https://github.com/rust-lang/crates.io-index"
2743checksum = "74029ae187f35f4b8ddf26b9779a68b340045d708528a103917cdca49a296db5"2662checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345"
2744dependencies = [2663dependencies = [
2745 "flate2",2664 "flate2",
2746 "futures 0.3.8",2665 "futures 0.3.12",
2747 "libp2p-core",2666 "libp2p-core",
2748]2667]
27492668
2750[[package]]2669[[package]]
2751name = "libp2p-dns"2670name = "libp2p-dns"
2752version = "0.22.0"2671version = "0.27.0"
2753source = "registry+https://github.com/rust-lang/crates.io-index"2672source = "registry+https://github.com/rust-lang/crates.io-index"
2754checksum = "7cf319822e08dd65c8e060d2354e9f952895bbc433f5706c75ed010c152aee5e"2673checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3"
2755dependencies = [2674dependencies = [
2756 "futures 0.3.8",2675 "futures 0.3.12",
2757 "libp2p-core",2676 "libp2p-core",
2758 "log",2677 "log",
2759]2678]
27602679
2761[[package]]2680[[package]]
2762name = "libp2p-floodsub"2681name = "libp2p-floodsub"
2763version = "0.22.0"2682version = "0.27.0"
2764source = "registry+https://github.com/rust-lang/crates.io-index"2683source = "registry+https://github.com/rust-lang/crates.io-index"
2765checksum = "d8a9acb43a3e4a4e413e0c4abe0fa49308df7c6335c88534757b647199cb8a51"2684checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f"
2766dependencies = [2685dependencies = [
2767 "cuckoofilter",2686 "cuckoofilter",
2768 "fnv",2687 "fnv",
2769 "futures 0.3.8",2688 "futures 0.3.12",
2770 "libp2p-core",2689 "libp2p-core",
2771 "libp2p-swarm",2690 "libp2p-swarm",
2691 "log",
2772 "prost",2692 "prost",
2773 "prost-build",2693 "prost-build",
2774 "rand 0.7.3",2694 "rand 0.7.3",
2775 "smallvec 1.5.1",2695 "smallvec 1.6.1",
2776]2696]
27772697
2778[[package]]2698[[package]]
2779name = "libp2p-gossipsub"2699name = "libp2p-gossipsub"
2780version = "0.22.0"2700version = "0.27.0"
2781source = "registry+https://github.com/rust-lang/crates.io-index"2701source = "registry+https://github.com/rust-lang/crates.io-index"
2782checksum = "ab20fcb60edebe3173bbb708c6ac3444afdf1e3152dc2866b10c4f5497f17467"2702checksum = "12451ba9493e87c91baf2a6dffce9ddf1fbc807a0861532d7cf477954f8ebbee"
2783dependencies = [2703dependencies = [
2704 "asynchronous-codec",
2784 "base64 0.11.0",2705 "base64 0.13.0",
2785 "byteorder 1.3.4",2706 "byteorder",
2786 "bytes 0.5.6",2707 "bytes 1.0.1",
2787 "fnv",2708 "fnv",
2788 "futures 0.3.8",2709 "futures 0.3.12",
2789 "futures_codec",
2790 "hex_fmt",2710 "hex_fmt",
2791 "libp2p-core",2711 "libp2p-core",
2792 "libp2p-swarm",2712 "libp2p-swarm",
2793 "log",2713 "log",
2794 "lru_time_cache",
2795 "prost",2714 "prost",
2796 "prost-build",2715 "prost-build",
2797 "rand 0.7.3",2716 "rand 0.7.3",
2717 "regex",
2798 "sha2 0.8.2",2718 "sha2 0.9.2",
2799 "smallvec 1.5.1",2719 "smallvec 1.6.1",
2800 "unsigned-varint 0.4.0",2720 "unsigned-varint 0.6.0",
2801 "wasm-timer",2721 "wasm-timer",
2802]2722]
28032723
2804[[package]]2724[[package]]
2805name = "libp2p-identify"2725name = "libp2p-identify"
2806version = "0.22.0"2726version = "0.27.0"
2807source = "registry+https://github.com/rust-lang/crates.io-index"2727source = "registry+https://github.com/rust-lang/crates.io-index"
2808checksum = "56396ee63aa9164eacf40c2c5d2bda8c4133c2f57e1b0425d51d3a4e362583b1"2728checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e"
2809dependencies = [2729dependencies = [
2810 "futures 0.3.8",2730 "futures 0.3.12",
2811 "libp2p-core",2731 "libp2p-core",
2812 "libp2p-swarm",2732 "libp2p-swarm",
2813 "log",2733 "log",
2814 "prost",2734 "prost",
2815 "prost-build",2735 "prost-build",
2816 "smallvec 1.5.1",2736 "smallvec 1.6.1",
2817 "wasm-timer",2737 "wasm-timer",
2818]2738]
28192739
2820[[package]]2740[[package]]
2821name = "libp2p-kad"2741name = "libp2p-kad"
2822version = "0.23.0"2742version = "0.28.0"
2823source = "registry+https://github.com/rust-lang/crates.io-index"2743source = "registry+https://github.com/rust-lang/crates.io-index"
2824checksum = "cc7fa9047f8b8f544278a35c2d9d45d3b2c1785f2d86d4e1629d6edf97be3955"2744checksum = "456f5de8e283d7800ca848b9b9a4e2a578b790bd8ae582b885e831353cf0e5df"
2825dependencies = [2745dependencies = [
2826 "arrayvec 0.5.2",2746 "arrayvec 0.5.2",
2747 "asynchronous-codec",
2827 "bytes 0.5.6",2748 "bytes 1.0.1",
2828 "either",2749 "either",
2829 "fnv",2750 "fnv",
2830 "futures 0.3.8",2751 "futures 0.3.12",
2831 "futures_codec",
2832 "libp2p-core",2752 "libp2p-core",
2833 "libp2p-swarm",2753 "libp2p-swarm",
2834 "log",2754 "log",
2835 "multihash",
2836 "prost",2755 "prost",
2837 "prost-build",2756 "prost-build",
2838 "rand 0.7.3",2757 "rand 0.7.3",
2839 "sha2 0.8.2",2758 "sha2 0.9.2",
2840 "smallvec 1.5.1",2759 "smallvec 1.6.1",
2841 "uint",2760 "uint",
2842 "unsigned-varint 0.4.0",2761 "unsigned-varint 0.6.0",
2843 "void",2762 "void",
2844 "wasm-timer",2763 "wasm-timer",
2845]2764]
28462765
2847[[package]]2766[[package]]
2848name = "libp2p-mdns"2767name = "libp2p-mdns"
2849version = "0.22.0"2768version = "0.28.0"
2850source = "registry+https://github.com/rust-lang/crates.io-index"2769source = "registry+https://github.com/rust-lang/crates.io-index"
2851checksum = "3173b5a6b2f690c29ae07798d85b9441a131ac76ddae9015ef22905b623d0c69"2770checksum = "b974db63233fc0e199f4ede7794294aae285c96f4b6010f853eac4099ef08590"
2852dependencies = [2771dependencies = [
2853 "async-std",2772 "async-io",
2854 "data-encoding",2773 "data-encoding",
2855 "dns-parser",2774 "dns-parser",
2856 "either",2775 "futures 0.3.12",
2857 "futures 0.3.8",2776 "if-watch",
2858 "lazy_static",2777 "lazy_static",
2859 "libp2p-core",2778 "libp2p-core",
2860 "libp2p-swarm",2779 "libp2p-swarm",
2861 "log",2780 "log",
2862 "net2",
2863 "rand 0.7.3",2781 "rand 0.7.3",
2864 "smallvec 1.5.1",2782 "smallvec 1.6.1",
2783 "socket2",
2865 "void",2784 "void",
2866 "wasm-timer",
2867]2785]
28682786
2869[[package]]2787[[package]]
2870name = "libp2p-mplex"2788name = "libp2p-mplex"
2871version = "0.22.0"2789version = "0.27.0"
2872source = "registry+https://github.com/rust-lang/crates.io-index"2790source = "registry+https://github.com/rust-lang/crates.io-index"
2873checksum = "8a73a799cc8410b36e40b8f4c4b6babbcb9efd3727111bf517876e4acfa612d3"2791checksum = "2705dc94b01ab9e3779b42a09bbf3712e637ed213e875c30face247291a85af0"
2874dependencies = [2792dependencies = [
2875 "bytes 0.5.6",2793 "asynchronous-codec",
2876 "fnv",
2877 "futures 0.3.8",2794 "bytes 1.0.1",
2878 "futures_codec",2795 "futures 0.3.12",
2879 "libp2p-core",2796 "libp2p-core",
2880 "log",2797 "log",
2798 "nohash-hasher",
2881 "parking_lot 0.10.2",2799 "parking_lot 0.11.1",
2800 "rand 0.7.3",
2801 "smallvec 1.6.1",
2882 "unsigned-varint 0.4.0",2802 "unsigned-varint 0.6.0",
2883]2803]
28842804
2885[[package]]2805[[package]]
2886name = "libp2p-noise"2806name = "libp2p-noise"
2887version = "0.24.0"2807version = "0.29.0"
2888source = "registry+https://github.com/rust-lang/crates.io-index"2808source = "registry+https://github.com/rust-lang/crates.io-index"
2889checksum = "6ef6c490042f549fb1025f2892dfe6083d97a77558f450c1feebe748ca9eb15a"2809checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778"
2890dependencies = [2810dependencies = [
2891 "bytes 0.5.6",2811 "bytes 1.0.1",
2892 "curve25519-dalek 2.1.0",2812 "curve25519-dalek 3.0.2",
2893 "futures 0.3.8",2813 "futures 0.3.12",
2894 "lazy_static",2814 "lazy_static",
2895 "libp2p-core",2815 "libp2p-core",
2896 "log",2816 "log",
2897 "prost",2817 "prost",
2898 "prost-build",2818 "prost-build",
2899 "rand 0.7.3",2819 "rand 0.7.3",
2900 "sha2 0.8.2",2820 "sha2 0.9.2",
2901 "snow",2821 "snow",
2902 "static_assertions",2822 "static_assertions",
2903 "x25519-dalek 0.6.0",2823 "x25519-dalek",
2904 "zeroize",2824 "zeroize",
2905]2825]
29062826
2907[[package]]2827[[package]]
2908name = "libp2p-ping"2828name = "libp2p-ping"
2909version = "0.22.0"2829version = "0.27.0"
2910source = "registry+https://github.com/rust-lang/crates.io-index"2830source = "registry+https://github.com/rust-lang/crates.io-index"
2911checksum = "ad063c21dfcea4518ac9e8bd4119d33a5b26c41e674f602f41f05617a368a5c8"2831checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c"
2912dependencies = [2832dependencies = [
2913 "futures 0.3.8",2833 "futures 0.3.12",
2914 "libp2p-core",2834 "libp2p-core",
2915 "libp2p-swarm",2835 "libp2p-swarm",
2916 "log",2836 "log",
29212841
2922[[package]]2842[[package]]
2923name = "libp2p-plaintext"2843name = "libp2p-plaintext"
2924version = "0.22.0"2844version = "0.27.0"
2925source = "registry+https://github.com/rust-lang/crates.io-index"2845source = "registry+https://github.com/rust-lang/crates.io-index"
2926checksum = "903a12e99c72dbebefea258de887982adeacc7025baa1ceb10b7fa9928f54791"2846checksum = "48e8c1ec305c9949351925cdc7196b9570f4330477f5e47fbf5bb340b57e26ed"
2927dependencies = [2847dependencies = [
2928 "bytes 0.5.6",2848 "asynchronous-codec",
2929 "futures 0.3.8",2849 "bytes 1.0.1",
2930 "futures_codec",2850 "futures 0.3.12",
2931 "libp2p-core",2851 "libp2p-core",
2932 "log",2852 "log",
2933 "prost",2853 "prost",
2934 "prost-build",2854 "prost-build",
2935 "rw-stream-sink",
2936 "unsigned-varint 0.4.0",2855 "unsigned-varint 0.6.0",
2937 "void",2856 "void",
2938]2857]
29392858
2940[[package]]2859[[package]]
2941name = "libp2p-pnet"2860name = "libp2p-pnet"
2942version = "0.19.2"2861version = "0.20.0"
2943source = "registry+https://github.com/rust-lang/crates.io-index"2862source = "registry+https://github.com/rust-lang/crates.io-index"
2944checksum = "96b3c2d5d26a9500e959a0e19743897239a6c4be78dadf99b70414301a70c006"2863checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599"
2945dependencies = [2864dependencies = [
2946 "futures 0.3.8",2865 "futures 0.3.12",
2947 "log",2866 "log",
2948 "pin-project 0.4.27",2867 "pin-project 1.0.4",
2949 "rand 0.7.3",2868 "rand 0.7.3",
2950 "salsa20",2869 "salsa20",
2951 "sha3",2870 "sha3",
2952]2871]
29532872
2954[[package]]2873[[package]]
2955name = "libp2p-request-response"2874name = "libp2p-request-response"
2956version = "0.3.0"2875version = "0.9.0"
2957source = "registry+https://github.com/rust-lang/crates.io-index"2876source = "registry+https://github.com/rust-lang/crates.io-index"
2958checksum = "9c0c9e8a4cd69d97e9646c54313d007512f411aba8c5226cfcda16df6a6e84a3"2877checksum = "d37637a4b33b5390322ccc068a33897d0aa541daf4fec99f6a7efbf37295346e"
2959dependencies = [2878dependencies = [
2960 "async-trait",2879 "async-trait",
2961 "bytes 0.5.6",2880 "bytes 1.0.1",
2962 "futures 0.3.8",2881 "futures 0.3.12",
2963 "libp2p-core",2882 "libp2p-core",
2964 "libp2p-swarm",2883 "libp2p-swarm",
2965 "log",2884 "log",
2966 "lru 0.6.2",2885 "lru",
2967 "minicbor",2886 "minicbor",
2968 "rand 0.7.3",2887 "rand 0.7.3",
2969 "smallvec 1.5.1",2888 "smallvec 1.6.1",
2970 "unsigned-varint 0.5.1",2889 "unsigned-varint 0.6.0",
2971 "wasm-timer",2890 "wasm-timer",
2972]2891]
29732892
2974[[package]]2893[[package]]
2975name = "libp2p-swarm"2894name = "libp2p-swarm"
2976version = "0.22.0"2895version = "0.27.1"
2977source = "registry+https://github.com/rust-lang/crates.io-index"2896source = "registry+https://github.com/rust-lang/crates.io-index"
2978checksum = "7193e444210132237b81b755ec7fe53f1c4bd2f53cf719729b94c0c72eb6eaa1"2897checksum = "d4f89ebb4d8953bda12623e9871959fe728dea3bf6eae0421dc9c42dc821e488"
2979dependencies = [2898dependencies = [
2980 "either",2899 "either",
2981 "futures 0.3.8",2900 "futures 0.3.12",
2982 "libp2p-core",2901 "libp2p-core",
2983 "log",2902 "log",
2984 "rand 0.7.3",2903 "rand 0.7.3",
2985 "smallvec 1.5.1",2904 "smallvec 1.6.1",
2986 "void",2905 "void",
2987 "wasm-timer",2906 "wasm-timer",
2988]2907]
29892908
2990[[package]]2909[[package]]
2991name = "libp2p-tcp"2910name = "libp2p-tcp"
2992version = "0.22.0"2911version = "0.27.0"
2993source = "registry+https://github.com/rust-lang/crates.io-index"2912source = "registry+https://github.com/rust-lang/crates.io-index"
2994checksum = "44f42ec130d7a37a7e47bf4398026b7ad9185c08ed26972e2720f8b94112796f"2913checksum = "3dbd3d7076a478ac5a6aca55e74bdc250ac539b95de09b9d09915e0b8d01a6b2"
2995dependencies = [2914dependencies = [
2996 "async-std",2915 "async-io",
2997 "futures 0.3.8",2916 "futures 0.3.12",
2998 "futures-timer 3.0.2",2917 "futures-timer 3.0.2",
2999 "get_if_addrs",2918 "if-watch",
3000 "ipnet",2919 "ipnet",
2920 "libc",
3001 "libp2p-core",2921 "libp2p-core",
3002 "log",2922 "log",
3003 "socket2",2923 "socket2",
3004]2924]
30052925
3006[[package]]2926[[package]]
3007name = "libp2p-uds"2927name = "libp2p-uds"
3008version = "0.22.0"2928version = "0.27.0"
3009source = "registry+https://github.com/rust-lang/crates.io-index"2929source = "registry+https://github.com/rust-lang/crates.io-index"
3010checksum = "dea7acb0a034f70d7db94c300eba3f65c0f6298820105624088a9609c9974d77"2930checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487"
3011dependencies = [2931dependencies = [
3012 "async-std",2932 "async-std",
3013 "futures 0.3.8",2933 "futures 0.3.12",
3014 "libp2p-core",2934 "libp2p-core",
3015 "log",2935 "log",
3016]2936]
30172937
3018[[package]]2938[[package]]
3019name = "libp2p-wasm-ext"2939name = "libp2p-wasm-ext"
3020version = "0.22.0"2940version = "0.27.0"
3021source = "registry+https://github.com/rust-lang/crates.io-index"2941source = "registry+https://github.com/rust-lang/crates.io-index"
3022checksum = "34c1faac6f92c21fbe155417957863ea822fba9e9fd5eb24c0912336a100e63f"2942checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd"
3023dependencies = [2943dependencies = [
3024 "futures 0.3.8",2944 "futures 0.3.12",
3025 "js-sys",2945 "js-sys",
3026 "libp2p-core",2946 "libp2p-core",
3027 "parity-send-wrapper",2947 "parity-send-wrapper",
30312951
3032[[package]]2952[[package]]
3033name = "libp2p-websocket"2953name = "libp2p-websocket"
3034version = "0.23.0"2954version = "0.28.0"
3035source = "registry+https://github.com/rust-lang/crates.io-index"2955source = "registry+https://github.com/rust-lang/crates.io-index"
3036checksum = "d650534ebd99f48f6fa292ed5db10d30df2444943afde4407ceeddab8e513fca"2956checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22"
3037dependencies = [2957dependencies = [
3038 "async-tls",
3039 "either",2958 "either",
3040 "futures 0.3.8",2959 "futures 0.3.12",
2960 "futures-rustls",
3041 "libp2p-core",2961 "libp2p-core",
3042 "log",2962 "log",
3043 "quicksink",2963 "quicksink",
3044 "rustls",
3045 "rw-stream-sink",2964 "rw-stream-sink",
3046 "soketto",2965 "soketto",
3047 "url 2.2.0",2966 "url 2.2.0",
3048 "webpki",
3049 "webpki-roots 0.18.0",2967 "webpki-roots",
3050]2968]
30512969
3052[[package]]2970[[package]]
3053name = "libp2p-yamux"2971name = "libp2p-yamux"
3054version = "0.25.0"2972version = "0.30.0"
3055source = "registry+https://github.com/rust-lang/crates.io-index"2973source = "registry+https://github.com/rust-lang/crates.io-index"
3056checksum = "781d9b9f043dcdabc40640807125368596b849fd4d96cdca2dcf052fdf6f33fd"2974checksum = "490b8b27fc40fe35212df1b6a3d14bffaa4117cbff956fdc2892168a371102ad"
3057dependencies = [2975dependencies = [
3058 "futures 0.3.8",2976 "futures 0.3.12",
3059 "libp2p-core",2977 "libp2p-core",
3060 "parking_lot 0.11.1",2978 "parking_lot 0.11.1",
3061 "thiserror",2979 "thiserror",
31033021
3104[[package]]3022[[package]]
3105name = "linked-hash-map"3023name = "linked-hash-map"
3106version = "0.5.3"3024version = "0.5.4"
3107source = "registry+https://github.com/rust-lang/crates.io-index"3025source = "registry+https://github.com/rust-lang/crates.io-index"
3108checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"3026checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
31093027
3110[[package]]3028[[package]]
3111name = "linked_hash_set"3029name = "linked_hash_set"
31183036
3119[[package]]3037[[package]]
3120name = "linregress"3038name = "linregress"
3121version = "0.1.7"3039version = "0.4.0"
3122source = "registry+https://github.com/rust-lang/crates.io-index"3040source = "registry+https://github.com/rust-lang/crates.io-index"
3123checksum = "9290cf6f928576eeb9c096c6fad9d8d452a0a1a70a2bbffa6e36064eedc0aac9"3041checksum = "0d0ad4b5cc8385a881c561fac3501353d63d2a2b7a357b5064d71815c9a92724"
3124dependencies = [3042dependencies = [
3125 "failure",
3126 "nalgebra",3043 "nalgebra",
3127 "statrs",3044 "statrs",
3128]3045]
3129
3130[[package]]
3131name = "lock_api"
3132version = "0.1.5"
3133source = "registry+https://github.com/rust-lang/crates.io-index"
3134checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
3135dependencies = [
3136 "scopeguard 0.3.3",
3137]
31383046
3139[[package]]3047[[package]]
3140name = "lock_api"3048name = "lock_api"
3141version = "0.3.4"3049version = "0.3.4"
3142source = "registry+https://github.com/rust-lang/crates.io-index"3050source = "registry+https://github.com/rust-lang/crates.io-index"
3143checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"3051checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
3144dependencies = [3052dependencies = [
3145 "scopeguard 1.1.0",3053 "scopeguard",
3146]3054]
31473055
3148[[package]]3056[[package]]
3151source = "registry+https://github.com/rust-lang/crates.io-index"3059source = "registry+https://github.com/rust-lang/crates.io-index"
3152checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"3060checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
3153dependencies = [3061dependencies = [
3154 "scopeguard 1.1.0",3062 "scopeguard",
3155]3063]
31563064
3157[[package]]3065[[package]]
3158name = "log"3066name = "log"
3159version = "0.4.11"3067version = "0.4.14"
3160source = "registry+https://github.com/rust-lang/crates.io-index"3068source = "registry+https://github.com/rust-lang/crates.io-index"
3161checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"3069checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
3162dependencies = [3070dependencies = [
3163 "cfg-if 0.1.10",3071 "cfg-if 1.0.0",
3072 "value-bag",
3164]3073]
3165
3166[[package]]
3167name = "loom"
3168version = "0.3.6"
3169source = "registry+https://github.com/rust-lang/crates.io-index"
3170checksum = "a0e8460f2f2121162705187214720353c517b97bdfb3494c0b1e33d83ebe4bed"
3171dependencies = [
3172 "cfg-if 0.1.10",
3173 "generator",
3174 "scoped-tls",
3175 "serde",
3176 "serde_json",
3177]
31783074
3179[[package]]3075[[package]]
3180name = "lru"3076name = "lru"
3181version = "0.4.3"3077version = "0.6.3"
3182source = "registry+https://github.com/rust-lang/crates.io-index"3078source = "registry+https://github.com/rust-lang/crates.io-index"
3183checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237"3079checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635"
3184dependencies = [3080dependencies = [
3185 "hashbrown 0.6.3",3081 "hashbrown",
3186]3082]
3187
3188[[package]]
3189name = "lru"
3190version = "0.6.2"
3191source = "registry+https://github.com/rust-lang/crates.io-index"
3192checksum = "3abe07af102235a56ac9a6dd904aab1e05483e2e8afdfffec3598be55b1b7606"
3193dependencies = [
3194 "hashbrown 0.9.1",
3195]
3196
3197[[package]]
3198name = "lru_time_cache"
3199version = "0.10.0"
3200source = "registry+https://github.com/rust-lang/crates.io-index"
3201checksum = "adb241df5c4caeb888755363fc95f8a896618dc0d435e9e775f7930cb099beab"
32023083
3203[[package]]3084[[package]]
3204name = "mach"3085name = "mach"
3209 "libc",3090 "libc",
3210]3091]
3092
3093[[package]]
3094name = "maplit"
3095version = "1.0.2"
3096source = "registry+https://github.com/rust-lang/crates.io-index"
3097checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
32113098
3212[[package]]3099[[package]]
3213name = "matchers"3100name = "matchers"
3261source = "registry+https://github.com/rust-lang/crates.io-index"3148source = "registry+https://github.com/rust-lang/crates.io-index"
3262checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"3149checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
3263dependencies = [3150dependencies = [
3264 "autocfg 1.0.1",3151 "autocfg",
3265]3152]
32663153
3267[[package]]3154[[package]]
3270source = "registry+https://github.com/rust-lang/crates.io-index"3157source = "registry+https://github.com/rust-lang/crates.io-index"
3271checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"3158checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
3272dependencies = [3159dependencies = [
3273 "autocfg 1.0.1",3160 "autocfg",
3274]3161]
32753162
3276[[package]]3163[[package]]
3277name = "memory-db"3164name = "memory-db"
3278version = "0.24.1"3165version = "0.25.0"
3279source = "registry+https://github.com/rust-lang/crates.io-index"3166source = "registry+https://github.com/rust-lang/crates.io-index"
3280checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a"3167checksum = "6cbd2a22f201c03cc1706a727842490abfea17b7b53260358239828208daba3c"
3281dependencies = [3168dependencies = [
3282 "hash-db",3169 "hash-db",
3283 "hashbrown 0.8.2",3170 "hashbrown",
3284 "parity-util-mem",3171 "parity-util-mem",
3285]3172]
32863173
32923179
3293[[package]]3180[[package]]
3294name = "merlin"3181name = "merlin"
3295version = "2.0.0"3182version = "2.0.1"
3296source = "registry+https://github.com/rust-lang/crates.io-index"3183source = "registry+https://github.com/rust-lang/crates.io-index"
3297checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78"3184checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
3298dependencies = [3185dependencies = [
3299 "byteorder 1.3.4",3186 "byteorder",
3300 "keccak",3187 "keccak",
3301 "rand_core 0.5.1",3188 "rand_core 0.5.1",
3302 "zeroize",3189 "zeroize",
3303]3190]
33043191
3305[[package]]3192[[package]]
3306name = "minicbor"3193name = "minicbor"
3307version = "0.5.1"3194version = "0.7.1"
3308source = "registry+https://github.com/rust-lang/crates.io-index"3195source = "registry+https://github.com/rust-lang/crates.io-index"
3309checksum = "2fc03ad6f8f548db7194a5ff5a6f96342ecae4e3ef67d2bf18bacc0e245cd041"3196checksum = "3265a9f5210bb726f81ef9c456ae0aff5321cd95748c0e71889b0e19d8f0332b"
3310dependencies = [3197dependencies = [
3311 "minicbor-derive",3198 "minicbor-derive",
3312]3199]
33133200
3314[[package]]3201[[package]]
3315name = "minicbor-derive"3202name = "minicbor-derive"
3316version = "0.4.1"3203version = "0.6.1"
3317source = "registry+https://github.com/rust-lang/crates.io-index"3204source = "registry+https://github.com/rust-lang/crates.io-index"
3318checksum = "c214bf3d90099b52f3e4b328ae0fe34837fd0fab683ad1e10fceb4629106df48"3205checksum = "130b9455e28a3f308f6579671816a6f2621e2e0cbf55dc2f886345bef699481e"
3319dependencies = [3206dependencies = [
3320 "proc-macro2",3207 "proc-macro2",
3321 "quote",3208 "quote",
3329checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"3216checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
3330dependencies = [3217dependencies = [
3331 "adler",3218 "adler",
3332 "autocfg 1.0.1",3219 "autocfg",
3333]3220]
33343221
3335[[package]]3222[[package]]
34163303
3417[[package]]3304[[package]]
3418name = "multihash"3305name = "multihash"
3419version = "0.11.4"3306version = "0.13.2"
3420source = "registry+https://github.com/rust-lang/crates.io-index"3307source = "registry+https://github.com/rust-lang/crates.io-index"
3421checksum = "567122ab6492f49b59def14ecc36e13e64dca4188196dd0cd41f9f3f979f3df6"3308checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab"
3422dependencies = [3309dependencies = [
3423 "blake2b_simd",
3424 "blake2s_simd",
3425 "digest 0.9.0",3310 "digest 0.9.0",
3426 "sha-1 0.9.2",3311 "generic-array 0.14.4",
3312 "multihash-derive",
3427 "sha2 0.9.2",3313 "sha2 0.9.2",
3428 "sha3",
3429 "unsigned-varint 0.5.1",3314 "unsigned-varint 0.5.1",
3430]3315]
3316
3317[[package]]
3318name = "multihash-derive"
3319version = "0.7.1"
3320source = "registry+https://github.com/rust-lang/crates.io-index"
3321checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f"
3322dependencies = [
3323 "proc-macro-crate",
3324 "proc-macro-error",
3325 "proc-macro2",
3326 "quote",
3327 "syn",
3328 "synstructure",
3329]
34313330
3432[[package]]3331[[package]]
3433name = "multimap"3332name = "multimap"
34373336
3438[[package]]3337[[package]]
3439name = "multistream-select"3338name = "multistream-select"
3440version = "0.8.5"3339version = "0.10.0"
3441source = "registry+https://github.com/rust-lang/crates.io-index"3340source = "registry+https://github.com/rust-lang/crates.io-index"
3442checksum = "93faf2e41f9ee62fb01680ed48f3cc26652352327aa2e59869070358f6b7dd75"3341checksum = "10ddc0eb0117736f19d556355464fc87efc8ad98b29e3fd84f02531eb6e90840"
3443dependencies = [3342dependencies = [
3444 "bytes 0.5.6",3343 "bytes 1.0.1",
3445 "futures 0.3.8",3344 "futures 0.3.12",
3446 "log",3345 "log",
3447 "pin-project 1.0.2",3346 "pin-project 1.0.4",
3448 "smallvec 1.5.1",3347 "smallvec 1.6.1",
3449 "unsigned-varint 0.5.1",3348 "unsigned-varint 0.6.0",
3450]3349]
34513350
3452[[package]]3351[[package]]
3453name = "nalgebra"3352name = "nalgebra"
3454version = "0.18.1"3353version = "0.21.1"
3455source = "registry+https://github.com/rust-lang/crates.io-index"3354source = "registry+https://github.com/rust-lang/crates.io-index"
3456checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"3355checksum = "d6b6147c3d50b4f3cdabfe2ecc94a0191fd3d6ad58aefd9664cf396285883486"
3457dependencies = [3356dependencies = [
3458 "alga",
3459 "approx",3357 "approx",
3460 "generic-array 0.12.3",3358 "generic-array 0.13.2",
3461 "matrixmultiply",3359 "matrixmultiply",
3462 "num-complex",3360 "num-complex",
3463 "num-rational",3361 "num-rational",
3464 "num-traits",3362 "num-traits",
3465 "rand 0.6.5",3363 "rand 0.7.3",
3364 "rand_distr",
3365 "simba",
3466 "typenum",3366 "typenum",
3467]3367]
34683368
34983398
3499[[package]]3399[[package]]
3500name = "nft"3400name = "nft"
3501version = "2.0.0"3401version = "3.0.0"
3502dependencies = [3402dependencies = [
3503 "flexi_logger",3403 "flexi_logger",
3504 "frame-benchmarking",3404 "frame-benchmarking",
3505 "frame-benchmarking-cli",3405 "frame-benchmarking-cli",
3506 "futures 0.3.8",3406 "futures 0.3.12",
3507 "jsonrpc-core",3407 "jsonrpc-core",
3508 "log",3408 "log",
3509 "nft-runtime",3409 "nft-runtime",
3517 "sc-consensus-aura",3417 "sc-consensus-aura",
3518 "sc-executor",3418 "sc-executor",
3519 "sc-finality-grandpa",3419 "sc-finality-grandpa",
3420 "sc-keystore",
3520 "sc-network",3421 "sc-network",
3521 "sc-rpc",3422 "sc-rpc",
3522 "sc-rpc-api",3423 "sc-rpc-api",
3523 "sc-service",3424 "sc-service",
3425 "sc-telemetry",
3524 "sc-transaction-pool",3426 "sc-transaction-pool",
3525 "serde",3427 "serde",
3526 "serde_json",3428 "serde_json",
35413443
3542[[package]]3444[[package]]
3543name = "nft-runtime"3445name = "nft-runtime"
3544version = "2.0.0"3446version = "3.0.0"
3545dependencies = [3447dependencies = [
3546 "frame-benchmarking",3448 "frame-benchmarking",
3547 "frame-executive",3449 "frame-executive",
3566 "pallet-vesting",3468 "pallet-vesting",
3567 "parity-scale-codec",3469 "parity-scale-codec",
3568 "serde",3470 "serde",
3471 "smallvec 1.6.1",
3569 "sp-api",3472 "sp-api",
3473 "sp-arithmetic",
3570 "sp-block-builder",3474 "sp-block-builder",
3571 "sp-consensus-aura",3475 "sp-consensus-aura",
3572 "sp-core",3476 "sp-core",
3580 "substrate-wasm-builder-runner",3484 "substrate-wasm-builder-runner",
3581]3485]
3582
3583[[package]]
3584name = "nix"
3585version = "0.17.0"
3586source = "registry+https://github.com/rust-lang/crates.io-index"
3587checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
3588dependencies = [
3589 "bitflags",
3590 "cc",
3591 "cfg-if 0.1.10",
3592 "libc",
3593 "void",
3594]
35953486
3596[[package]]3487[[package]]
3597name = "nodrop"3488name = "nodrop"
3621source = "registry+https://github.com/rust-lang/crates.io-index"3512source = "registry+https://github.com/rust-lang/crates.io-index"
3622checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"3513checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
3623dependencies = [3514dependencies = [
3624 "autocfg 1.0.1",3515 "autocfg",
3625 "num-integer",3516 "num-integer",
3626 "num-traits",3517 "num-traits",
3627]3518]
3632source = "registry+https://github.com/rust-lang/crates.io-index"3523source = "registry+https://github.com/rust-lang/crates.io-index"
3633checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"3524checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
3634dependencies = [3525dependencies = [
3635 "autocfg 1.0.1",3526 "autocfg",
3636 "num-traits",3527 "num-traits",
3637]3528]
36383529
3642source = "registry+https://github.com/rust-lang/crates.io-index"3533source = "registry+https://github.com/rust-lang/crates.io-index"
3643checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"3534checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
3644dependencies = [3535dependencies = [
3645 "autocfg 1.0.1",3536 "autocfg",
3646 "num-traits",3537 "num-traits",
3647]3538]
36483539
3652source = "registry+https://github.com/rust-lang/crates.io-index"3543source = "registry+https://github.com/rust-lang/crates.io-index"
3653checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"3544checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
3654dependencies = [3545dependencies = [
3655 "autocfg 1.0.1",3546 "autocfg",
3656 "num-bigint",3547 "num-bigint",
3657 "num-integer",3548 "num-integer",
3658 "num-traits",3549 "num-traits",
3664source = "registry+https://github.com/rust-lang/crates.io-index"3555source = "registry+https://github.com/rust-lang/crates.io-index"
3665checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"3556checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
3666dependencies = [3557dependencies = [
3667 "autocfg 1.0.1",3558 "autocfg",
3668 "libm",3559 "libm",
3669]3560]
36703561
36973588
3698[[package]]3589[[package]]
3699name = "object"3590name = "object"
3700version = "0.22.0"3591version = "0.23.0"
3701source = "registry+https://github.com/rust-lang/crates.io-index"3592source = "registry+https://github.com/rust-lang/crates.io-index"
3702checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"3593checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
3703
3704[[package]]
3705name = "once_cell"
3706version = "0.1.8"
3707source = "registry+https://github.com/rust-lang/crates.io-index"
3708checksum = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37"
3709dependencies = [
3710 "parking_lot 0.7.1",
3711]
37123594
3713[[package]]3595[[package]]
3714name = "once_cell"3596name = "once_cell"
37483630
3749[[package]]3631[[package]]
3750name = "pallet-aura"3632name = "pallet-aura"
3751version = "2.0.0"3633version = "2.0.1"
3752source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3634source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3753dependencies = [3635dependencies = [
3754 "frame-support",3636 "frame-support",
3755 "frame-system",3637 "frame-system",
37673649
3768[[package]]3650[[package]]
3769name = "pallet-authorship"3651name = "pallet-authorship"
3770version = "2.0.0"3652version = "2.0.1"
3771source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3653source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3772dependencies = [3654dependencies = [
3773 "frame-support",3655 "frame-support",
3774 "frame-system",3656 "frame-system",
3775 "impl-trait-for-tuples",3657 "impl-trait-for-tuples 0.2.0",
3776 "parity-scale-codec",3658 "parity-scale-codec",
3777 "sp-authorship",3659 "sp-authorship",
3778 "sp-inherents",3660 "sp-inherents",
37823664
3783[[package]]3665[[package]]
3784name = "pallet-balances"3666name = "pallet-balances"
3785version = "2.0.0"3667version = "2.0.1"
3786source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3668source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3787dependencies = [3669dependencies = [
3788 "frame-benchmarking",3670 "frame-benchmarking",
3789 "frame-support",3671 "frame-support",
37963678
3797[[package]]3679[[package]]
3798name = "pallet-contracts"3680name = "pallet-contracts"
3799version = "2.0.0"3681version = "2.0.1"
3800source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3682source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3801dependencies = [3683dependencies = [
3802 "bitflags",
3803 "frame-support",3684 "frame-support",
3804 "frame-system",3685 "frame-system",
3805 "pallet-contracts-primitives",3686 "pallet-contracts-primitives",
3687 "pallet-contracts-proc-macro",
3806 "parity-scale-codec",3688 "parity-scale-codec",
3807 "parity-wasm",3689 "parity-wasm",
3808 "pwasm-utils",3690 "pwasm-utils 0.16.0",
3809 "serde",3691 "serde",
3810 "sp-core",3692 "sp-core",
3811 "sp-io",3693 "sp-io",
38173699
3818[[package]]3700[[package]]
3819name = "pallet-contracts-primitives"3701name = "pallet-contracts-primitives"
3820version = "2.0.0"3702version = "2.0.1"
3821source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3703source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3822dependencies = [3704dependencies = [
3705 "bitflags",
3823 "parity-scale-codec",3706 "parity-scale-codec",
3824 "sp-runtime",3707 "sp-runtime",
3825 "sp-std",3708 "sp-std",
3826]3709]
3710
3711[[package]]
3712name = "pallet-contracts-proc-macro"
3713version = "0.1.0"
3714source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3715dependencies = [
3716 "proc-macro2",
3717 "quote",
3718 "syn",
3719]
38273720
3828[[package]]3721[[package]]
3829name = "pallet-contracts-rpc"3722name = "pallet-contracts-rpc"
3830version = "0.8.0"3723version = "0.8.1"
3831source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3724source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3832dependencies = [3725dependencies = [
3833 "jsonrpc-core",3726 "jsonrpc-core",
3834 "jsonrpc-core-client",3727 "jsonrpc-core-client",
38463739
3847[[package]]3740[[package]]
3848name = "pallet-contracts-rpc-runtime-api"3741name = "pallet-contracts-rpc-runtime-api"
3849version = "0.8.0"3742version = "0.8.1"
3850source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3743source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3851dependencies = [3744dependencies = [
3852 "pallet-contracts-primitives",3745 "pallet-contracts-primitives",
3853 "parity-scale-codec",3746 "parity-scale-codec",
3856 "sp-std",3749 "sp-std",
3857]3750]
3858
3859[[package]]
3860name = "pallet-finality-tracker"
3861version = "2.0.0"
3862source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
3863dependencies = [
3864 "frame-support",
3865 "frame-system",
3866 "impl-trait-for-tuples",
3867 "parity-scale-codec",
3868 "serde",
3869 "sp-finality-tracker",
3870 "sp-inherents",
3871 "sp-runtime",
3872 "sp-std",
3873]
38743751
3875[[package]]3752[[package]]
3876name = "pallet-grandpa"3753name = "pallet-grandpa"
3877version = "2.0.0"3754version = "2.0.1"
3878source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3755source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3879dependencies = [3756dependencies = [
3880 "frame-benchmarking",3757 "frame-benchmarking",
3881 "frame-support",3758 "frame-support",
3882 "frame-system",3759 "frame-system",
3883 "pallet-authorship",3760 "pallet-authorship",
3884 "pallet-finality-tracker",
3885 "pallet-session",3761 "pallet-session",
3886 "parity-scale-codec",3762 "parity-scale-codec",
3887 "serde",3763 "serde",
38963772
3897[[package]]3773[[package]]
3898name = "pallet-nft"3774name = "pallet-nft"
3899version = "2.0.0"3775version = "3.0.0"
3900dependencies = [3776dependencies = [
3901 "frame-benchmarking",3777 "frame-benchmarking",
3902 "frame-support",3778 "frame-support",
39173793
3918[[package]]3794[[package]]
3919name = "pallet-randomness-collective-flip"3795name = "pallet-randomness-collective-flip"
3920version = "2.0.0"3796version = "2.0.1"
3921source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3797source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3922dependencies = [3798dependencies = [
3923 "frame-support",3799 "frame-support",
3924 "frame-system",3800 "frame-system",
39303806
3931[[package]]3807[[package]]
3932name = "pallet-session"3808name = "pallet-session"
3933version = "2.0.0"3809version = "2.0.1"
3934source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3810source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3935dependencies = [3811dependencies = [
3936 "frame-support",3812 "frame-support",
3937 "frame-system",3813 "frame-system",
3938 "impl-trait-for-tuples",3814 "impl-trait-for-tuples 0.1.3",
3939 "pallet-timestamp",3815 "pallet-timestamp",
3940 "parity-scale-codec",3816 "parity-scale-codec",
3941 "serde",3817 "serde",
39503826
3951[[package]]3827[[package]]
3952name = "pallet-sudo"3828name = "pallet-sudo"
3953version = "2.0.0"3829version = "2.0.1"
3954source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3830source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3955dependencies = [3831dependencies = [
3956 "frame-support",3832 "frame-support",
3957 "frame-system",3833 "frame-system",
39643840
3965[[package]]3841[[package]]
3966name = "pallet-timestamp"3842name = "pallet-timestamp"
3967version = "2.0.0"3843version = "2.0.1"
3968source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3844source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3969dependencies = [3845dependencies = [
3970 "frame-benchmarking",3846 "frame-benchmarking",
3971 "frame-support",3847 "frame-support",
3972 "frame-system",3848 "frame-system",
3973 "impl-trait-for-tuples",3849 "impl-trait-for-tuples 0.2.0",
3974 "parity-scale-codec",3850 "parity-scale-codec",
3975 "serde",3851 "serde",
3976 "sp-inherents",3852 "sp-inherents",
39823858
3983[[package]]3859[[package]]
3984name = "pallet-transaction-payment"3860name = "pallet-transaction-payment"
3985version = "2.0.0"3861version = "2.0.1"
3986source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3862source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
3987dependencies = [3863dependencies = [
3988 "frame-support",3864 "frame-support",
3989 "frame-system",3865 "frame-system",
3990 "pallet-transaction-payment-rpc-runtime-api",
3991 "parity-scale-codec",3866 "parity-scale-codec",
3992 "serde",3867 "serde",
3993 "smallvec 1.5.1",3868 "smallvec 1.6.1",
3994 "sp-core",3869 "sp-core",
3995 "sp-io",3870 "sp-io",
3996 "sp-runtime",3871 "sp-runtime",
39993874
4000[[package]]3875[[package]]
4001name = "pallet-transaction-payment-rpc"3876name = "pallet-transaction-payment-rpc"
4002version = "2.0.0"3877version = "2.0.1"
4003source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3878source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
4004dependencies = [3879dependencies = [
4005 "jsonrpc-core",3880 "jsonrpc-core",
4006 "jsonrpc-core-client",3881 "jsonrpc-core-client",
4007 "jsonrpc-derive",3882 "jsonrpc-derive",
4008 "pallet-transaction-payment-rpc-runtime-api",3883 "pallet-transaction-payment-rpc-runtime-api",
4009 "parity-scale-codec",3884 "parity-scale-codec",
4010 "serde",
4011 "sp-api",3885 "sp-api",
4012 "sp-blockchain",3886 "sp-blockchain",
4013 "sp-core",3887 "sp-core",
40173891
4018[[package]]3892[[package]]
4019name = "pallet-transaction-payment-rpc-runtime-api"3893name = "pallet-transaction-payment-rpc-runtime-api"
4020version = "2.0.0"3894version = "2.0.1"
4021source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3895source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
4022dependencies = [3896dependencies = [
4023 "frame-support",3897 "pallet-transaction-payment",
4024 "parity-scale-codec",3898 "parity-scale-codec",
4025 "serde",
4026 "sp-api",3899 "sp-api",
4027 "sp-runtime",3900 "sp-runtime",
4028 "sp-std",
4029]3901]
40303902
4031[[package]]3903[[package]]
4032name = "pallet-treasury"3904name = "pallet-treasury"
4033version = "2.0.0"3905version = "2.0.1"
4034source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3906source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
4035dependencies = [3907dependencies = [
4036 "frame-support",3908 "frame-support",
4037 "frame-system",3909 "frame-system",
3910 "impl-trait-for-tuples 0.2.0",
4038 "pallet-balances",3911 "pallet-balances",
4039 "parity-scale-codec",3912 "parity-scale-codec",
4040 "serde",3913 "serde",
40443917
4045[[package]]3918[[package]]
4046name = "pallet-vesting"3919name = "pallet-vesting"
4047version = "2.0.0"3920version = "2.0.1"
4048source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"3921source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
4049dependencies = [3922dependencies = [
4050 "enumflags2",3923 "enumflags2",
4051 "frame-support",3924 "frame-support",
40723945
4073[[package]]3946[[package]]
4074name = "parity-multiaddr"3947name = "parity-multiaddr"
4075version = "0.9.6"3948version = "0.11.0"
4076source = "registry+https://github.com/rust-lang/crates.io-index"3949source = "registry+https://github.com/rust-lang/crates.io-index"
4077checksum = "43244a26dc1ddd3097216bb12eaa6cf8a07b060c72718d9ebd60fd297d6401df"3950checksum = "8bfda2e46fc5e14122649e2645645a81ee5844e0fb2e727ef560cc71a8b2d801"
4078dependencies = [3951dependencies = [
4079 "arrayref",3952 "arrayref",
4080 "bs58 0.4.0",3953 "bs58",
4081 "byteorder 1.3.4",3954 "byteorder",
4082 "data-encoding",3955 "data-encoding",
4083 "multihash",3956 "multihash",
4084 "percent-encoding 2.1.0",3957 "percent-encoding 2.1.0",
4085 "serde",3958 "serde",
4086 "static_assertions",3959 "static_assertions",
4087 "unsigned-varint 0.5.1",3960 "unsigned-varint 0.6.0",
4088 "url 2.2.0",3961 "url 2.2.0",
4089]3962]
40903963
4091[[package]]3964[[package]]
4092name = "parity-scale-codec"3965name = "parity-scale-codec"
4093version = "1.3.5"3966version = "1.3.6"
4094source = "registry+https://github.com/rust-lang/crates.io-index"3967source = "registry+https://github.com/rust-lang/crates.io-index"
4095checksum = "7c740e5fbcb6847058b40ac7e5574766c6388f585e184d769910fe0d3a2ca861"3968checksum = "79602888a81ace83e3d1d4b2873286c1f5f906c84db667594e8db8da3506c383"
4096dependencies = [3969dependencies = [
4097 "arrayvec 0.5.2",3970 "arrayvec 0.5.2",
4098 "bitvec",3971 "bitvec",
41404013
4141[[package]]4014[[package]]
4142name = "parity-util-mem"4015name = "parity-util-mem"
4143version = "0.7.0"4016version = "0.8.0"
4144source = "registry+https://github.com/rust-lang/crates.io-index"4017source = "registry+https://github.com/rust-lang/crates.io-index"
4145checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c"4018checksum = "8f17f15cb05897127bf36a240085a1f0bbef7bce3024849eccf7f93f6171bc27"
4146dependencies = [4019dependencies = [
4147 "cfg-if 0.1.10",4020 "cfg-if 1.0.0",
4148 "hashbrown 0.8.2",4021 "hashbrown",
4149 "impl-trait-for-tuples",4022 "impl-trait-for-tuples 0.2.0",
4150 "parity-util-mem-derive",4023 "parity-util-mem-derive",
4151 "parking_lot 0.10.2",4024 "parking_lot 0.11.1",
4152 "primitive-types",4025 "primitive-types",
4153 "smallvec 1.5.1",4026 "smallvec 1.6.1",
4154 "winapi 0.3.9",4027 "winapi 0.3.9",
4155]4028]
41564029
4177source = "registry+https://github.com/rust-lang/crates.io-index"4050source = "registry+https://github.com/rust-lang/crates.io-index"
4178checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61"4051checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61"
4179dependencies = [4052dependencies = [
4180 "byteorder 1.3.4",4053 "byteorder",
4181 "bytes 0.4.12",4054 "bytes 0.4.12",
4182 "httparse",4055 "httparse",
4183 "log",4056 "log",
4195source = "registry+https://github.com/rust-lang/crates.io-index"4068source = "registry+https://github.com/rust-lang/crates.io-index"
4196checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"4069checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
4197
4198[[package]]
4199name = "parking_lot"
4200version = "0.7.1"
4201source = "registry+https://github.com/rust-lang/crates.io-index"
4202checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
4203dependencies = [
4204 "lock_api 0.1.5",
4205 "parking_lot_core 0.4.0",
4206]
42074070
4208[[package]]4071[[package]]
4209name = "parking_lot"4072name = "parking_lot"
4234dependencies = [4097dependencies = [
4235 "instant",4098 "instant",
4236 "lock_api 0.4.2",4099 "lock_api 0.4.2",
4237 "parking_lot_core 0.8.1",4100 "parking_lot_core 0.8.2",
4238]4101]
4239
4240[[package]]
4241name = "parking_lot_core"
4242version = "0.4.0"
4243source = "registry+https://github.com/rust-lang/crates.io-index"
4244checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
4245dependencies = [
4246 "libc",
4247 "rand 0.6.5",
4248 "rustc_version",
4249 "smallvec 0.6.13",
4250 "winapi 0.3.9",
4251]
42524102
4253[[package]]4103[[package]]
4254name = "parking_lot_core"4104name = "parking_lot_core"
4259 "cfg-if 0.1.10",4109 "cfg-if 0.1.10",
4260 "cloudabi",4110 "cloudabi",
4261 "libc",4111 "libc",
4262 "redox_syscall",4112 "redox_syscall 0.1.57",
4263 "rustc_version",4113 "rustc_version",
4264 "smallvec 0.6.13",4114 "smallvec 0.6.14",
4265 "winapi 0.3.9",4115 "winapi 0.3.9",
4266]4116]
42674117
4274 "cfg-if 0.1.10",4124 "cfg-if 0.1.10",
4275 "cloudabi",4125 "cloudabi",
4276 "libc",4126 "libc",
4277 "redox_syscall",4127 "redox_syscall 0.1.57",
4278 "smallvec 1.5.1",4128 "smallvec 1.6.1",
4279 "winapi 0.3.9",4129 "winapi 0.3.9",
4280]4130]
42814131
4282[[package]]4132[[package]]
4283name = "parking_lot_core"4133name = "parking_lot_core"
4284version = "0.8.1"4134version = "0.8.2"
4285source = "registry+https://github.com/rust-lang/crates.io-index"4135source = "registry+https://github.com/rust-lang/crates.io-index"
4286checksum = "d7c6d9b8427445284a09c55be860a15855ab580a417ccad9da88f5a06787ced0"4136checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
4287dependencies = [4137dependencies = [
4288 "cfg-if 1.0.0",4138 "cfg-if 1.0.0",
4289 "instant",4139 "instant",
4290 "libc",4140 "libc",
4291 "redox_syscall",4141 "redox_syscall 0.1.57",
4292 "smallvec 1.5.1",4142 "smallvec 1.6.1",
4293 "winapi 0.3.9",4143 "winapi 0.3.9",
4294]4144]
42954145
4318source = "registry+https://github.com/rust-lang/crates.io-index"4168source = "registry+https://github.com/rust-lang/crates.io-index"
4319checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"4169checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
4320dependencies = [4170dependencies = [
4321 "byteorder 1.3.4",4171 "byteorder",
4322 "crypto-mac 0.7.0",4172 "crypto-mac 0.7.0",
4323 "rayon",
4324]4173]
4174
4175[[package]]
4176name = "pbkdf2"
4177version = "0.4.0"
4178source = "registry+https://github.com/rust-lang/crates.io-index"
4179checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd"
4180dependencies = [
4181 "crypto-mac 0.8.0",
4182]
4183
4184[[package]]
4185name = "pdqselect"
4186version = "0.1.0"
4187source = "registry+https://github.com/rust-lang/crates.io-index"
4188checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27"
43254189
4326[[package]]4190[[package]]
4327name = "peeking_take_while"4191name = "peeking_take_while"
4341source = "registry+https://github.com/rust-lang/crates.io-index"4205source = "registry+https://github.com/rust-lang/crates.io-index"
4342checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"4206checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
4207
4208[[package]]
4209name = "pest"
4210version = "2.1.3"
4211source = "registry+https://github.com/rust-lang/crates.io-index"
4212checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
4213dependencies = [
4214 "ucd-trie",
4215]
4216
4217[[package]]
4218name = "pest_derive"
4219version = "2.1.0"
4220source = "registry+https://github.com/rust-lang/crates.io-index"
4221checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
4222dependencies = [
4223 "pest",
4224 "pest_generator",
4225]
4226
4227[[package]]
4228name = "pest_generator"
4229version = "2.1.3"
4230source = "registry+https://github.com/rust-lang/crates.io-index"
4231checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
4232dependencies = [
4233 "pest",
4234 "pest_meta",
4235 "proc-macro2",
4236 "quote",
4237 "syn",
4238]
4239
4240[[package]]
4241name = "pest_meta"
4242version = "2.1.3"
4243source = "registry+https://github.com/rust-lang/crates.io-index"
4244checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
4245dependencies = [
4246 "maplit",
4247 "pest",
4248 "sha-1 0.8.2",
4249]
43434250
4344[[package]]4251[[package]]
4345name = "petgraph"4252name = "petgraph"
43624269
4363[[package]]4270[[package]]
4364name = "pin-project"4271name = "pin-project"
4365version = "1.0.2"4272version = "1.0.4"
4366source = "registry+https://github.com/rust-lang/crates.io-index"4273source = "registry+https://github.com/rust-lang/crates.io-index"
4367checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"4274checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2"
4368dependencies = [4275dependencies = [
4369 "pin-project-internal 1.0.2",4276 "pin-project-internal 1.0.4",
4370]4277]
43714278
4372[[package]]4279[[package]]
43824289
4383[[package]]4290[[package]]
4384name = "pin-project-internal"4291name = "pin-project-internal"
4385version = "1.0.2"4292version = "1.0.4"
4386source = "registry+https://github.com/rust-lang/crates.io-index"4293source = "registry+https://github.com/rust-lang/crates.io-index"
4387checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"4294checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71"
4388dependencies = [4295dependencies = [
4389 "proc-macro2",4296 "proc-macro2",
4390 "quote",4297 "quote",
43994306
4400[[package]]4307[[package]]
4401name = "pin-project-lite"4308name = "pin-project-lite"
4402version = "0.2.0"4309version = "0.2.4"
4403source = "registry+https://github.com/rust-lang/crates.io-index"4310source = "registry+https://github.com/rust-lang/crates.io-index"
4404checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"4311checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"
44054312
4406[[package]]4313[[package]]
4407name = "pin-utils"4314name = "pin-utils"
44464353
4447[[package]]4354[[package]]
4448name = "polyval"4355name = "polyval"
4449version = "0.4.3"4356version = "0.4.5"
4450source = "registry+https://github.com/rust-lang/crates.io-index"4357source = "registry+https://github.com/rust-lang/crates.io-index"
4451checksum = "b4fd92d8e0c06d08525d2e2643cc2b5c80c69ae8eb12c18272d501cd7079ccc0"4358checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd"
4452dependencies = [4359dependencies = [
4453 "cpuid-bool 0.2.0",4360 "cpuid-bool 0.2.0",
4361 "opaque-debug 0.3.0",
4454 "universal-hash",4362 "universal-hash",
4455]4363]
44564364
44624370
4463[[package]]4371[[package]]
4464name = "primitive-types"4372name = "primitive-types"
4465version = "0.7.3"4373version = "0.8.0"
4466source = "registry+https://github.com/rust-lang/crates.io-index"4374source = "registry+https://github.com/rust-lang/crates.io-index"
4467checksum = "7dd39dcacf71411ba488570da7bbc89b717225e46478b30ba99b92db6b149809"4375checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8"
4468dependencies = [4376dependencies = [
4469 "fixed-hash",4377 "fixed-hash",
4470 "impl-codec",4378 "impl-codec",
45134421
4514[[package]]4422[[package]]
4515name = "proc-macro-nested"4423name = "proc-macro-nested"
4516version = "0.1.6"4424version = "0.1.7"
4517source = "registry+https://github.com/rust-lang/crates.io-index"4425source = "registry+https://github.com/rust-lang/crates.io-index"
4518checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"4426checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
45194427
4520[[package]]4428[[package]]
4521name = "proc-macro2"4429name = "proc-macro2"
45424450
4543[[package]]4451[[package]]
4544name = "prost"4452name = "prost"
4545version = "0.6.1"4453version = "0.7.0"
4546source = "registry+https://github.com/rust-lang/crates.io-index"4454source = "registry+https://github.com/rust-lang/crates.io-index"
4547checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212"4455checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
4548dependencies = [4456dependencies = [
4549 "bytes 0.5.6",4457 "bytes 1.0.1",
4550 "prost-derive",4458 "prost-derive",
4551]4459]
45524460
4553[[package]]4461[[package]]
4554name = "prost-build"4462name = "prost-build"
4555version = "0.6.1"4463version = "0.7.0"
4556source = "registry+https://github.com/rust-lang/crates.io-index"4464source = "registry+https://github.com/rust-lang/crates.io-index"
4557checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26"4465checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3"
4558dependencies = [4466dependencies = [
4559 "bytes 0.5.6",4467 "bytes 1.0.1",
4560 "heck",4468 "heck",
4561 "itertools 0.8.2",4469 "itertools",
4562 "log",4470 "log",
4563 "multimap",4471 "multimap",
4564 "petgraph",4472 "petgraph",
4565 "prost",4473 "prost",
4566 "prost-types",4474 "prost-types",
4567 "tempfile",4475 "tempfile",
4568 "which",4476 "which 4.0.2",
4569]4477]
45704478
4571[[package]]4479[[package]]
4572name = "prost-derive"4480name = "prost-derive"
4573version = "0.6.1"4481version = "0.7.0"
4574source = "registry+https://github.com/rust-lang/crates.io-index"4482source = "registry+https://github.com/rust-lang/crates.io-index"
4575checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72"4483checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
4576dependencies = [4484dependencies = [
4577 "anyhow",4485 "anyhow",
4578 "itertools 0.8.2",4486 "itertools",
4579 "proc-macro2",4487 "proc-macro2",
4580 "quote",4488 "quote",
4581 "syn",4489 "syn",
4582]4490]
45834491
4584[[package]]4492[[package]]
4585name = "prost-types"4493name = "prost-types"
4586version = "0.6.1"4494version = "0.7.0"
4587source = "registry+https://github.com/rust-lang/crates.io-index"4495source = "registry+https://github.com/rust-lang/crates.io-index"
4588checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa"4496checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
4589dependencies = [4497dependencies = [
4590 "bytes 0.5.6",4498 "bytes 1.0.1",
4591 "prost",4499 "prost",
4592]4500]
45934501
4597source = "registry+https://github.com/rust-lang/crates.io-index"4505source = "registry+https://github.com/rust-lang/crates.io-index"
4598checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7"4506checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7"
4599dependencies = [4507dependencies = [
4600 "byteorder 1.3.4",4508 "byteorder",
4601 "log",4509 "log",
4602 "parity-wasm",4510 "parity-wasm",
4603]4511]
4512
4513[[package]]
4514name = "pwasm-utils"
4515version = "0.16.0"
4516source = "registry+https://github.com/rust-lang/crates.io-index"
4517checksum = "1c8ac87af529432d3a4f0e2b3bbf08af49f28f09cc73ed7e551161bdaef5f78d"
4518dependencies = [
4519 "byteorder",
4520 "log",
4521 "parity-wasm",
4522]
46044523
4605[[package]]4524[[package]]
4606name = "quick-error"4525name = "quick-error"
4607version = "1.2.3"4526version = "1.2.3"
4608source = "registry+https://github.com/rust-lang/crates.io-index"4527source = "registry+https://github.com/rust-lang/crates.io-index"
4609checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"4528checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
4529
4530[[package]]
4531name = "quick-error"
4532version = "2.0.0"
4533source = "registry+https://github.com/rust-lang/crates.io-index"
4534checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda"
46104535
4611[[package]]4536[[package]]
4612name = "quicksink"4537name = "quicksink"
46214546
4622[[package]]4547[[package]]
4623name = "quote"4548name = "quote"
4624version = "1.0.7"4549version = "1.0.8"
4625source = "registry+https://github.com/rust-lang/crates.io-index"4550source = "registry+https://github.com/rust-lang/crates.io-index"
4626checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"4551checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
4627dependencies = [4552dependencies = [
4628 "proc-macro2",4553 "proc-macro2",
4629]4554]
4657 "winapi 0.3.9",4582 "winapi 0.3.9",
4658]4583]
4659
4660[[package]]
4661name = "rand"
4662version = "0.5.6"
4663source = "registry+https://github.com/rust-lang/crates.io-index"
4664checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
4665dependencies = [
4666 "cloudabi",
4667 "fuchsia-cprng",
4668 "libc",
4669 "rand_core 0.3.1",
4670 "winapi 0.3.9",
4671]
4672
4673[[package]]
4674name = "rand"
4675version = "0.6.5"
4676source = "registry+https://github.com/rust-lang/crates.io-index"
4677checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
4678dependencies = [
4679 "autocfg 0.1.7",
4680 "libc",
4681 "rand_chacha 0.1.1",
4682 "rand_core 0.4.2",
4683 "rand_hc 0.1.0",
4684 "rand_isaac",
4685 "rand_jitter",
4686 "rand_os",
4687 "rand_pcg 0.1.2",
4688 "rand_xorshift",
4689 "winapi 0.3.9",
4690]
46914584
4692[[package]]4585[[package]]
4693name = "rand"4586name = "rand"
4694version = "0.7.3"4587version = "0.7.3"
4695source = "registry+https://github.com/rust-lang/crates.io-index"4588source = "registry+https://github.com/rust-lang/crates.io-index"
4696checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"4589checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
4697dependencies = [4590dependencies = [
4698 "getrandom 0.1.15",4591 "getrandom 0.1.16",
4699 "libc",4592 "libc",
4700 "rand_chacha 0.2.2",4593 "rand_chacha 0.2.2",
4701 "rand_core 0.5.1",4594 "rand_core 0.5.1",
4702 "rand_hc 0.2.0",4595 "rand_hc 0.2.0",
4703 "rand_pcg 0.2.1",4596 "rand_pcg",
4704]4597]
47054598
4706[[package]]4599[[package]]
4707name = "rand_chacha"4600name = "rand"
4708version = "0.1.1"4601version = "0.8.3"
4709source = "registry+https://github.com/rust-lang/crates.io-index"4602source = "registry+https://github.com/rust-lang/crates.io-index"
4710checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"4603checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
4711dependencies = [4604dependencies = [
4605 "libc",
4712 "autocfg 0.1.7",4606 "rand_chacha 0.3.0",
4713 "rand_core 0.3.1",4607 "rand_core 0.6.1",
4608 "rand_hc 0.3.0",
4714]4609]
47154610
4716[[package]]4611[[package]]
4723 "rand_core 0.5.1",4618 "rand_core 0.5.1",
4724]4619]
4620
4621[[package]]
4622name = "rand_chacha"
4623version = "0.3.0"
4624source = "registry+https://github.com/rust-lang/crates.io-index"
4625checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
4626dependencies = [
4627 "ppv-lite86",
4628 "rand_core 0.6.1",
4629]
47254630
4726[[package]]4631[[package]]
4727name = "rand_core"4632name = "rand_core"
4744source = "registry+https://github.com/rust-lang/crates.io-index"4649source = "registry+https://github.com/rust-lang/crates.io-index"
4745checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"4650checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
4746dependencies = [4651dependencies = [
4747 "getrandom 0.1.15",4652 "getrandom 0.1.16",
4748]4653]
4654
4655[[package]]
4656name = "rand_core"
4657version = "0.6.1"
4658source = "registry+https://github.com/rust-lang/crates.io-index"
4659checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"
4660dependencies = [
4661 "getrandom 0.2.2",
4662]
47494663
4750[[package]]4664[[package]]
4751name = "rand_hc"4665name = "rand_distr"
4752version = "0.1.0"4666version = "0.2.2"
4753source = "registry+https://github.com/rust-lang/crates.io-index"4667source = "registry+https://github.com/rust-lang/crates.io-index"
4754checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"4668checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2"
4755dependencies = [4669dependencies = [
4756 "rand_core 0.3.1",4670 "rand 0.7.3",
4757]4671]
47584672
4759[[package]]4673[[package]]
4765 "rand_core 0.5.1",4679 "rand_core 0.5.1",
4766]4680]
4767
4768[[package]]
4769name = "rand_isaac"
4770version = "0.1.1"
4771source = "registry+https://github.com/rust-lang/crates.io-index"
4772checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
4773dependencies = [
4774 "rand_core 0.3.1",
4775]
4776
4777[[package]]
4778name = "rand_jitter"
4779version = "0.1.4"
4780source = "registry+https://github.com/rust-lang/crates.io-index"
4781checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
4782dependencies = [
4783 "libc",
4784 "rand_core 0.4.2",
4785 "winapi 0.3.9",
4786]
47874681
4788[[package]]4682[[package]]
4789name = "rand_os"4683name = "rand_hc"
4790version = "0.1.3"4684version = "0.3.0"
4791source = "registry+https://github.com/rust-lang/crates.io-index"4685source = "registry+https://github.com/rust-lang/crates.io-index"
4792checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"4686checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
4793dependencies = [4687dependencies = [
4794 "cloudabi",
4795 "fuchsia-cprng",
4796 "libc",
4797 "rand_core 0.4.2",4688 "rand_core 0.6.1",
4798 "rdrand",
4799 "winapi 0.3.9",
4800]4689]
4801
4802[[package]]
4803name = "rand_pcg"
4804version = "0.1.2"
4805source = "registry+https://github.com/rust-lang/crates.io-index"
4806checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
4807dependencies = [
4808 "autocfg 0.1.7",
4809 "rand_core 0.4.2",
4810]
48114690
4812[[package]]4691[[package]]
4813name = "rand_pcg"4692name = "rand_pcg"
4818 "rand_core 0.5.1",4697 "rand_core 0.5.1",
4819]4698]
4820
4821[[package]]
4822name = "rand_xorshift"
4823version = "0.1.1"
4824source = "registry+https://github.com/rust-lang/crates.io-index"
4825checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
4826dependencies = [
4827 "rand_core 0.3.1",
4828]
48294699
4830[[package]]4700[[package]]
4831name = "raw-cpuid"4701name = "raw-cpuid"
4832version = "7.0.3"4702version = "7.0.4"
4833source = "registry+https://github.com/rust-lang/crates.io-index"4703source = "registry+https://github.com/rust-lang/crates.io-index"
4834checksum = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf"4704checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41"
4835dependencies = [4705dependencies = [
4836 "bitflags",4706 "bitflags",
4837 "cc",4707 "cc",
4850source = "registry+https://github.com/rust-lang/crates.io-index"4720source = "registry+https://github.com/rust-lang/crates.io-index"
4851checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"4721checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
4852dependencies = [4722dependencies = [
4853 "autocfg 1.0.1",4723 "autocfg",
4854 "crossbeam-deque 0.8.0",4724 "crossbeam-deque 0.8.0",
4855 "either",4725 "either",
4856 "rayon-core",4726 "rayon-core",
4884source = "registry+https://github.com/rust-lang/crates.io-index"4754source = "registry+https://github.com/rust-lang/crates.io-index"
4885checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"4755checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
4756
4757[[package]]
4758name = "redox_syscall"
4759version = "0.2.4"
4760source = "registry+https://github.com/rust-lang/crates.io-index"
4761checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
4762dependencies = [
4763 "bitflags",
4764]
48864765
4887[[package]]4766[[package]]
4888name = "redox_users"4767name = "redox_users"
4889version = "0.3.5"4768version = "0.3.5"
4890source = "registry+https://github.com/rust-lang/crates.io-index"4769source = "registry+https://github.com/rust-lang/crates.io-index"
4891checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"4770checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
4892dependencies = [4771dependencies = [
4893 "getrandom 0.1.15",4772 "getrandom 0.1.16",
4894 "redox_syscall",4773 "redox_syscall 0.1.57",
4895 "rust-argon2",4774 "rust-argon2",
4896]4775]
48974776
4898[[package]]4777[[package]]
4899name = "ref-cast"4778name = "ref-cast"
4900version = "1.0.3"4779version = "1.0.6"
4901source = "registry+https://github.com/rust-lang/crates.io-index"4780source = "registry+https://github.com/rust-lang/crates.io-index"
4902checksum = "e17626b2f4bcf35b84bf379072a66e28cfe5c3c6ae58b38e4914bb8891dabece"4781checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da"
4903dependencies = [4782dependencies = [
4904 "ref-cast-impl",4783 "ref-cast-impl",
4905]4784]
49064785
4907[[package]]4786[[package]]
4908name = "ref-cast-impl"4787name = "ref-cast-impl"
4909version = "1.0.3"4788version = "1.0.6"
4910source = "registry+https://github.com/rust-lang/crates.io-index"4789source = "registry+https://github.com/rust-lang/crates.io-index"
4911checksum = "0c523ccaed8ac4b0288948849a350b37d3035827413c458b6a40ddb614bb4f72"4790checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2"
4912dependencies = [4791dependencies = [
4913 "proc-macro2",4792 "proc-macro2",
4914 "quote",4793 "quote",
4923dependencies = [4802dependencies = [
4924 "log",4803 "log",
4925 "rustc-hash",4804 "rustc-hash",
4926 "smallvec 1.5.1",4805 "smallvec 1.6.1",
4927]4806]
49284807
4929[[package]]4808[[package]]
4930name = "regex"4809name = "regex"
4931version = "1.4.2"4810version = "1.4.3"
4932source = "registry+https://github.com/rust-lang/crates.io-index"4811source = "registry+https://github.com/rust-lang/crates.io-index"
4933checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"4812checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
4934dependencies = [4813dependencies = [
4935 "aho-corasick",4814 "aho-corasick",
4936 "memchr",4815 "memchr",
4944source = "registry+https://github.com/rust-lang/crates.io-index"4823source = "registry+https://github.com/rust-lang/crates.io-index"
4945checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"4824checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
4946dependencies = [4825dependencies = [
4947 "byteorder 1.3.4",4826 "byteorder",
4948 "regex-syntax",4827 "regex-syntax",
4949]4828]
49504829
4951[[package]]4830[[package]]
4952name = "regex-syntax"4831name = "regex-syntax"
4953version = "0.6.21"4832version = "0.6.22"
4954source = "registry+https://github.com/rust-lang/crates.io-index"4833source = "registry+https://github.com/rust-lang/crates.io-index"
4955checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"4834checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
49564835
4957[[package]]4836[[package]]
4958name = "region"4837name = "region"
49774856
4978[[package]]4857[[package]]
4979name = "retain_mut"4858name = "retain_mut"
4980version = "0.1.1"4859version = "0.1.2"
4981source = "registry+https://github.com/rust-lang/crates.io-index"4860source = "registry+https://github.com/rust-lang/crates.io-index"
4982checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531"4861checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1"
49834862
4984[[package]]4863[[package]]
4985name = "ring"4864name = "ring"
4989dependencies = [4868dependencies = [
4990 "cc",4869 "cc",
4991 "libc",4870 "libc",
4992 "once_cell 1.5.2",4871 "once_cell",
4993 "spin",4872 "spin",
4994 "untrusted",4873 "untrusted",
4995 "web-sys",4874 "web-sys",
50084887
5009[[package]]4888[[package]]
5010name = "rpassword"4889name = "rpassword"
5011version = "4.0.5"4890version = "5.0.1"
5012source = "registry+https://github.com/rust-lang/crates.io-index"4891source = "registry+https://github.com/rust-lang/crates.io-index"
5013checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f"4892checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb"
5014dependencies = [4893dependencies = [
5015 "libc",4894 "libc",
5016 "winapi 0.3.9",4895 "winapi 0.3.9",
5068 "webpki",4947 "webpki",
5069]4948]
4949
4950[[package]]
4951name = "rustls"
4952version = "0.19.0"
4953source = "registry+https://github.com/rust-lang/crates.io-index"
4954checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b"
4955dependencies = [
4956 "base64 0.13.0",
4957 "log",
4958 "ring",
4959 "sct",
4960 "webpki",
4961]
50704962
5071[[package]]4963[[package]]
5072name = "rustls-native-certs"4964name = "rustls-native-certs"
5075checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8"4967checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8"
5076dependencies = [4968dependencies = [
5077 "openssl-probe",4969 "openssl-probe",
5078 "rustls",4970 "rustls 0.18.1",
5079 "schannel",4971 "schannel",
5080 "security-framework",4972 "security-framework",
5081]4973]
5086source = "registry+https://github.com/rust-lang/crates.io-index"4978source = "registry+https://github.com/rust-lang/crates.io-index"
5087checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"4979checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
5088dependencies = [4980dependencies = [
5089 "futures 0.3.8",4981 "futures 0.3.12",
5090 "pin-project 0.4.27",4982 "pin-project 0.4.27",
5091 "static_assertions",4983 "static_assertions",
5092]4984]
51085000
5109[[package]]5001[[package]]
5110name = "salsa20"5002name = "salsa20"
5111version = "0.6.0"5003version = "0.7.2"
5112source = "registry+https://github.com/rust-lang/crates.io-index"5004source = "registry+https://github.com/rust-lang/crates.io-index"
5113checksum = "c7f47b10fa80f6969bbbd9c8e7cc998f082979d402a9e10579e2303a87955395"5005checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15"
5114dependencies = [5006dependencies = [
5115 "stream-cipher",5007 "cipher",
5116]5008]
51175009
5118[[package]]5010[[package]]
5119name = "sc-basic-authorship"5011name = "sc-basic-authorship"
5120version = "0.8.0"5012version = "0.8.1"
5121source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5013source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5122dependencies = [5014dependencies = [
5123 "futures 0.3.8",5015 "futures 0.3.12",
5124 "futures-timer 3.0.2",5016 "futures-timer 3.0.2",
5125 "log",5017 "log",
5126 "parity-scale-codec",5018 "parity-scale-codec",
5136 "sp-runtime",5028 "sp-runtime",
5137 "sp-transaction-pool",5029 "sp-transaction-pool",
5138 "substrate-prometheus-endpoint",5030 "substrate-prometheus-endpoint",
5139 "tokio-executor 0.2.0-alpha.6",
5140]5031]
51415032
5142[[package]]5033[[package]]
5143name = "sc-block-builder"5034name = "sc-block-builder"
5144version = "0.8.0"5035version = "0.8.1"
5145source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5036source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5146dependencies = [5037dependencies = [
5147 "parity-scale-codec",5038 "parity-scale-codec",
5148 "sc-client-api",5039 "sc-client-api",
51585049
5159[[package]]5050[[package]]
5160name = "sc-chain-spec"5051name = "sc-chain-spec"
5161version = "2.0.0"5052version = "2.0.1"
5162source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5053source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5163dependencies = [5054dependencies = [
5164 "impl-trait-for-tuples",5055 "impl-trait-for-tuples 0.2.0",
5165 "parity-scale-codec",5056 "parity-scale-codec",
5166 "sc-chain-spec-derive",5057 "sc-chain-spec-derive",
5058 "sc-consensus-babe",
5059 "sc-consensus-epochs",
5060 "sc-finality-grandpa",
5167 "sc-network",5061 "sc-network",
5168 "sc-telemetry",5062 "sc-telemetry",
5169 "serde",5063 "serde",
5170 "serde_json",5064 "serde_json",
5171 "sp-chain-spec",5065 "sp-chain-spec",
5066 "sp-consensus-babe",
5172 "sp-core",5067 "sp-core",
5173 "sp-runtime",5068 "sp-runtime",
5174]5069]
51755070
5176[[package]]5071[[package]]
5177name = "sc-chain-spec-derive"5072name = "sc-chain-spec-derive"
5178version = "2.0.0"5073version = "2.0.1"
5179source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5074source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5180dependencies = [5075dependencies = [
5181 "proc-macro-crate",5076 "proc-macro-crate",
5182 "proc-macro2",5077 "proc-macro2",
51865081
5187[[package]]5082[[package]]
5188name = "sc-cli"5083name = "sc-cli"
5189version = "0.8.0"5084version = "0.8.1"
5190source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5085source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5191dependencies = [5086dependencies = [
5192 "ansi_term 0.12.1",
5193 "atty",
5194 "bip39",
5195 "chrono",5087 "chrono",
5196 "derive_more",
5197 "fdlimit",5088 "fdlimit",
5198 "flexi_logger",
5199 "futures 0.3.8",5089 "futures 0.3.12",
5200 "hex",5090 "hex",
5201 "lazy_static",
5202 "libp2p",5091 "libp2p",
5203 "log",5092 "log",
5204 "names",5093 "names",
5205 "nix",
5206 "parity-scale-codec",5094 "parity-scale-codec",
5207 "parity-util-mem",
5208 "rand 0.7.3",5095 "rand 0.7.3",
5209 "regex",5096 "regex",
5210 "rpassword",5097 "rpassword",
5211 "sc-client-api",5098 "sc-client-api",
5212 "sc-informant",
5213 "sc-keystore",5099 "sc-keystore",
5214 "sc-network",5100 "sc-network",
5215 "sc-service",5101 "sc-service",
5220 "sp-blockchain",5106 "sp-blockchain",
5221 "sp-core",5107 "sp-core",
5222 "sp-keyring",5108 "sp-keyring",
5109 "sp-keystore",
5223 "sp-panic-handler",5110 "sp-panic-handler",
5224 "sp-runtime",5111 "sp-runtime",
5225 "sp-state-machine",
5226 "sp-utils",5112 "sp-utils",
5227 "sp-version",5113 "sp-version",
5228 "structopt",5114 "structopt",
5229 "substrate-prometheus-endpoint",5115 "thiserror",
5230 "time",5116 "tiny-bip39",
5231 "tokio 0.2.24",5117 "tokio 0.2.24",
5232 "tracing",
5233 "tracing-log",
5234 "tracing-subscriber",
5235]5118]
52365119
5237[[package]]5120[[package]]
5238name = "sc-client-api"5121name = "sc-client-api"
5239version = "2.0.0"5122version = "2.0.1"
5240source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5123source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5241dependencies = [5124dependencies = [
5242 "derive_more",5125 "derive_more",
5243 "fnv",5126 "fnv",
5244 "futures 0.3.8",5127 "futures 0.3.12",
5245 "hash-db",5128 "hash-db",
5246 "hex-literal",
5247 "kvdb",5129 "kvdb",
5248 "lazy_static",5130 "lazy_static",
5249 "log",5131 "log",
5250 "parity-scale-codec",5132 "parity-scale-codec",
5251 "parking_lot 0.10.2",5133 "parking_lot 0.11.1",
5252 "sc-executor",5134 "sc-executor",
5253 "sc-telemetry",
5254 "sp-api",5135 "sp-api",
5255 "sp-blockchain",5136 "sp-blockchain",
5256 "sp-consensus",5137 "sp-consensus",
5257 "sp-core",5138 "sp-core",
5258 "sp-database",5139 "sp-database",
5259 "sp-externalities",5140 "sp-externalities",
5260 "sp-inherents",5141 "sp-inherents",
5261 "sp-keyring",5142 "sp-keystore",
5262 "sp-runtime",5143 "sp-runtime",
5263 "sp-state-machine",5144 "sp-state-machine",
5264 "sp-std",5145 "sp-std",
52725153
5273[[package]]5154[[package]]
5274name = "sc-client-db"5155name = "sc-client-db"
5275version = "0.8.0"5156version = "0.8.1"
5276source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5157source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5277dependencies = [5158dependencies = [
5278 "blake2-rfc",5159 "blake2-rfc",
5279 "hash-db",5160 "hash-db",
5285 "parity-db",5166 "parity-db",
5286 "parity-scale-codec",5167 "parity-scale-codec",
5287 "parity-util-mem",5168 "parity-util-mem",
5288 "parking_lot 0.10.2",5169 "parking_lot 0.11.1",
5289 "sc-client-api",5170 "sc-client-api",
5290 "sc-executor",5171 "sc-executor",
5291 "sc-state-db",5172 "sc-state-db",
53025183
5303[[package]]5184[[package]]
5304name = "sc-consensus"5185name = "sc-consensus"
5305version = "0.8.0"5186version = "0.8.1"
5306source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5187source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5307dependencies = [5188dependencies = [
5308 "sc-client-api",5189 "sc-client-api",
5309 "sp-blockchain",5190 "sp-blockchain",
53135194
5314[[package]]5195[[package]]
5315name = "sc-consensus-aura"5196name = "sc-consensus-aura"
5316version = "0.8.0"5197version = "0.8.1"
5317source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5198source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5318dependencies = [5199dependencies = [
5319 "derive_more",5200 "derive_more",
5320 "futures 0.3.8",5201 "futures 0.3.12",
5321 "futures-timer 3.0.2",5202 "futures-timer 3.0.2",
5322 "log",5203 "log",
5323 "parity-scale-codec",5204 "parity-scale-codec",
5324 "parking_lot 0.10.2",5205 "parking_lot 0.11.1",
5325 "sc-block-builder",5206 "sc-block-builder",
5326 "sc-client-api",5207 "sc-client-api",
5327 "sc-consensus-slots",5208 "sc-consensus-slots",
5328 "sc-keystore",
5329 "sc-telemetry",5209 "sc-telemetry",
5330 "sp-api",5210 "sp-api",
5331 "sp-application-crypto",5211 "sp-application-crypto",
5336 "sp-core",5216 "sp-core",
5337 "sp-inherents",5217 "sp-inherents",
5338 "sp-io",5218 "sp-io",
5219 "sp-keystore",
5339 "sp-runtime",5220 "sp-runtime",
5340 "sp-timestamp",5221 "sp-timestamp",
5341 "sp-version",5222 "sp-version",
5342 "substrate-prometheus-endpoint",5223 "substrate-prometheus-endpoint",
5343]5224]
5225
5226[[package]]
5227name = "sc-consensus-babe"
5228version = "0.8.1"
5229source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5230dependencies = [
5231 "derive_more",
5232 "fork-tree",
5233 "futures 0.3.12",
5234 "futures-timer 3.0.2",
5235 "log",
5236 "merlin",
5237 "num-bigint",
5238 "num-rational",
5239 "num-traits",
5240 "parity-scale-codec",
5241 "parking_lot 0.11.1",
5242 "pdqselect",
5243 "rand 0.7.3",
5244 "retain_mut",
5245 "sc-client-api",
5246 "sc-consensus-epochs",
5247 "sc-consensus-slots",
5248 "sc-consensus-uncles",
5249 "sc-keystore",
5250 "sc-telemetry",
5251 "schnorrkel",
5252 "serde",
5253 "sp-api",
5254 "sp-application-crypto",
5255 "sp-block-builder",
5256 "sp-blockchain",
5257 "sp-consensus",
5258 "sp-consensus-babe",
5259 "sp-consensus-vrf",
5260 "sp-core",
5261 "sp-inherents",
5262 "sp-io",
5263 "sp-keystore",
5264 "sp-runtime",
5265 "sp-timestamp",
5266 "sp-utils",
5267 "sp-version",
5268 "substrate-prometheus-endpoint",
5269]
5270
5271[[package]]
5272name = "sc-consensus-epochs"
5273version = "0.8.1"
5274source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5275dependencies = [
5276 "fork-tree",
5277 "parity-scale-codec",
5278 "parking_lot 0.11.1",
5279 "sc-client-api",
5280 "sp-blockchain",
5281 "sp-runtime",
5282]
53445283
5345[[package]]5284[[package]]
5346name = "sc-consensus-slots"5285name = "sc-consensus-slots"
5347version = "0.8.0"5286version = "0.8.1"
5348source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5287source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5349dependencies = [5288dependencies = [
5350 "futures 0.3.8",5289 "futures 0.3.12",
5351 "futures-timer 3.0.2",5290 "futures-timer 3.0.2",
5352 "log",5291 "log",
5353 "parity-scale-codec",5292 "parity-scale-codec",
5354 "parking_lot 0.10.2",5293 "parking_lot 0.11.1",
5355 "sc-client-api",5294 "sc-client-api",
5356 "sc-telemetry",5295 "sc-telemetry",
5357 "sp-api",5296 "sp-api",
5358 "sp-application-crypto",5297 "sp-application-crypto",
5298 "sp-arithmetic",
5359 "sp-blockchain",5299 "sp-blockchain",
5360 "sp-consensus",5300 "sp-consensus",
5361 "sp-consensus-slots",5301 "sp-consensus-slots",
5362 "sp-core",5302 "sp-core",
5363 "sp-inherents",5303 "sp-inherents",
5364 "sp-runtime",5304 "sp-runtime",
5365 "sp-state-machine",5305 "sp-state-machine",
5306 "sp-trie",
5307 "thiserror",
5366]5308]
5309
5310[[package]]
5311name = "sc-consensus-uncles"
5312version = "0.8.1"
5313source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5314dependencies = [
5315 "log",
5316 "sc-client-api",
5317 "sp-authorship",
5318 "sp-consensus",
5319 "sp-core",
5320 "sp-inherents",
5321 "sp-runtime",
5322]
53675323
5368[[package]]5324[[package]]
5369name = "sc-executor"5325name = "sc-executor"
5370version = "0.8.0"5326version = "0.8.1"
5371source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5327source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5372dependencies = [5328dependencies = [
5373 "derive_more",5329 "derive_more",
5374 "lazy_static",5330 "lazy_static",
5375 "libsecp256k1",5331 "libsecp256k1",
5376 "log",5332 "log",
5377 "parity-scale-codec",5333 "parity-scale-codec",
5378 "parity-wasm",5334 "parity-wasm",
5379 "parking_lot 0.10.2",5335 "parking_lot 0.11.1",
5380 "sc-executor-common",5336 "sc-executor-common",
5381 "sc-executor-wasmi",5337 "sc-executor-wasmi",
5382 "sc-executor-wasmtime",5338 "sc-executor-wasmtime",
5387 "sp-panic-handler",5343 "sp-panic-handler",
5388 "sp-runtime-interface",5344 "sp-runtime-interface",
5389 "sp-serializer",5345 "sp-serializer",
5346 "sp-tasks",
5390 "sp-trie",5347 "sp-trie",
5391 "sp-version",5348 "sp-version",
5392 "sp-wasm-interface",5349 "sp-wasm-interface",
53955352
5396[[package]]5353[[package]]
5397name = "sc-executor-common"5354name = "sc-executor-common"
5398version = "0.8.0"5355version = "0.8.1"
5399source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5356source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5400dependencies = [5357dependencies = [
5401 "derive_more",5358 "derive_more",
5402 "log",
5403 "parity-scale-codec",5359 "parity-scale-codec",
5404 "parity-wasm",5360 "parity-wasm",
5405 "sp-allocator",5361 "sp-allocator",
5406 "sp-core",5362 "sp-core",
5407 "sp-runtime-interface",
5408 "sp-serializer",5363 "sp-serializer",
5409 "sp-wasm-interface",5364 "sp-wasm-interface",
5365 "thiserror",
5410 "wasmi",5366 "wasmi",
5411]5367]
54125368
5413[[package]]5369[[package]]
5414name = "sc-executor-wasmi"5370name = "sc-executor-wasmi"
5415version = "0.8.0"5371version = "0.8.1"
5416source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5372source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5417dependencies = [5373dependencies = [
5418 "log",5374 "log",
5419 "parity-scale-codec",5375 "parity-scale-codec",
54275383
5428[[package]]5384[[package]]
5429name = "sc-executor-wasmtime"5385name = "sc-executor-wasmtime"
5430version = "0.8.0"5386version = "0.8.1"
5431source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5387source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5432dependencies = [5388dependencies = [
5433 "log",5389 "log",
5434 "parity-scale-codec",5390 "parity-scale-codec",
5435 "parity-wasm",5391 "parity-wasm",
5436 "pwasm-utils",5392 "pwasm-utils 0.14.0",
5437 "sc-executor-common",5393 "sc-executor-common",
5438 "scoped-tls",5394 "scoped-tls",
5439 "sp-allocator",5395 "sp-allocator",
54455401
5446[[package]]5402[[package]]
5447name = "sc-finality-grandpa"5403name = "sc-finality-grandpa"
5448version = "0.8.0"5404version = "0.8.1"
5449source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5405source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5450dependencies = [5406dependencies = [
5451 "derive_more",5407 "derive_more",
5452 "finality-grandpa",5408 "finality-grandpa",
5453 "fork-tree",5409 "fork-tree",
5454 "futures 0.3.8",5410 "futures 0.3.12",
5455 "futures-timer 3.0.2",5411 "futures-timer 3.0.2",
5412 "linked-hash-map",
5456 "log",5413 "log",
5457 "parity-scale-codec",5414 "parity-scale-codec",
5458 "parking_lot 0.10.2",5415 "parking_lot 0.11.1",
5459 "pin-project 0.4.27",5416 "pin-project 0.4.27",
5460 "rand 0.7.3",5417 "rand 0.7.3",
5461 "sc-block-builder",5418 "sc-block-builder",
5473 "sp-consensus",5430 "sp-consensus",
5474 "sp-core",5431 "sp-core",
5475 "sp-finality-grandpa",5432 "sp-finality-grandpa",
5476 "sp-finality-tracker",
5477 "sp-inherents",5433 "sp-inherents",
5434 "sp-keystore",
5478 "sp-runtime",5435 "sp-runtime",
5479 "sp-utils",5436 "sp-utils",
5480 "substrate-prometheus-endpoint",5437 "substrate-prometheus-endpoint",
5481]5438]
54825439
5483[[package]]5440[[package]]
5484name = "sc-informant"5441name = "sc-informant"
5485version = "0.8.0"5442version = "0.8.1"
5486source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5443source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5487dependencies = [5444dependencies = [
5488 "ansi_term 0.12.1",5445 "ansi_term 0.12.1",
5489 "futures 0.3.8",5446 "futures 0.3.12",
5490 "log",5447 "log",
5491 "parity-util-mem",5448 "parity-util-mem",
5492 "sc-client-api",5449 "sc-client-api",
55005457
5501[[package]]5458[[package]]
5502name = "sc-keystore"5459name = "sc-keystore"
5503version = "2.0.0"5460version = "2.0.1"
5504source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5461source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5505dependencies = [5462dependencies = [
5463 "async-trait",
5506 "derive_more",5464 "derive_more",
5465 "futures 0.3.12",
5466 "futures-util",
5507 "hex",5467 "hex",
5508 "merlin",5468 "merlin",
5509 "parking_lot 0.10.2",5469 "parking_lot 0.11.1",
5510 "rand 0.7.3",5470 "rand 0.7.3",
5511 "serde_json",5471 "serde_json",
5512 "sp-application-crypto",5472 "sp-application-crypto",
5513 "sp-core",5473 "sp-core",
5474 "sp-keystore",
5514 "subtle 2.4.0",5475 "subtle 2.4.0",
5515]5476]
55165477
5517[[package]]5478[[package]]
5518name = "sc-light"5479name = "sc-light"
5519version = "2.0.0"5480version = "2.0.1"
5520source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5481source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5521dependencies = [5482dependencies = [
5522 "hash-db",5483 "hash-db",
5523 "lazy_static",5484 "lazy_static",
5524 "parity-scale-codec",5485 "parity-scale-codec",
5525 "parking_lot 0.10.2",5486 "parking_lot 0.11.1",
5526 "sc-client-api",5487 "sc-client-api",
5527 "sc-executor",5488 "sc-executor",
5528 "sp-api",5489 "sp-api",
55355496
5536[[package]]5497[[package]]
5537name = "sc-network"5498name = "sc-network"
5538version = "0.8.0"5499version = "0.8.1"
5539source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5500source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5540dependencies = [5501dependencies = [
5541 "async-std",5502 "async-std",
5542 "async-trait",5503 "async-trait",
5504 "asynchronous-codec",
5543 "bitflags",5505 "bitflags",
5544 "bs58 0.3.1",5506 "bs58",
5545 "bytes 0.5.6",5507 "bytes 1.0.1",
5546 "derive_more",5508 "derive_more",
5547 "either",5509 "either",
5548 "erased-serde",5510 "erased-serde",
5549 "fnv",5511 "fnv",
5550 "fork-tree",5512 "fork-tree",
5551 "futures 0.3.8",5513 "futures 0.3.12",
5552 "futures-timer 3.0.2",5514 "futures-timer 3.0.2",
5553 "futures_codec",
5554 "hex",5515 "hex",
5555 "ip_network",5516 "ip_network",
5556 "libp2p",5517 "libp2p",
5557 "linked-hash-map",5518 "linked-hash-map",
5558 "linked_hash_set",5519 "linked_hash_set",
5559 "log",5520 "log",
5560 "lru 0.4.3",5521 "lru",
5561 "nohash-hasher",5522 "nohash-hasher",
5562 "parity-scale-codec",5523 "parity-scale-codec",
5563 "parking_lot 0.10.2",5524 "parking_lot 0.11.1",
5564 "pin-project 0.4.27",5525 "pin-project 0.4.27",
5565 "prost",5526 "prost",
5566 "prost-build",5527 "prost-build",
5570 "sc-peerset",5531 "sc-peerset",
5571 "serde",5532 "serde",
5572 "serde_json",5533 "serde_json",
5573 "slog",
5574 "slog_derive",
5575 "smallvec 0.6.13",5534 "smallvec 1.6.1",
5576 "sp-arithmetic",5535 "sp-arithmetic",
5577 "sp-blockchain",5536 "sp-blockchain",
5578 "sp-consensus",5537 "sp-consensus",
5581 "sp-utils",5540 "sp-utils",
5582 "substrate-prometheus-endpoint",5541 "substrate-prometheus-endpoint",
5583 "thiserror",5542 "thiserror",
5584 "unsigned-varint 0.4.0",5543 "unsigned-varint 0.6.0",
5585 "void",5544 "void",
5586 "wasm-timer",5545 "wasm-timer",
5587 "zeroize",5546 "zeroize",
5588]5547]
55895548
5590[[package]]5549[[package]]
5591name = "sc-network-gossip"5550name = "sc-network-gossip"
5592version = "0.8.0"5551version = "0.8.1"
5593source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5552source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5594dependencies = [5553dependencies = [
5595 "futures 0.3.8",5554 "futures 0.3.12",
5596 "futures-timer 3.0.2",5555 "futures-timer 3.0.2",
5597 "libp2p",5556 "libp2p",
5598 "log",5557 "log",
5599 "lru 0.4.3",5558 "lru",
5600 "sc-network",5559 "sc-network",
5601 "sp-runtime",5560 "sp-runtime",
5561 "substrate-prometheus-endpoint",
5602 "wasm-timer",5562 "wasm-timer",
5603]5563]
56045564
5605[[package]]5565[[package]]
5606name = "sc-offchain"5566name = "sc-offchain"
5607version = "2.0.0"5567version = "2.0.1"
5608source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5568source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5609dependencies = [5569dependencies = [
5610 "bytes 0.5.6",5570 "bytes 0.5.6",
5611 "fnv",5571 "fnv",
5612 "futures 0.3.8",5572 "futures 0.3.12",
5613 "futures-timer 3.0.2",5573 "futures-timer 3.0.2",
5614 "hyper 0.13.9",5574 "hyper 0.13.9",
5615 "hyper-rustls",5575 "hyper-rustls",
5616 "log",5576 "log",
5617 "num_cpus",5577 "num_cpus",
5618 "parity-scale-codec",5578 "parity-scale-codec",
5619 "parking_lot 0.10.2",5579 "parking_lot 0.11.1",
5620 "rand 0.7.3",5580 "rand 0.7.3",
5621 "sc-client-api",5581 "sc-client-api",
5622 "sc-keystore",5582 "sc-keystore",
56315591
5632[[package]]5592[[package]]
5633name = "sc-peerset"5593name = "sc-peerset"
5634version = "2.0.0"5594version = "2.0.1"
5635source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5595source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5636dependencies = [5596dependencies = [
5637 "futures 0.3.8",5597 "futures 0.3.12",
5638 "libp2p",5598 "libp2p",
5639 "log",5599 "log",
5640 "serde_json",5600 "serde_json",
56445604
5645[[package]]5605[[package]]
5646name = "sc-proposer-metrics"5606name = "sc-proposer-metrics"
5647version = "0.8.0"5607version = "0.8.1"
5648source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5608source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5649dependencies = [5609dependencies = [
5650 "log",5610 "log",
5651 "substrate-prometheus-endpoint",5611 "substrate-prometheus-endpoint",
5652]5612]
56535613
5654[[package]]5614[[package]]
5655name = "sc-rpc"5615name = "sc-rpc"
5656version = "2.0.0"5616version = "2.0.1"
5657source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5617source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5658dependencies = [5618dependencies = [
5659 "futures 0.3.8",5619 "futures 0.3.12",
5660 "hash-db",5620 "hash-db",
5661 "jsonrpc-core",5621 "jsonrpc-core",
5662 "jsonrpc-pubsub",5622 "jsonrpc-pubsub",
5663 "log",5623 "log",
5664 "parity-scale-codec",5624 "parity-scale-codec",
5665 "parking_lot 0.10.2",5625 "parking_lot 0.11.1",
5666 "sc-block-builder",5626 "sc-block-builder",
5667 "sc-client-api",5627 "sc-client-api",
5668 "sc-executor",5628 "sc-executor",
5669 "sc-keystore",5629 "sc-keystore",
5670 "sc-rpc-api",5630 "sc-rpc-api",
5631 "sc-tracing",
5671 "serde_json",5632 "serde_json",
5672 "sp-api",5633 "sp-api",
5673 "sp-blockchain",5634 "sp-blockchain",
5674 "sp-chain-spec",5635 "sp-chain-spec",
5675 "sp-core",5636 "sp-core",
5637 "sp-keystore",
5676 "sp-offchain",5638 "sp-offchain",
5677 "sp-rpc",5639 "sp-rpc",
5678 "sp-runtime",5640 "sp-runtime",
56855647
5686[[package]]5648[[package]]
5687name = "sc-rpc-api"5649name = "sc-rpc-api"
5688version = "0.8.0"5650version = "0.8.1"
5689source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5651source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5690dependencies = [5652dependencies = [
5691 "derive_more",5653 "derive_more",
5692 "futures 0.3.8",5654 "futures 0.3.12",
5693 "jsonrpc-core",5655 "jsonrpc-core",
5694 "jsonrpc-core-client",5656 "jsonrpc-core-client",
5695 "jsonrpc-derive",5657 "jsonrpc-derive",
5696 "jsonrpc-pubsub",5658 "jsonrpc-pubsub",
5697 "log",5659 "log",
5698 "parity-scale-codec",5660 "parity-scale-codec",
5699 "parking_lot 0.10.2",5661 "parking_lot 0.11.1",
5700 "serde",5662 "serde",
5701 "serde_json",5663 "serde_json",
5702 "sp-chain-spec",5664 "sp-chain-spec",
57095671
5710[[package]]5672[[package]]
5711name = "sc-rpc-server"5673name = "sc-rpc-server"
5712version = "2.0.0"5674version = "2.0.1"
5713source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5675source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5714dependencies = [5676dependencies = [
5715 "futures 0.1.30",5677 "futures 0.1.30",
5716 "jsonrpc-core",5678 "jsonrpc-core",
57275689
5728[[package]]5690[[package]]
5729name = "sc-service"5691name = "sc-service"
5730version = "0.8.0"5692version = "0.8.1"
5731source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5693source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5732dependencies = [5694dependencies = [
5733 "derive_more",
5734 "directories",5695 "directories 3.0.1",
5735 "exit-future",5696 "exit-future",
5736 "futures 0.1.30",5697 "futures 0.1.30",
5737 "futures 0.3.8",5698 "futures 0.3.12",
5738 "futures-timer 3.0.2",5699 "futures-timer 3.0.2",
5739 "hash-db",5700 "hash-db",
5740 "jsonrpc-core",5701 "jsonrpc-core",
5743 "log",5704 "log",
5744 "parity-scale-codec",5705 "parity-scale-codec",
5745 "parity-util-mem",5706 "parity-util-mem",
5746 "parking_lot 0.10.2",5707 "parking_lot 0.11.1",
5747 "pin-project 0.4.27",5708 "pin-project 0.4.27",
5748 "rand 0.7.3",5709 "rand 0.7.3",
5749 "sc-block-builder",5710 "sc-block-builder",
5763 "sc-transaction-pool",5724 "sc-transaction-pool",
5764 "serde",5725 "serde",
5765 "serde_json",5726 "serde_json",
5766 "slog",
5767 "sp-api",5727 "sp-api",
5768 "sp-application-crypto",5728 "sp-application-crypto",
5769 "sp-block-builder",5729 "sp-block-builder",
5773 "sp-externalities",5733 "sp-externalities",
5774 "sp-inherents",5734 "sp-inherents",
5775 "sp-io",5735 "sp-io",
5736 "sp-keystore",
5776 "sp-runtime",5737 "sp-runtime",
5777 "sp-session",5738 "sp-session",
5778 "sp-state-machine",5739 "sp-state-machine",
5783 "sp-version",5744 "sp-version",
5784 "substrate-prometheus-endpoint",5745 "substrate-prometheus-endpoint",
5785 "tempfile",5746 "tempfile",
5747 "thiserror",
5786 "tracing",5748 "tracing",
5749 "tracing-futures",
5787 "wasm-timer",5750 "wasm-timer",
5788]5751]
57895752
5790[[package]]5753[[package]]
5791name = "sc-state-db"5754name = "sc-state-db"
5792version = "0.8.0"5755version = "0.8.1"
5793source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5756source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5794dependencies = [5757dependencies = [
5795 "log",5758 "log",
5796 "parity-scale-codec",5759 "parity-scale-codec",
5797 "parity-util-mem",5760 "parity-util-mem",
5798 "parity-util-mem-derive",5761 "parity-util-mem-derive",
5799 "parking_lot 0.10.2",5762 "parking_lot 0.11.1",
5800 "sc-client-api",5763 "sc-client-api",
5801 "sp-core",5764 "sp-core",
5765 "thiserror",
5802]5766]
58035767
5804[[package]]5768[[package]]
5805name = "sc-telemetry"5769name = "sc-telemetry"
5806version = "2.0.0"5770version = "2.0.1"
5807source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5771source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5808dependencies = [5772dependencies = [
5809 "futures 0.3.8",5773 "chrono",
5810 "futures-timer 3.0.2",5774 "futures 0.3.12",
5811 "libp2p",5775 "libp2p",
5812 "log",5776 "log",
5813 "parking_lot 0.10.2",5777 "parking_lot 0.11.1",
5814 "pin-project 0.4.27",5778 "pin-project 0.4.27",
5815 "rand 0.7.3",5779 "rand 0.7.3",
5816 "serde",5780 "serde",
5817 "slog",
5818 "slog-json",5781 "serde_json",
5819 "slog-scope",5782 "sp-utils",
5820 "take_mut",5783 "take_mut",
5784 "tracing",
5785 "tracing-subscriber",
5821 "void",5786 "void",
5822 "wasm-timer",5787 "wasm-timer",
5823]5788]
58245789
5825[[package]]5790[[package]]
5826name = "sc-tracing"5791name = "sc-tracing"
5827version = "2.0.0"5792version = "2.0.1"
5828source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5793source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5829dependencies = [5794dependencies = [
5795 "ansi_term 0.12.1",
5796 "atty",
5830 "erased-serde",5797 "erased-serde",
5798 "lazy_static",
5831 "log",5799 "log",
5800 "once_cell",
5832 "parking_lot 0.10.2",5801 "parking_lot 0.11.1",
5802 "regex",
5833 "rustc-hash",5803 "rustc-hash",
5834 "sc-telemetry",5804 "sc-telemetry",
5805 "sc-tracing-proc-macro",
5835 "serde",5806 "serde",
5836 "serde_json",5807 "serde_json",
5837 "slog",
5838 "sp-tracing",5808 "sp-tracing",
5809 "thiserror",
5839 "tracing",5810 "tracing",
5840 "tracing-core",5811 "tracing-core",
5812 "tracing-log",
5841 "tracing-subscriber",5813 "tracing-subscriber",
5814 "wasm-bindgen",
5815 "web-sys",
5842]5816]
5817
5818[[package]]
5819name = "sc-tracing-proc-macro"
5820version = "2.0.0"
5821source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5822dependencies = [
5823 "proc-macro-crate",
5824 "proc-macro2",
5825 "quote",
5826 "syn",
5827]
58435828
5844[[package]]5829[[package]]
5845name = "sc-transaction-graph"5830name = "sc-transaction-graph"
5846version = "2.0.0"5831version = "2.0.1"
5847source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5832source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5848dependencies = [5833dependencies = [
5849 "derive_more",5834 "derive_more",
5850 "futures 0.3.8",5835 "futures 0.3.12",
5851 "linked-hash-map",5836 "linked-hash-map",
5852 "log",5837 "log",
5853 "parity-util-mem",5838 "parity-util-mem",
5854 "parking_lot 0.10.2",5839 "parking_lot 0.11.1",
5855 "retain_mut",5840 "retain_mut",
5856 "serde",5841 "serde",
5857 "sp-blockchain",5842 "sp-blockchain",
5858 "sp-core",5843 "sp-core",
5859 "sp-runtime",5844 "sp-runtime",
5860 "sp-transaction-pool",5845 "sp-transaction-pool",
5861 "sp-utils",5846 "sp-utils",
5847 "thiserror",
5862 "wasm-timer",5848 "wasm-timer",
5863]5849]
58645850
5865[[package]]5851[[package]]
5866name = "sc-transaction-pool"5852name = "sc-transaction-pool"
5867version = "2.0.0"5853version = "2.0.1"
5868source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"5854source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
5869dependencies = [5855dependencies = [
5870 "derive_more",
5871 "futures 0.3.8",5856 "futures 0.3.12",
5872 "futures-diagnose",5857 "futures-diagnose",
5873 "intervalier",5858 "intervalier",
5874 "log",5859 "log",
5875 "parity-scale-codec",5860 "parity-scale-codec",
5876 "parity-util-mem",5861 "parity-util-mem",
5877 "parking_lot 0.10.2",5862 "parking_lot 0.11.1",
5878 "sc-client-api",5863 "sc-client-api",
5879 "sc-transaction-graph",5864 "sc-transaction-graph",
5880 "sp-api",5865 "sp-api",
5885 "sp-transaction-pool",5870 "sp-transaction-pool",
5886 "sp-utils",5871 "sp-utils",
5887 "substrate-prometheus-endpoint",5872 "substrate-prometheus-endpoint",
5873 "thiserror",
5888 "wasm-timer",5874 "wasm-timer",
5889]5875]
58905876
5906dependencies = [5892dependencies = [
5907 "arrayref",5893 "arrayref",
5908 "arrayvec 0.5.2",5894 "arrayvec 0.5.2",
5909 "curve25519-dalek 2.1.0",5895 "curve25519-dalek 2.1.2",
5910 "getrandom 0.1.15",5896 "getrandom 0.1.16",
5911 "merlin",5897 "merlin",
5912 "rand 0.7.3",5898 "rand 0.7.3",
5913 "rand_core 0.5.1",5899 "rand_core 0.5.1",
5900 "serde",
5914 "sha2 0.8.2",5901 "sha2 0.8.2",
5915 "subtle 2.4.0",5902 "subtle 2.4.0",
5916 "zeroize",5903 "zeroize",
5922source = "registry+https://github.com/rust-lang/crates.io-index"5909source = "registry+https://github.com/rust-lang/crates.io-index"
5923checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"5910checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
5924
5925[[package]]
5926name = "scopeguard"
5927version = "0.3.3"
5928source = "registry+https://github.com/rust-lang/crates.io-index"
5929checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
59305911
5931[[package]]5912[[package]]
5932name = "scopeguard"5913name = "scopeguard"
59455926
5946[[package]]5927[[package]]
5947name = "scroll_derive"5928name = "scroll_derive"
5948version = "0.10.4"5929version = "0.10.5"
5949source = "registry+https://github.com/rust-lang/crates.io-index"5930source = "registry+https://github.com/rust-lang/crates.io-index"
5950checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d"5931checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0"
5951dependencies = [5932dependencies = [
5952 "proc-macro2",5933 "proc-macro2",
5953 "quote",5934 "quote",
59665947
5967[[package]]5948[[package]]
5968name = "secrecy"5949name = "secrecy"
5969version = "0.6.0"5950version = "0.7.0"
5970source = "registry+https://github.com/rust-lang/crates.io-index"5951source = "registry+https://github.com/rust-lang/crates.io-index"
5971checksum = "9182278ed645df3477a9c27bfee0621c621aa16f6972635f7f795dae3d81070f"5952checksum = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
5972dependencies = [5953dependencies = [
5973 "zeroize",5954 "zeroize",
5974]5955]
60135994
6014[[package]]5995[[package]]
6015name = "serde"5996name = "serde"
6016version = "1.0.118"5997version = "1.0.123"
6017source = "registry+https://github.com/rust-lang/crates.io-index"5998source = "registry+https://github.com/rust-lang/crates.io-index"
6018checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"5999checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
6019dependencies = [6000dependencies = [
6020 "serde_derive",6001 "serde_derive",
6021]6002]
60226003
6023[[package]]6004[[package]]
6024name = "serde_derive"6005name = "serde_derive"
6025version = "1.0.118"6006version = "1.0.123"
6026source = "registry+https://github.com/rust-lang/crates.io-index"6007source = "registry+https://github.com/rust-lang/crates.io-index"
6027checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"6008checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
6028dependencies = [6009dependencies = [
6029 "proc-macro2",6010 "proc-macro2",
6030 "quote",6011 "quote",
60336014
6034[[package]]6015[[package]]
6035name = "serde_json"6016name = "serde_json"
6036version = "1.0.60"6017version = "1.0.61"
6037source = "registry+https://github.com/rust-lang/crates.io-index"6018source = "registry+https://github.com/rust-lang/crates.io-index"
6038checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"6019checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a"
6039dependencies = [6020dependencies = [
6040 "itoa",6021 "itoa",
6041 "ryu",6022 "ryu",
61066087
6107[[package]]6088[[package]]
6108name = "sharded-slab"6089name = "sharded-slab"
6109version = "0.1.0"6090version = "0.1.1"
6110source = "registry+https://github.com/rust-lang/crates.io-index"6091source = "registry+https://github.com/rust-lang/crates.io-index"
6111checksum = "7b4921be914e16899a80adefb821f8ddb7974e3f1250223575a44ed994882127"6092checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
6112dependencies = [6093dependencies = [
6113 "lazy_static",6094 "lazy_static",
6114 "loom",
6115]6095]
61166096
6117[[package]]6097[[package]]
61226102
6123[[package]]6103[[package]]
6124name = "signal-hook"6104name = "signal-hook"
6125version = "0.1.16"6105version = "0.1.17"
6126source = "registry+https://github.com/rust-lang/crates.io-index"6106source = "registry+https://github.com/rust-lang/crates.io-index"
6127checksum = "604508c1418b99dfe1925ca9224829bb2a8a9a04dda655cc01fcad46f4ab05ed"6107checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729"
6128dependencies = [6108dependencies = [
6129 "libc",6109 "libc",
6130 "signal-hook-registry",6110 "signal-hook-registry",
6131]6111]
61326112
6133[[package]]6113[[package]]
6134name = "signal-hook-registry"6114name = "signal-hook-registry"
6135version = "1.2.2"6115version = "1.3.0"
6136source = "registry+https://github.com/rust-lang/crates.io-index"6116source = "registry+https://github.com/rust-lang/crates.io-index"
6137checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab"6117checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
6138dependencies = [6118dependencies = [
6139 "libc",6119 "libc",
6140]6120]
61416121
6142[[package]]6122[[package]]
6143name = "signature"6123name = "signature"
6144version = "1.2.2"6124version = "1.3.0"
6145source = "registry+https://github.com/rust-lang/crates.io-index"6125source = "registry+https://github.com/rust-lang/crates.io-index"
6146checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210"6126checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68"
6127
6128[[package]]
6129name = "simba"
6130version = "0.1.5"
6131source = "registry+https://github.com/rust-lang/crates.io-index"
6132checksum = "fb931b1367faadea6b1ab1c306a860ec17aaa5fa39f367d0c744e69d971a1fb2"
6133dependencies = [
6134 "approx",
6135 "num-complex",
6136 "num-traits",
6137 "paste",
6138]
61476139
6148[[package]]6140[[package]]
6149name = "slab"6141name = "slab"
6150version = "0.4.2"6142version = "0.4.2"
6151source = "registry+https://github.com/rust-lang/crates.io-index"6143source = "registry+https://github.com/rust-lang/crates.io-index"
6152checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"6144checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
6153
6154[[package]]
6155name = "slog"
6156version = "2.7.0"
6157source = "registry+https://github.com/rust-lang/crates.io-index"
6158checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
6159dependencies = [
6160 "erased-serde",
6161]
6162
6163[[package]]
6164name = "slog-json"
6165version = "2.3.0"
6166source = "registry+https://github.com/rust-lang/crates.io-index"
6167checksum = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a"
6168dependencies = [
6169 "chrono",
6170 "erased-serde",
6171 "serde",
6172 "serde_json",
6173 "slog",
6174]
6175
6176[[package]]
6177name = "slog-scope"
6178version = "4.3.0"
6179source = "registry+https://github.com/rust-lang/crates.io-index"
6180checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6"
6181dependencies = [
6182 "arc-swap",
6183 "lazy_static",
6184 "slog",
6185]
6186
6187[[package]]
6188name = "slog_derive"
6189version = "0.2.0"
6190source = "registry+https://github.com/rust-lang/crates.io-index"
6191checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b"
6192dependencies = [
6193 "proc-macro2",
6194 "quote",
6195 "syn",
6196]
61976145
6198[[package]]6146[[package]]
6199name = "smallvec"6147name = "smallvec"
6200version = "0.6.13"6148version = "0.6.14"
6201source = "registry+https://github.com/rust-lang/crates.io-index"6149source = "registry+https://github.com/rust-lang/crates.io-index"
6202checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"6150checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
6203dependencies = [6151dependencies = [
6204 "maybe-uninit",6152 "maybe-uninit",
6205]6153]
62066154
6207[[package]]6155[[package]]
6208name = "smallvec"6156name = "smallvec"
6209version = "1.5.1"6157version = "1.6.1"
6210source = "registry+https://github.com/rust-lang/crates.io-index"6158source = "registry+https://github.com/rust-lang/crates.io-index"
6211checksum = "ae524f056d7d770e174287294f562e95044c68e88dec909a00d2094805db9d75"6159checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
62126160
6213[[package]]6161[[package]]
6214name = "snow"6162name = "snow"
6225 "rustc_version",6173 "rustc_version",
6226 "sha2 0.9.2",6174 "sha2 0.9.2",
6227 "subtle 2.4.0",6175 "subtle 2.4.0",
6228 "x25519-dalek 1.1.0",6176 "x25519-dalek",
6229]6177]
62306178
6231[[package]]6179[[package]]
6232name = "socket2"6180name = "socket2"
6233version = "0.3.18"6181version = "0.3.19"
6234source = "registry+https://github.com/rust-lang/crates.io-index"6182source = "registry+https://github.com/rust-lang/crates.io-index"
6235checksum = "97e0e9fd577458a4f61fb91fcb559ea2afecc54c934119421f9f5d3d5b1a1057"6183checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
6236dependencies = [6184dependencies = [
6237 "cfg-if 1.0.0",6185 "cfg-if 1.0.0",
6238 "libc",6186 "libc",
6248 "base64 0.12.3",6196 "base64 0.12.3",
6249 "bytes 0.5.6",6197 "bytes 0.5.6",
6250 "flate2",6198 "flate2",
6251 "futures 0.3.8",6199 "futures 0.3.12",
6252 "httparse",6200 "httparse",
6253 "log",6201 "log",
6254 "rand 0.7.3",6202 "rand 0.7.3",
62576205
6258[[package]]6206[[package]]
6259name = "sp-allocator"6207name = "sp-allocator"
6260version = "2.0.0"6208version = "2.0.1"
6261source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6209source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6262dependencies = [6210dependencies = [
6263 "derive_more",
6264 "log",6211 "log",
6265 "sp-core",6212 "sp-core",
6266 "sp-std",6213 "sp-std",
6267 "sp-wasm-interface",6214 "sp-wasm-interface",
6215 "thiserror",
6268]6216]
62696217
6270[[package]]6218[[package]]
6271name = "sp-api"6219name = "sp-api"
6272version = "2.0.0"6220version = "2.0.1"
6273source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6221source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6274dependencies = [6222dependencies = [
6275 "hash-db",6223 "hash-db",
6276 "parity-scale-codec",6224 "parity-scale-codec",
6280 "sp-state-machine",6228 "sp-state-machine",
6281 "sp-std",6229 "sp-std",
6282 "sp-version",6230 "sp-version",
6231 "thiserror",
6283]6232]
62846233
6285[[package]]6234[[package]]
6286name = "sp-api-proc-macro"6235name = "sp-api-proc-macro"
6287version = "2.0.0"6236version = "2.0.1"
6288source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6237source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6289dependencies = [6238dependencies = [
6290 "blake2-rfc",6239 "blake2-rfc",
6291 "proc-macro-crate",6240 "proc-macro-crate",
62966245
6297[[package]]6246[[package]]
6298name = "sp-application-crypto"6247name = "sp-application-crypto"
6299version = "2.0.0"6248version = "2.0.1"
6300source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6249source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6301dependencies = [6250dependencies = [
6302 "parity-scale-codec",6251 "parity-scale-codec",
6303 "serde",6252 "serde",
63086257
6309[[package]]6258[[package]]
6310name = "sp-arithmetic"6259name = "sp-arithmetic"
6311version = "2.0.0"6260version = "2.0.1"
6312source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6261source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6313dependencies = [6262dependencies = [
6314 "integer-sqrt",6263 "integer-sqrt",
6315 "num-traits",6264 "num-traits",
63216270
6322[[package]]6271[[package]]
6323name = "sp-authorship"6272name = "sp-authorship"
6324version = "2.0.0"6273version = "2.0.1"
6325source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6274source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6326dependencies = [6275dependencies = [
6327 "parity-scale-codec",6276 "parity-scale-codec",
6328 "sp-inherents",6277 "sp-inherents",
63326281
6333[[package]]6282[[package]]
6334name = "sp-block-builder"6283name = "sp-block-builder"
6335version = "2.0.0"6284version = "2.0.1"
6336source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6285source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6337dependencies = [6286dependencies = [
6338 "parity-scale-codec",6287 "parity-scale-codec",
6339 "sp-api",6288 "sp-api",
63446293
6345[[package]]6294[[package]]
6346name = "sp-blockchain"6295name = "sp-blockchain"
6347version = "2.0.0"6296version = "2.0.1"
6348source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6297source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6349dependencies = [6298dependencies = [
6350 "derive_more",6299 "futures 0.3.12",
6351 "log",6300 "log",
6352 "lru 0.4.3",6301 "lru",
6353 "parity-scale-codec",6302 "parity-scale-codec",
6354 "parking_lot 0.10.2",6303 "parking_lot 0.11.1",
6355 "sp-block-builder",6304 "sp-api",
6356 "sp-consensus",6305 "sp-consensus",
6357 "sp-database",6306 "sp-database",
6358 "sp-runtime",6307 "sp-runtime",
6359 "sp-state-machine",6308 "sp-state-machine",
6309 "thiserror",
6360]6310]
63616311
6362[[package]]6312[[package]]
6363name = "sp-chain-spec"6313name = "sp-chain-spec"
6364version = "2.0.0"6314version = "2.0.1"
6365source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6315source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6366dependencies = [6316dependencies = [
6367 "serde",6317 "serde",
6368 "serde_json",6318 "serde_json",
6369]6319]
63706320
6371[[package]]6321[[package]]
6372name = "sp-consensus"6322name = "sp-consensus"
6373version = "0.8.0"6323version = "0.8.1"
6374source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6324source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6375dependencies = [6325dependencies = [
6376 "derive_more",
6377 "futures 0.3.8",6326 "futures 0.3.12",
6378 "futures-timer 3.0.2",6327 "futures-timer 3.0.2",
6379 "libp2p",6328 "libp2p",
6380 "log",6329 "log",
6381 "parity-scale-codec",6330 "parity-scale-codec",
6382 "parking_lot 0.10.2",6331 "parking_lot 0.11.1",
6383 "serde",6332 "serde",
6384 "sp-api",6333 "sp-api",
6385 "sp-core",6334 "sp-core",
6391 "sp-utils",6340 "sp-utils",
6392 "sp-version",6341 "sp-version",
6393 "substrate-prometheus-endpoint",6342 "substrate-prometheus-endpoint",
6343 "thiserror",
6394 "wasm-timer",6344 "wasm-timer",
6395]6345]
63966346
6397[[package]]6347[[package]]
6398name = "sp-consensus-aura"6348name = "sp-consensus-aura"
6399version = "0.8.0"6349version = "0.8.1"
6400source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6350source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6401dependencies = [6351dependencies = [
6402 "parity-scale-codec",6352 "parity-scale-codec",
6403 "sp-api",6353 "sp-api",
6408 "sp-timestamp",6358 "sp-timestamp",
6409]6359]
6360
6361[[package]]
6362name = "sp-consensus-babe"
6363version = "0.8.1"
6364source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6365dependencies = [
6366 "merlin",
6367 "parity-scale-codec",
6368 "sp-api",
6369 "sp-application-crypto",
6370 "sp-consensus",
6371 "sp-consensus-slots",
6372 "sp-consensus-vrf",
6373 "sp-core",
6374 "sp-inherents",
6375 "sp-keystore",
6376 "sp-runtime",
6377 "sp-std",
6378 "sp-timestamp",
6379]
64106380
6411[[package]]6381[[package]]
6412name = "sp-consensus-slots"6382name = "sp-consensus-slots"
6413version = "0.8.0"6383version = "0.8.1"
6414source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6384source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6415dependencies = [6385dependencies = [
6416 "parity-scale-codec",6386 "parity-scale-codec",
6417 "sp-runtime",6387 "sp-runtime",
6418]6388]
6389
6390[[package]]
6391name = "sp-consensus-vrf"
6392version = "0.8.1"
6393source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6394dependencies = [
6395 "parity-scale-codec",
6396 "schnorrkel",
6397 "sp-core",
6398 "sp-runtime",
6399 "sp-std",
6400]
64196401
6420[[package]]6402[[package]]
6421name = "sp-core"6403name = "sp-core"
6422version = "2.0.0"6404version = "2.0.1"
6423source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6405source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6424dependencies = [6406dependencies = [
6425 "base58",6407 "base58",
6426 "blake2-rfc",6408 "blake2-rfc",
6427 "byteorder 1.3.4",6409 "byteorder",
6428 "derive_more",
6429 "dyn-clonable",6410 "dyn-clonable",
6430 "ed25519-dalek",6411 "ed25519-dalek",
6431 "futures 0.3.8",6412 "futures 0.3.12",
6432 "hash-db",6413 "hash-db",
6433 "hash256-std-hasher",6414 "hash256-std-hasher",
6434 "hex",6415 "hex",
6440 "num-traits",6421 "num-traits",
6441 "parity-scale-codec",6422 "parity-scale-codec",
6442 "parity-util-mem",6423 "parity-util-mem",
6443 "parking_lot 0.10.2",6424 "parking_lot 0.11.1",
6444 "primitive-types",6425 "primitive-types",
6445 "rand 0.7.3",6426 "rand 0.7.3",
6446 "regex",6427 "regex",
6447 "schnorrkel",6428 "schnorrkel",
6448 "secrecy",6429 "secrecy",
6449 "serde",6430 "serde",
6450 "sha2 0.8.2",6431 "sha2 0.9.2",
6451 "sp-debug-derive",6432 "sp-debug-derive",
6452 "sp-externalities",6433 "sp-externalities",
6453 "sp-runtime-interface",6434 "sp-runtime-interface",
6454 "sp-std",6435 "sp-std",
6455 "sp-storage",6436 "sp-storage",
6456 "substrate-bip39",6437 "substrate-bip39",
6438 "thiserror",
6457 "tiny-bip39",6439 "tiny-bip39",
6458 "tiny-keccak",6440 "tiny-keccak",
6459 "twox-hash",6441 "twox-hash",
64636445
6464[[package]]6446[[package]]
6465name = "sp-database"6447name = "sp-database"
6466version = "2.0.0"6448version = "2.0.1"
6467source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6449source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6468dependencies = [6450dependencies = [
6469 "kvdb",6451 "kvdb",
6470 "parking_lot 0.10.2",6452 "parking_lot 0.11.1",
6471]6453]
64726454
6473[[package]]6455[[package]]
6474name = "sp-debug-derive"6456name = "sp-debug-derive"
6475version = "2.0.0"6457version = "2.0.1"
6476source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6458source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6477dependencies = [6459dependencies = [
6478 "proc-macro2",6460 "proc-macro2",
6479 "quote",6461 "quote",
64826464
6483[[package]]6465[[package]]
6484name = "sp-externalities"6466name = "sp-externalities"
6485version = "0.8.0"6467version = "0.8.1"
6486source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6468source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6487dependencies = [6469dependencies = [
6488 "environmental",6470 "environmental",
6489 "parity-scale-codec",6471 "parity-scale-codec",
64936475
6494[[package]]6476[[package]]
6495name = "sp-finality-grandpa"6477name = "sp-finality-grandpa"
6496version = "2.0.0"6478version = "2.0.1"
6497source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6479source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6498dependencies = [6480dependencies = [
6499 "finality-grandpa",6481 "finality-grandpa",
6500 "log",6482 "log",
6503 "sp-api",6485 "sp-api",
6504 "sp-application-crypto",6486 "sp-application-crypto",
6505 "sp-core",6487 "sp-core",
6488 "sp-keystore",
6506 "sp-runtime",6489 "sp-runtime",
6507 "sp-std",6490 "sp-std",
6508]6491]
6509
6510[[package]]
6511name = "sp-finality-tracker"
6512version = "2.0.0"
6513source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"
6514dependencies = [
6515 "parity-scale-codec",
6516 "sp-inherents",
6517 "sp-std",
6518]
65196492
6520[[package]]6493[[package]]
6521name = "sp-inherents"6494name = "sp-inherents"
6522version = "2.0.0"6495version = "2.0.1"
6523source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6496source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6524dependencies = [6497dependencies = [
6525 "derive_more",
6526 "parity-scale-codec",6498 "parity-scale-codec",
6527 "parking_lot 0.10.2",6499 "parking_lot 0.11.1",
6528 "sp-core",6500 "sp-core",
6529 "sp-std",6501 "sp-std",
6502 "thiserror",
6530]6503]
65316504
6532[[package]]6505[[package]]
6533name = "sp-io"6506name = "sp-io"
6534version = "2.0.0"6507version = "2.0.1"
6535source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6508source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6536dependencies = [6509dependencies = [
6537 "futures 0.3.8",6510 "futures 0.3.12",
6538 "hash-db",6511 "hash-db",
6539 "libsecp256k1",6512 "libsecp256k1",
6540 "log",6513 "log",
6541 "parity-scale-codec",6514 "parity-scale-codec",
6542 "parking_lot 0.10.2",6515 "parking_lot 0.11.1",
6543 "sp-core",6516 "sp-core",
6544 "sp-externalities",6517 "sp-externalities",
6518 "sp-keystore",
6545 "sp-runtime-interface",6519 "sp-runtime-interface",
6546 "sp-state-machine",6520 "sp-state-machine",
6547 "sp-std",6521 "sp-std",
65546528
6555[[package]]6529[[package]]
6556name = "sp-keyring"6530name = "sp-keyring"
6557version = "2.0.0"6531version = "2.0.1"
6558source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6532source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6559dependencies = [6533dependencies = [
6560 "lazy_static",6534 "lazy_static",
6561 "sp-core",6535 "sp-core",
6562 "sp-runtime",6536 "sp-runtime",
6563 "strum",6537 "strum",
6564]6538]
6539
6540[[package]]
6541name = "sp-keystore"
6542version = "0.8.0"
6543source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6544dependencies = [
6545 "async-trait",
6546 "derive_more",
6547 "futures 0.3.12",
6548 "merlin",
6549 "parity-scale-codec",
6550 "parking_lot 0.11.1",
6551 "schnorrkel",
6552 "serde",
6553 "sp-core",
6554 "sp-externalities",
6555]
65656556
6566[[package]]6557[[package]]
6567name = "sp-offchain"6558name = "sp-offchain"
6568version = "2.0.0"6559version = "2.0.1"
6569source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6560source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6570dependencies = [6561dependencies = [
6571 "sp-api",6562 "sp-api",
6572 "sp-core",6563 "sp-core",
65756566
6576[[package]]6567[[package]]
6577name = "sp-panic-handler"6568name = "sp-panic-handler"
6578version = "2.0.0"6569version = "2.0.1"
6579source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6570source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6580dependencies = [6571dependencies = [
6581 "backtrace",6572 "backtrace",
6582 "log",
6583]6573]
65846574
6585[[package]]6575[[package]]
6586name = "sp-rpc"6576name = "sp-rpc"
6587version = "2.0.0"6577version = "2.0.1"
6588source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6578source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6589dependencies = [6579dependencies = [
6590 "serde",6580 "serde",
6591 "sp-core",6581 "sp-core",
6592]6582]
65936583
6594[[package]]6584[[package]]
6595name = "sp-runtime"6585name = "sp-runtime"
6596version = "2.0.0"6586version = "2.0.1"
6597source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6587source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6598dependencies = [6588dependencies = [
6599 "either",6589 "either",
6600 "hash256-std-hasher",6590 "hash256-std-hasher",
6601 "impl-trait-for-tuples",6591 "impl-trait-for-tuples 0.2.0",
6602 "log",6592 "log",
6603 "parity-scale-codec",6593 "parity-scale-codec",
6604 "parity-util-mem",6594 "parity-util-mem",
6608 "sp-application-crypto",6598 "sp-application-crypto",
6609 "sp-arithmetic",6599 "sp-arithmetic",
6610 "sp-core",6600 "sp-core",
6611 "sp-inherents",
6612 "sp-io",6601 "sp-io",
6613 "sp-std",6602 "sp-std",
6614]6603]
66156604
6616[[package]]6605[[package]]
6617name = "sp-runtime-interface"6606name = "sp-runtime-interface"
6618version = "2.0.0"6607version = "2.0.1"
6619source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6608source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6620dependencies = [6609dependencies = [
6610 "impl-trait-for-tuples 0.2.0",
6621 "parity-scale-codec",6611 "parity-scale-codec",
6622 "primitive-types",6612 "primitive-types",
6623 "sp-externalities",6613 "sp-externalities",
66316621
6632[[package]]6622[[package]]
6633name = "sp-runtime-interface-proc-macro"6623name = "sp-runtime-interface-proc-macro"
6634version = "2.0.0"6624version = "2.0.1"
6635source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6625source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6636dependencies = [6626dependencies = [
6637 "Inflector",6627 "Inflector",
6638 "proc-macro-crate",6628 "proc-macro-crate",
66436633
6644[[package]]6634[[package]]
6645name = "sp-sandbox"6635name = "sp-sandbox"
6646version = "0.8.0"6636version = "0.8.1"
6647source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6637source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6648dependencies = [6638dependencies = [
6649 "parity-scale-codec",6639 "parity-scale-codec",
6650 "sp-core",6640 "sp-core",
66566646
6657[[package]]6647[[package]]
6658name = "sp-serializer"6648name = "sp-serializer"
6659version = "2.0.0"6649version = "2.0.1"
6660source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6650source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6661dependencies = [6651dependencies = [
6662 "serde",6652 "serde",
6663 "serde_json",6653 "serde_json",
6664]6654]
66656655
6666[[package]]6656[[package]]
6667name = "sp-session"6657name = "sp-session"
6668version = "2.0.0"6658version = "2.0.1"
6669source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6659source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6670dependencies = [6660dependencies = [
6671 "parity-scale-codec",6661 "parity-scale-codec",
6672 "sp-api",6662 "sp-api",
66786668
6679[[package]]6669[[package]]
6680name = "sp-staking"6670name = "sp-staking"
6681version = "2.0.0"6671version = "2.0.1"
6682source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6672source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6683dependencies = [6673dependencies = [
6684 "parity-scale-codec",6674 "parity-scale-codec",
6685 "sp-runtime",6675 "sp-runtime",
66886678
6689[[package]]6679[[package]]
6690name = "sp-state-machine"6680name = "sp-state-machine"
6691version = "0.8.0"6681version = "0.8.1"
6692source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6682source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6693dependencies = [6683dependencies = [
6694 "hash-db",6684 "hash-db",
6695 "log",6685 "log",
6696 "num-traits",6686 "num-traits",
6697 "parity-scale-codec",6687 "parity-scale-codec",
6698 "parking_lot 0.10.2",6688 "parking_lot 0.11.1",
6699 "rand 0.7.3",6689 "rand 0.7.3",
6700 "smallvec 1.5.1",6690 "smallvec 1.6.1",
6701 "sp-core",6691 "sp-core",
6702 "sp-externalities",6692 "sp-externalities",
6703 "sp-panic-handler",6693 "sp-panic-handler",
6704 "sp-std",6694 "sp-std",
6705 "sp-trie",6695 "sp-trie",
6696 "thiserror",
6706 "trie-db",6697 "trie-db",
6707 "trie-root",6698 "trie-root",
6708]6699]
67096700
6710[[package]]6701[[package]]
6711name = "sp-std"6702name = "sp-std"
6712version = "2.0.0"6703version = "2.0.1"
6713source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6704source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
67146705
6715[[package]]6706[[package]]
6716name = "sp-storage"6707name = "sp-storage"
6717version = "2.0.0"6708version = "2.0.1"
6718source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6709source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6719dependencies = [6710dependencies = [
6720 "impl-serde",6711 "impl-serde",
6721 "parity-scale-codec",6712 "parity-scale-codec",
6725 "sp-std",6716 "sp-std",
6726]6717]
6718
6719[[package]]
6720name = "sp-tasks"
6721version = "2.0.0"
6722source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6723dependencies = [
6724 "log",
6725 "sp-core",
6726 "sp-externalities",
6727 "sp-io",
6728 "sp-runtime-interface",
6729 "sp-std",
6730]
67276731
6728[[package]]6732[[package]]
6729name = "sp-timestamp"6733name = "sp-timestamp"
6730version = "2.0.0"6734version = "2.0.1"
6731source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6735source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6732dependencies = [6736dependencies = [
6733 "impl-trait-for-tuples",6737 "impl-trait-for-tuples 0.2.0",
6734 "parity-scale-codec",6738 "parity-scale-codec",
6735 "sp-api",6739 "sp-api",
6736 "sp-inherents",6740 "sp-inherents",
67416745
6742[[package]]6746[[package]]
6743name = "sp-tracing"6747name = "sp-tracing"
6744version = "2.0.0"6748version = "2.0.1"
6745source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6749source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6746dependencies = [6750dependencies = [
6747 "log",6751 "log",
6748 "parity-scale-codec",6752 "parity-scale-codec",
67546758
6755[[package]]6759[[package]]
6756name = "sp-transaction-pool"6760name = "sp-transaction-pool"
6757version = "2.0.0"6761version = "2.0.1"
6758source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6762source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6759dependencies = [6763dependencies = [
6760 "derive_more",6764 "derive_more",
6761 "futures 0.3.8",6765 "futures 0.3.12",
6762 "log",6766 "log",
6763 "parity-scale-codec",6767 "parity-scale-codec",
6764 "serde",6768 "serde",
6765 "sp-api",6769 "sp-api",
6766 "sp-blockchain",6770 "sp-blockchain",
6767 "sp-runtime",6771 "sp-runtime",
6772 "thiserror",
6768]6773]
67696774
6770[[package]]6775[[package]]
6771name = "sp-trie"6776name = "sp-trie"
6772version = "2.0.0"6777version = "2.0.1"
6773source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6778source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6774dependencies = [6779dependencies = [
6775 "hash-db",6780 "hash-db",
6776 "memory-db",6781 "memory-db",
67836788
6784[[package]]6789[[package]]
6785name = "sp-utils"6790name = "sp-utils"
6786version = "2.0.0"6791version = "2.0.1"
6787source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6792source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6788dependencies = [6793dependencies = [
6789 "futures 0.3.8",6794 "futures 0.3.12",
6790 "futures-core",6795 "futures-core",
6791 "futures-timer 3.0.2",6796 "futures-timer 3.0.2",
6792 "lazy_static",6797 "lazy_static",
67956800
6796[[package]]6801[[package]]
6797name = "sp-version"6802name = "sp-version"
6798version = "2.0.0"6803version = "2.0.1"
6799source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6804source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6800dependencies = [6805dependencies = [
6801 "impl-serde",6806 "impl-serde",
6802 "parity-scale-codec",6807 "parity-scale-codec",
68076812
6808[[package]]6813[[package]]
6809name = "sp-wasm-interface"6814name = "sp-wasm-interface"
6810version = "2.0.0"6815version = "2.0.1"
6811source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6816source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6812dependencies = [6817dependencies = [
6813 "impl-trait-for-tuples",6818 "impl-trait-for-tuples 0.2.0",
6814 "parity-scale-codec",6819 "parity-scale-codec",
6815 "sp-std",6820 "sp-std",
6816 "wasmi",6821 "wasmi",
68366841
6837[[package]]6842[[package]]
6838name = "statrs"6843name = "statrs"
6839version = "0.10.0"6844version = "0.12.0"
6840source = "registry+https://github.com/rust-lang/crates.io-index"6845source = "registry+https://github.com/rust-lang/crates.io-index"
6841checksum = "10102ac8d55e35db2b3fafc26f81ba8647da2e15879ab686a67e6d19af2685e8"6846checksum = "cce16f6de653e88beca7bd13780d08e09d4489dbca1f9210e041bc4852481382"
6842dependencies = [6847dependencies = [
6843 "rand 0.5.6",6848 "rand 0.7.3",
6844]6849]
68456850
6846[[package]]6851[[package]]
6919source = "registry+https://github.com/rust-lang/crates.io-index"6924source = "registry+https://github.com/rust-lang/crates.io-index"
6920checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236"6925checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236"
6921dependencies = [6926dependencies = [
6922 "hmac",6927 "hmac 0.7.1",
6923 "pbkdf2",6928 "pbkdf2 0.3.0",
6924 "schnorrkel",6929 "schnorrkel",
6925 "sha2 0.8.2",6930 "sha2 0.8.2",
6926 "zeroize",6931 "zeroize",
6927]6932]
69286933
6929[[package]]6934[[package]]
6930name = "substrate-build-script-utils"6935name = "substrate-build-script-utils"
6931version = "2.0.0"6936version = "2.0.1"
6932source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6937source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6933dependencies = [6938dependencies = [
6934 "platforms",6939 "platforms",
6935]6940]
69366941
6937[[package]]6942[[package]]
6938name = "substrate-frame-rpc-system"6943name = "substrate-frame-rpc-system"
6939version = "2.0.0"6944version = "2.0.1"
6940source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6945source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6941dependencies = [6946dependencies = [
6942 "frame-system-rpc-runtime-api",6947 "frame-system-rpc-runtime-api",
6943 "futures 0.3.8",6948 "futures 0.3.12",
6944 "jsonrpc-core",6949 "jsonrpc-core",
6945 "jsonrpc-core-client",6950 "jsonrpc-core-client",
6946 "jsonrpc-derive",6951 "jsonrpc-derive",
69596964
6960[[package]]6965[[package]]
6961name = "substrate-prometheus-endpoint"6966name = "substrate-prometheus-endpoint"
6962version = "0.8.0"6967version = "0.8.1"
6963source = "git+https://github.com/usetech-llc/substrate.git?branch=release_flexi#59646c902484d9c5e8933a80cbed551228b81274"6968source = "git+https://github.com/usetech-llc/substrate.git?branch=unique#0e070672cf7a7bec72fb3f26188915cfb43c440f"
6964dependencies = [6969dependencies = [
6965 "async-std",6970 "async-std",
6966 "derive_more",6971 "derive_more",
69916996
6992[[package]]6997[[package]]
6993name = "syn"6998name = "syn"
6994version = "1.0.54"6999version = "1.0.60"
6995source = "registry+https://github.com/rust-lang/crates.io-index"7000source = "registry+https://github.com/rust-lang/crates.io-index"
6996checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44"7001checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
6997dependencies = [7002dependencies = [
6998 "proc-macro2",7003 "proc-macro2",
6999 "quote",7004 "quote",
70267031
7027[[package]]7032[[package]]
7028name = "tempfile"7033name = "tempfile"
7029version = "3.1.0"7034version = "3.2.0"
7030source = "registry+https://github.com/rust-lang/crates.io-index"7035source = "registry+https://github.com/rust-lang/crates.io-index"
7031checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"7036checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
7032dependencies = [7037dependencies = [
7033 "cfg-if 0.1.10",7038 "cfg-if 1.0.0",
7034 "libc",7039 "libc",
7035 "rand 0.7.3",7040 "rand 0.8.3",
7036 "redox_syscall",7041 "redox_syscall 0.2.4",
7037 "remove_dir_all",7042 "remove_dir_all",
7038 "winapi 0.3.9",7043 "winapi 0.3.9",
7039]7044]
70587063
7059[[package]]7064[[package]]
7060name = "thiserror"7065name = "thiserror"
7061version = "1.0.22"7066version = "1.0.23"
7062source = "registry+https://github.com/rust-lang/crates.io-index"7067source = "registry+https://github.com/rust-lang/crates.io-index"
7063checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"7068checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
7064dependencies = [7069dependencies = [
7065 "thiserror-impl",7070 "thiserror-impl",
7066]7071]
70677072
7068[[package]]7073[[package]]
7069name = "thiserror-impl"7074name = "thiserror-impl"
7070version = "1.0.22"7075version = "1.0.23"
7071source = "registry+https://github.com/rust-lang/crates.io-index"7076source = "registry+https://github.com/rust-lang/crates.io-index"
7072checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"7077checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
7073dependencies = [7078dependencies = [
7074 "proc-macro2",7079 "proc-macro2",
7075 "quote",7080 "quote",
70787083
7079[[package]]7084[[package]]
7080name = "thread_local"7085name = "thread_local"
7081version = "1.0.1"7086version = "1.1.2"
7082source = "registry+https://github.com/rust-lang/crates.io-index"7087source = "registry+https://github.com/rust-lang/crates.io-index"
7083checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"7088checksum = "d8208a331e1cb318dd5bd76951d2b8fc48ca38a69f5f4e4af1b6a9f8c6236915"
7084dependencies = [7089dependencies = [
7085 "lazy_static",7090 "once_cell",
7086]7091]
70877092
7088[[package]]7093[[package]]
71077112
7108[[package]]7113[[package]]
7109name = "tiny-bip39"7114name = "tiny-bip39"
7110version = "0.7.3"7115version = "0.8.0"
7111source = "registry+https://github.com/rust-lang/crates.io-index"7116source = "registry+https://github.com/rust-lang/crates.io-index"
7112checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2"7117checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8"
7113dependencies = [7118dependencies = [
7114 "failure",7119 "anyhow",
7115 "hmac",7120 "hmac 0.8.1",
7116 "once_cell 1.5.2",7121 "once_cell",
7117 "pbkdf2",7122 "pbkdf2 0.4.0",
7118 "rand 0.7.3",7123 "rand 0.7.3",
7119 "rustc-hash",7124 "rustc-hash",
7120 "sha2 0.8.2",7125 "sha2 0.9.2",
7126 "thiserror",
7121 "unicode-normalization",7127 "unicode-normalization",
7128 "zeroize",
7122]7129]
71237130
7124[[package]]7131[[package]]
71327139
7133[[package]]7140[[package]]
7134name = "tinyvec"7141name = "tinyvec"
7135version = "1.1.0"7142version = "1.1.1"
7136source = "registry+https://github.com/rust-lang/crates.io-index"7143source = "registry+https://github.com/rust-lang/crates.io-index"
7137checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"7144checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
7138dependencies = [7145dependencies = [
7139 "tinyvec_macros",7146 "tinyvec_macros",
7140]7147]
7157 "num_cpus",7164 "num_cpus",
7158 "tokio-codec",7165 "tokio-codec",
7159 "tokio-current-thread",7166 "tokio-current-thread",
7160 "tokio-executor 0.1.10",7167 "tokio-executor",
7161 "tokio-fs",7168 "tokio-fs",
7162 "tokio-io",7169 "tokio-io",
7163 "tokio-reactor",7170 "tokio-reactor",
7164 "tokio-sync 0.1.8",7171 "tokio-sync",
7165 "tokio-tcp",7172 "tokio-tcp",
7166 "tokio-threadpool",7173 "tokio-threadpool",
7167 "tokio-timer",7174 "tokio-timer",
7220checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"7227checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
7221dependencies = [7228dependencies = [
7222 "futures 0.1.30",7229 "futures 0.1.30",
7223 "tokio-executor 0.1.10",7230 "tokio-executor",
7224]7231]
72257232
7226[[package]]7233[[package]]
7233 "futures 0.1.30",7240 "futures 0.1.30",
7234]7241]
7235
7236[[package]]
7237name = "tokio-executor"
7238version = "0.2.0-alpha.6"
7239source = "registry+https://github.com/rust-lang/crates.io-index"
7240checksum = "9ee9ceecf69145923834ea73f32ba40c790fd877b74a7817dd0b089f1eb9c7c8"
7241dependencies = [
7242 "futures-util-preview",
7243 "lazy_static",
7244 "tokio-sync 0.2.0-alpha.6",
7245]
72467242
7247[[package]]7243[[package]]
7248name = "tokio-fs"7244name = "tokio-fs"
7293 "num_cpus",7289 "num_cpus",
7294 "parking_lot 0.9.0",7290 "parking_lot 0.9.0",
7295 "slab",7291 "slab",
7296 "tokio-executor 0.1.10",7292 "tokio-executor",
7297 "tokio-io",7293 "tokio-io",
7298 "tokio-sync 0.1.8",7294 "tokio-sync",
7299]7295]
73007296
7301[[package]]7297[[package]]
7305checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"7301checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"
7306dependencies = [7302dependencies = [
7307 "futures-core",7303 "futures-core",
7308 "rustls",7304 "rustls 0.18.1",
7309 "tokio 0.2.24",7305 "tokio 0.2.24",
7310 "webpki",7306 "webpki",
7311]7307]
7329 "futures 0.1.30",7325 "futures 0.1.30",
7330]7326]
7331
7332[[package]]
7333name = "tokio-sync"
7334version = "0.2.0-alpha.6"
7335source = "registry+https://github.com/rust-lang/crates.io-index"
7336checksum = "4f1aaeb685540f7407ea0e27f1c9757d258c7c6bf4e3eb19da6fc59b747239d2"
7337dependencies = [
7338 "fnv",
7339 "futures-core-preview",
7340 "futures-util-preview",
7341]
73427327
7343[[package]]7328[[package]]
7344name = "tokio-tcp"7329name = "tokio-tcp"
7368 "log",7353 "log",
7369 "num_cpus",7354 "num_cpus",
7370 "slab",7355 "slab",
7371 "tokio-executor 0.1.10",7356 "tokio-executor",
7372]7357]
73737358
7374[[package]]7359[[package]]
7380 "crossbeam-utils 0.7.2",7365 "crossbeam-utils 0.7.2",
7381 "futures 0.1.30",7366 "futures 0.1.30",
7382 "slab",7367 "slab",
7383 "tokio-executor 0.1.10",7368 "tokio-executor",
7384]7369]
73857370
7386[[package]]7371[[package]]
74327417
7433[[package]]7418[[package]]
7434name = "toml"7419name = "toml"
7435version = "0.5.7"7420version = "0.5.8"
7436source = "registry+https://github.com/rust-lang/crates.io-index"7421source = "registry+https://github.com/rust-lang/crates.io-index"
7437checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645"7422checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
7438dependencies = [7423dependencies = [
7439 "serde",7424 "serde",
7440]7425]
74417426
7442[[package]]7427[[package]]
7443name = "tower-service"7428name = "tower-service"
7444version = "0.3.0"7429version = "0.3.1"
7445source = "registry+https://github.com/rust-lang/crates.io-index"7430source = "registry+https://github.com/rust-lang/crates.io-index"
7446checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"7431checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
74477432
7448[[package]]7433[[package]]
7449name = "tracing"7434name = "tracing"
7453dependencies = [7438dependencies = [
7454 "cfg-if 1.0.0",7439 "cfg-if 1.0.0",
7455 "log",7440 "log",
7456 "pin-project-lite 0.2.0",7441 "pin-project-lite 0.2.4",
7457 "tracing-attributes",7442 "tracing-attributes",
7458 "tracing-core",7443 "tracing-core",
7459]7444]
7523 "serde",7508 "serde",
7524 "serde_json",7509 "serde_json",
7525 "sharded-slab",7510 "sharded-slab",
7526 "smallvec 1.5.1",7511 "smallvec 1.6.1",
7527 "thread_local",7512 "thread_local",
7528 "tracing",7513 "tracing",
7529 "tracing-core",7514 "tracing-core",
75337518
7534[[package]]7519[[package]]
7535name = "trie-db"7520name = "trie-db"
7536version = "0.22.1"7521version = "0.22.2"
7537source = "registry+https://github.com/rust-lang/crates.io-index"7522source = "registry+https://github.com/rust-lang/crates.io-index"
7538checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0"7523checksum = "5cc176c377eb24d652c9c69c832c832019011b6106182bf84276c66b66d5c9a6"
7539dependencies = [7524dependencies = [
7540 "hash-db",7525 "hash-db",
7541 "hashbrown 0.8.2",7526 "hashbrown",
7542 "log",7527 "log",
7543 "rustc-hex",7528 "rustc-hex",
7544 "smallvec 1.5.1",7529 "smallvec 1.6.1",
7545]7530]
75467531
7547[[package]]7532[[package]]
7576source = "registry+https://github.com/rust-lang/crates.io-index"7561source = "registry+https://github.com/rust-lang/crates.io-index"
7577checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"7562checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
7563
7564[[package]]
7565name = "ucd-trie"
7566version = "0.1.3"
7567source = "registry+https://github.com/rust-lang/crates.io-index"
7568checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
75787569
7579[[package]]7570[[package]]
7580name = "uint"7571name = "uint"
7581version = "0.8.5"7572version = "0.9.0"
7582source = "registry+https://github.com/rust-lang/crates.io-index"7573source = "registry+https://github.com/rust-lang/crates.io-index"
7583checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177"7574checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e"
7584dependencies = [7575dependencies = [
7585 "byteorder 1.3.4",7576 "byteorder",
7586 "crunchy",7577 "crunchy",
7587 "rustc-hex",7578 "hex",
7588 "static_assertions",7579 "static_assertions",
7589]7580]
75907581
76457636
7646[[package]]7637[[package]]
7647name = "unsigned-varint"7638name = "unsigned-varint"
7648version = "0.4.0"7639version = "0.5.1"
7649source = "registry+https://github.com/rust-lang/crates.io-index"7640source = "registry+https://github.com/rust-lang/crates.io-index"
7650checksum = "669d776983b692a906c881fcd0cfb34271a48e197e4d6cb8df32b05bfc3d3fa5"7641checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35"
7651dependencies = [
7652 "bytes 0.5.6",
7653 "futures-io",
7654 "futures-util",
7655 "futures_codec",
7656]
76577642
7658[[package]]7643[[package]]
7659name = "unsigned-varint"7644name = "unsigned-varint"
7660version = "0.5.1"7645version = "0.6.0"
7661source = "registry+https://github.com/rust-lang/crates.io-index"7646source = "registry+https://github.com/rust-lang/crates.io-index"
7662checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35"7647checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2"
7663dependencies = [7648dependencies = [
7649 "asynchronous-codec",
7650 "bytes 1.0.1",
7664 "futures-io",7651 "futures-io",
7665 "futures-util",7652 "futures-util",
7666]7653]
7694 "percent-encoding 2.1.0",7681 "percent-encoding 2.1.0",
7695]7682]
7683
7684[[package]]
7685name = "value-bag"
7686version = "1.0.0-alpha.6"
7687source = "registry+https://github.com/rust-lang/crates.io-index"
7688checksum = "6b676010e055c99033117c2343b33a40a30b91fecd6c49055ac9cd2d6c305ab1"
7689dependencies = [
7690 "ctor",
7691]
76967692
7697[[package]]7693[[package]]
7698name = "vcpkg"7694name = "vcpkg"
77657761
7766[[package]]7762[[package]]
7767name = "wasm-bindgen"7763name = "wasm-bindgen"
7768version = "0.2.69"7764version = "0.2.70"
7769source = "registry+https://github.com/rust-lang/crates.io-index"7765source = "registry+https://github.com/rust-lang/crates.io-index"
7770checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"7766checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
7771dependencies = [7767dependencies = [
7772 "cfg-if 1.0.0",7768 "cfg-if 1.0.0",
7773 "wasm-bindgen-macro",7769 "wasm-bindgen-macro",
7774]7770]
77757771
7776[[package]]7772[[package]]
7777name = "wasm-bindgen-backend"7773name = "wasm-bindgen-backend"
7778version = "0.2.69"7774version = "0.2.70"
7779source = "registry+https://github.com/rust-lang/crates.io-index"7775source = "registry+https://github.com/rust-lang/crates.io-index"
7780checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"7776checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7"
7781dependencies = [7777dependencies = [
7782 "bumpalo",7778 "bumpalo",
7783 "lazy_static",7779 "lazy_static",
77907786
7791[[package]]7787[[package]]
7792name = "wasm-bindgen-futures"7788name = "wasm-bindgen-futures"
7793version = "0.4.19"7789version = "0.4.20"
7794source = "registry+https://github.com/rust-lang/crates.io-index"7790source = "registry+https://github.com/rust-lang/crates.io-index"
7795checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"7791checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94"
7796dependencies = [7792dependencies = [
7797 "cfg-if 1.0.0",7793 "cfg-if 1.0.0",
7798 "js-sys",7794 "js-sys",
78027798
7803[[package]]7799[[package]]
7804name = "wasm-bindgen-macro"7800name = "wasm-bindgen-macro"
7805version = "0.2.69"7801version = "0.2.70"
7806source = "registry+https://github.com/rust-lang/crates.io-index"7802source = "registry+https://github.com/rust-lang/crates.io-index"
7807checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"7803checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c"
7808dependencies = [7804dependencies = [
7809 "quote",7805 "quote",
7810 "wasm-bindgen-macro-support",7806 "wasm-bindgen-macro-support",
7811]7807]
78127808
7813[[package]]7809[[package]]
7814name = "wasm-bindgen-macro-support"7810name = "wasm-bindgen-macro-support"
7815version = "0.2.69"7811version = "0.2.70"
7816source = "registry+https://github.com/rust-lang/crates.io-index"7812source = "registry+https://github.com/rust-lang/crates.io-index"
7817checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"7813checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385"
7818dependencies = [7814dependencies = [
7819 "proc-macro2",7815 "proc-macro2",
7820 "quote",7816 "quote",
78257821
7826[[package]]7822[[package]]
7827name = "wasm-bindgen-shared"7823name = "wasm-bindgen-shared"
7828version = "0.2.69"7824version = "0.2.70"
7829source = "registry+https://github.com/rust-lang/crates.io-index"7825source = "registry+https://github.com/rust-lang/crates.io-index"
7830checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"7826checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64"
78317827
7832[[package]]7828[[package]]
7833name = "wasm-timer"7829name = "wasm-timer"
7834version = "0.2.5"7830version = "0.2.5"
7835source = "registry+https://github.com/rust-lang/crates.io-index"7831source = "registry+https://github.com/rust-lang/crates.io-index"
7836checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"7832checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
7837dependencies = [7833dependencies = [
7838 "futures 0.3.8",7834 "futures 0.3.12",
7839 "js-sys",7835 "js-sys",
7840 "parking_lot 0.11.1",7836 "parking_lot 0.11.1",
7841 "pin-utils",7837 "pin-utils",
7893 "log",7889 "log",
7894 "region",7890 "region",
7895 "rustc-demangle",7891 "rustc-demangle",
7896 "smallvec 1.5.1",7892 "smallvec 1.6.1",
7897 "target-lexicon",7893 "target-lexicon",
7898 "wasmparser 0.59.0",7894 "wasmparser 0.59.0",
7899 "wasmtime-environ",7895 "wasmtime-environ",
7934 "cranelift-entity",7930 "cranelift-entity",
7935 "cranelift-frontend",7931 "cranelift-frontend",
7936 "cranelift-wasm",7932 "cranelift-wasm",
7937 "directories",7933 "directories 2.0.2",
7938 "errno",7934 "errno",
7939 "file-per-thread-logger",7935 "file-per-thread-logger",
7940 "indexmap",7936 "indexmap",
80368032
8037[[package]]8033[[package]]
8038name = "wast"8034name = "wast"
8039version = "30.0.0"8035version = "32.0.0"
8040source = "registry+https://github.com/rust-lang/crates.io-index"8036source = "registry+https://github.com/rust-lang/crates.io-index"
8041checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2"8037checksum = "c24a3ee360d01d60ed0a0f960ab76a6acce64348cdb0bf8699c2a866fad57c7c"
8042dependencies = [8038dependencies = [
8043 "leb128",8039 "leb128",
8044]8040]
80458041
8046[[package]]8042[[package]]
8047name = "wat"8043name = "wat"
8048version = "1.0.31"8044version = "1.0.33"
8049source = "registry+https://github.com/rust-lang/crates.io-index"8045source = "registry+https://github.com/rust-lang/crates.io-index"
8050checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44"8046checksum = "5e8f7f34773fa6318e8897283abf7941c1f250faae4e1a52f82df09c3bad7cce"
8051dependencies = [8047dependencies = [
8052 "wast",8048 "wast",
8053]8049]
80548050
8055[[package]]8051[[package]]
8056name = "web-sys"8052name = "web-sys"
8057version = "0.3.46"8053version = "0.3.47"
8058source = "registry+https://github.com/rust-lang/crates.io-index"8054source = "registry+https://github.com/rust-lang/crates.io-index"
8059checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"8055checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3"
8060dependencies = [8056dependencies = [
8061 "js-sys",8057 "js-sys",
8062 "wasm-bindgen",8058 "wasm-bindgen",
8072 "untrusted",8068 "untrusted",
8073]8069]
8074
8075[[package]]
8076name = "webpki-roots"
8077version = "0.18.0"
8078source = "registry+https://github.com/rust-lang/crates.io-index"
8079checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4"
8080dependencies = [
8081 "webpki",
8082]
80838070
8084[[package]]8071[[package]]
8085name = "webpki-roots"8072name = "webpki-roots"
8086version = "0.19.0"8073version = "0.21.0"
8087source = "registry+https://github.com/rust-lang/crates.io-index"8074source = "registry+https://github.com/rust-lang/crates.io-index"
8088checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739"8075checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376"
8089dependencies = [8076dependencies = [
8090 "webpki",8077 "webpki",
8091]8078]
8108 "libc",8095 "libc",
8109]8096]
8097
8098[[package]]
8099name = "which"
8100version = "4.0.2"
8101source = "registry+https://github.com/rust-lang/crates.io-index"
8102checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef"
8103dependencies = [
8104 "libc",
8105 "thiserror",
8106]
81108107
8111[[package]]8108[[package]]
8112name = "winapi"8109name = "winapi"
8161 "winapi-build",8158 "winapi-build",
8162]8159]
8163
8164[[package]]
8165name = "x25519-dalek"
8166version = "0.6.0"
8167source = "registry+https://github.com/rust-lang/crates.io-index"
8168checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217"
8169dependencies = [
8170 "curve25519-dalek 2.1.0",
8171 "rand_core 0.5.1",
8172 "zeroize",
8173]
81748160
8175[[package]]8161[[package]]
8176name = "x25519-dalek"8162name = "x25519-dalek"
8177version = "1.1.0"8163version = "1.1.0"
8178source = "registry+https://github.com/rust-lang/crates.io-index"8164source = "registry+https://github.com/rust-lang/crates.io-index"
8179checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088"8165checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088"
8180dependencies = [8166dependencies = [
8181 "curve25519-dalek 3.0.0",8167 "curve25519-dalek 3.0.2",
8182 "rand_core 0.5.1",8168 "rand_core 0.5.1",
8183 "zeroize",8169 "zeroize",
8184]8170]
8189source = "registry+https://github.com/rust-lang/crates.io-index"8175source = "registry+https://github.com/rust-lang/crates.io-index"
8190checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c"8176checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c"
8191dependencies = [8177dependencies = [
8192 "futures 0.3.8",8178 "futures 0.3.12",
8193 "log",8179 "log",
8194 "nohash-hasher",8180 "nohash-hasher",
8195 "parking_lot 0.11.1",8181 "parking_lot 0.11.1",
8251dependencies = [8237dependencies = [
8252 "cc",8238 "cc",
8253 "glob",8239 "glob",
8254 "itertools 0.9.0",8240 "itertools",
8255 "libc",8241 "libc",
8256]8242]
82578243
modifiedLICENSEdiffbeforeafterboth
1USETECH PROFESSIONAL CONFIDENTIAL1USETECH PROFESSIONAL CONFIDENTIAL
2__________________2__________________
33
4 [2019] - [2020] UseTech Professional LTD. 4 [2019] - [2021] UseTech Professional LTD.
5 All Rights Reserved.5 All Rights Reserved.
66
7NOTICE: All information contained herein is, and remains7NOTICE: All information contained herein is, and remains
modifiedREADME.mddiffbeforeafterboth
5252
532. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.532. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.
5454
553. Install Toolchain and make it default:553. Install stable toolchain 1.49.0 and make it default, install nightly 2021-01-27:
5656
57```bash57```bash
58rustup toolchain install nightly-2020-10-0158rustup toolchain install 1.49.0
59rustup toolchain install nightly-2020-01-27
59rustup default nightly-2020-10-0160rustup default nightly-2021-01-27
60```61```
6162
624. Add wasm target for default toolchain:634. Add wasm target for default toolchain:
6364
64```bash65```bash
65rustup target add wasm32-unknown-unknown66rustup target add wasm32-unknown-unknown --toolchain nightly-2021-01-27
66```67```
6768
685. Build:695. Build:
114115
115Additional CLI usage options are available and may be shown by running `cargo run -- --help`.116Additional CLI usage options are available and may be shown by running `cargo run -- --help`.
116117
118## Run Integration Tests
119
1201. Install all needed dependecies
121```
122cd tests
123yarn install
124```
125
1262. Run tests
127```
128yarn test
129```
130
131
117## Benchmarks132## Benchmarks
118133
119First of all, add rust toolchain and make it default.134First of all, add rust toolchain and make it default.
modifiednode/Cargo.tomldiffbeforeafterboth
1[build-dependencies.substrate-build-script-utils]1[build-dependencies.substrate-build-script-utils]
2git = 'https://github.com/usetech-llc/substrate.git'2git = 'https://github.com/usetech-llc/substrate.git'
3branch = 'release_flexi'3branch = 'unique'
4version = '2.0.0'4version = '2.0.1'
55
6[[bin]]6[[bin]]
7name = 'nft'7name = 'nft'
15license = 'Unlicense'15license = 'Unlicense'
16name = 'nft'16name = 'nft'
17repository = 'https://github.com/substrate-developer-hub/nft/'17repository = 'https://github.com/substrate-developer-hub/nft/'
18version = '2.0.0'18version = '3.0.0'
1919
20[package.metadata.docs.rs]20[package.metadata.docs.rs]
21targets = ['x86_64-unknown-linux-gnu']21targets = ['x86_64-unknown-linux-gnu']
29jsonrpc-core = '15.0.0'29jsonrpc-core = '15.0.0'
3030
31# Substrate dependencies31# Substrate dependencies
32nft-runtime = { path = '../runtime', version = '2.0.0' }32nft-runtime = { path = '../runtime', version = '3.0.0' }
33frame-benchmarking = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}33frame-benchmarking = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
34frame-benchmarking-cli = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}34frame-benchmarking-cli = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
35pallet-transaction-payment-rpc = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}35pallet-transaction-payment-rpc = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
36sc-basic-authorship = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}36sc-basic-authorship = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
37sc-cli = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }37sc-cli = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
38sc-client-api = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}38sc-client-api = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
39sc-consensus = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}39sc-consensus = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
40sc-consensus-aura = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}40sc-consensus-aura = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
41sc-executor = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }41sc-executor = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
42sc-finality-grandpa = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}42sc-finality-grandpa = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
43sc-rpc = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}43sc-rpc = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
44sc-rpc-api = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}44sc-rpc-api = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
45sc-service = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }45sc-service = { features = ['wasmtime'], version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
46sc-transaction-pool = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}46sc-transaction-pool = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
47sp-api = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}47sp-api = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
48sp-block-builder = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}48sp-block-builder = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
49sp-blockchain = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}49sp-blockchain = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
50sp-consensus = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}50sp-consensus = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
51sp-consensus-aura = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}51sp-consensus-aura = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
52sp-core = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}52sp-core = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
53sp-finality-grandpa = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}53sp-finality-grandpa = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
54sp-inherents = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}54sp-inherents = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
55sp-runtime = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}55sp-runtime = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
56sp-transaction-pool = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}56sp-transaction-pool = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
57sc-network = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'} 57sc-network = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
58substrate-frame-rpc-system = {version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'}58substrate-frame-rpc-system = {version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
59pallet-contracts-rpc = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi'} 59pallet-contracts-rpc = {version = '0.8.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique'}
60sc-keystore = { version = "2.0.0", git = "https://github.com/usetech-llc/substrate.git", branch = 'unique'}
61sc-telemetry = { version = "2.0.0", git = "https://github.com/usetech-llc/substrate.git", branch = 'unique'}
6062
61serde = { version = "1.0.102", features = ["derive"] }63serde = { version = "1.0.102", features = ["derive"] }
62serde_json = "1.0.41"64serde_json = "1.0.41"
modifiednode/src/cli.rsdiffbeforeafterboth
1212
13#[derive(Debug, StructOpt)]13#[derive(Debug, StructOpt)]
14pub enum Subcommand {14pub enum Subcommand {
15 /// Key management cli utilities
16 Key(sc_cli::KeySubcommand),
15 /// Build a chain specification.17 /// Build a chain specification.
16 BuildSpec(sc_cli::BuildSpecCmd),18 BuildSpec(sc_cli::BuildSpecCmd),
1719
33 /// Revert the chain to a previous state.35 /// Revert the chain to a previous state.
34 Revert(sc_cli::RevertCmd),36 Revert(sc_cli::RevertCmd),
3537
36 // The custom benchmark subcommmand benchmarking runtime pallets.38 /// The custom benchmark subcommmand benchmarking runtime pallets.
37 #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]39 #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]
38 Benchmark(frame_benchmarking_cli::BenchmarkCmd),40 Benchmark(frame_benchmarking_cli::BenchmarkCmd),
39}41}
modifiednode/src/command.rsdiffbeforeafterboth
1// This file is part of Substrate.1// This file is part of Substrate.
22
3// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd.3// Copyright (C) 2017-2021 Parity Technologies (UK) Ltd.
4// SPDX-License-Identifier: Apache-2.04// SPDX-License-Identifier: Apache-2.0
55
6// Licensed under the Apache License, Version 2.0 (the "License");6// Licensed under the Apache License, Version 2.0 (the "License");
66 let cli = Cli::from_args();66 let cli = Cli::from_args();
6767
68 match &cli.subcommand {68 match &cli.subcommand {
69 Some(Subcommand::Key(cmd)) => cmd.run(&cli),
69 Some(Subcommand::BuildSpec(cmd)) => {70 Some(Subcommand::BuildSpec(cmd)) => {
70 let runner = cli.create_runner(cmd)?;71 let runner = cli.create_runner(cmd)?;
71 runner.sync_run(|config| cmd.run(config.chain_spec, config.network))72 runner.sync_run(|config| cmd.run(config.chain_spec, config.network))
126 },127 },
127 None => {128 None => {
128 let runner = cli.create_runner(&cli.run)?;129 let runner = cli.create_runner(&cli.run)?;
129 runner.run_node_until_exit(|config| match config.role {130 runner.run_node_until_exit(|config| async move {
131 match config.role {
130 Role::Light => service::new_light(config),132 Role::Light => service::new_light(config),
131 _ => service::new_full(config),133 _ => service::new_full(config),
132 })134 }.map_err(sc_cli::Error::Service)
135 })
133 }136 }
134 }137 }
135}138}
modifiednode/src/service.rsdiffbeforeafterboth
14use sc_executor::native_executor_instance;14use sc_executor::native_executor_instance;
15pub use sc_executor::NativeExecutor;15pub use sc_executor::NativeExecutor;
16use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};16use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};
17use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};17use sc_finality_grandpa::SharedVoterState;
18use sc_keystore::LocalKeystore;
19use sc_telemetry::TelemetrySpan;
1820
19// Our native executor instance.21// Our native executor instance.
20native_executor_instance!(22native_executor_instance!(
39 sc_finality_grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>,41 sc_finality_grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>,
40 AuraPair42 AuraPair
41 >,43 >,
42 sc_finality_grandpa::LinkHalf<Block, FullClient, FullSelectChain>44 sc_finality_grandpa::LinkHalf<Block, FullClient, FullSelectChain>,
45 Option<TelemetrySpan>,
43 )46 )
44>, ServiceError> {47>, ServiceError> {
48 if config.keystore_remote.is_some() {
49 return Err(ServiceError::Other(
50 format!("Remote Keystores are not supported.")))
51 }
45 let inherent_data_providers = sp_inherents::InherentDataProviders::new();52 let inherent_data_providers = sp_inherents::InherentDataProviders::new();
4653
47 let (client, backend, keystore, task_manager) =54 let (client, backend, keystore_container, task_manager, telemetry_span) =
48 sc_service::new_full_parts::<Block, RuntimeApi, Executor>(&config)?;55 sc_service::new_full_parts::<Block, RuntimeApi, Executor>(&config)?;
49 let client = Arc::new(client);56 let client = Arc::new(client);
5057
69 sc_consensus_aura::slot_duration(&*client)?,76 sc_consensus_aura::slot_duration(&*client)?,
70 aura_block_import.clone(),77 aura_block_import.clone(),
71 Some(Box::new(grandpa_block_import.clone())),78 Some(Box::new(grandpa_block_import.clone())),
72 None,
73 client.clone(),79 client.clone(),
74 inherent_data_providers.clone(),80 inherent_data_providers.clone(),
75 &task_manager.spawn_handle(),81 &task_manager.spawn_handle(),
78 )?;84 )?;
7985
80 Ok(sc_service::PartialComponents {86 Ok(sc_service::PartialComponents {
81 client, backend, task_manager, import_queue, keystore, select_chain, transaction_pool,87 client,
88 backend,
89 task_manager,
90 import_queue,
91 keystore_container,
92 select_chain,
93 transaction_pool,
82 inherent_data_providers,94 inherent_data_providers,
83 other: (aura_block_import, grandpa_link),95 other: (aura_block_import, grandpa_link, telemetry_span),
84 })96 })
85}97}
98
99fn remote_keystore(_url: &String) -> Result<Arc<LocalKeystore>, &'static str> {
100 // FIXME: here would the concrete keystore be built,
101 // must return a concrete type (NOT `LocalKeystore`) that
102 // implements `CryptoStore` and `SyncCryptoStore`
103 Err("Remote Keystore not supported.")
104}
86105
87/// Builds a new service for a full client.106/// Builds a new service for a full client.
88pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {107pub fn new_full(mut config: Configuration) -> Result<TaskManager, ServiceError> {
89 let sc_service::PartialComponents {108 let sc_service::PartialComponents {
90 client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool,109 client,
110 backend,
111 mut task_manager,
112 import_queue,
113 mut keystore_container,
114 select_chain,
115 transaction_pool,
91 inherent_data_providers,116 inherent_data_providers,
92 other: (block_import, grandpa_link),117 other: (block_import, grandpa_link, telemetry_span),
93 } = new_partial(&config)?;118 } = new_partial(&config)?;
94119
95 let finality_proof_provider =120 if let Some(url) = &config.keystore_remote {
121 match remote_keystore(url) {
96 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());122 Ok(k) => keystore_container.set_remote_keystore(k),
123 Err(e) => {
124 return Err(ServiceError::Other(
125 format!("Error hooking up remote keystore for {}: {}", url, e)))
126 }
127 };
128 }
129
130 config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config());
97131
98 let (network, network_status_sinks, system_rpc_tx, network_starter) =132 let (network, network_status_sinks, system_rpc_tx, network_starter) =
99 sc_service::build_network(sc_service::BuildNetworkParams {133 sc_service::build_network(sc_service::BuildNetworkParams {
104 import_queue,138 import_queue,
105 on_demand: None,139 on_demand: None,
106 block_announce_validator_builder: None,140 block_announce_validator_builder: None,
107 finality_proof_request_builder: None,
108 finality_proof_provider: Some(finality_proof_provider.clone()),
109 })?;141 })?;
110142
111 if config.offchain_worker.enabled {143 if config.offchain_worker.enabled {
116148
117 let role = config.role.clone();149 let role = config.role.clone();
118 let force_authoring = config.force_authoring;150 let force_authoring = config.force_authoring;
151 let backoff_authoring_blocks: Option<()> = None;
119 let name = config.network.node_name.clone();152 let name = config.network.node_name.clone();
120 let enable_grandpa = !config.disable_grandpa;153 let enable_grandpa = !config.disable_grandpa;
121 let prometheus_registry = config.prometheus_registry().cloned();154 let prometheus_registry = config.prometheus_registry().cloned();
122 let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();
123155
124 let rpc_extensions_builder = {156 let rpc_extensions_builder = {
125 let client = client.clone();157 let client = client.clone();
136 })168 })
137 };169 };
138170
139 sc_service::spawn_tasks(sc_service::SpawnTasksParams {171 let (_rpc_handlers, telemetry_connection_notifier) = sc_service::spawn_tasks(
172 sc_service::SpawnTasksParams {
140 network: network.clone(),173 network: network.clone(),
141 client: client.clone(),174 client: client.clone(),
142 keystore: keystore.clone(),175 keystore: keystore_container.sync_keystore(),
143 task_manager: &mut task_manager,176 task_manager: &mut task_manager,
144 transaction_pool: transaction_pool.clone(),177 transaction_pool: transaction_pool.clone(),
145 telemetry_connection_sinks: telemetry_connection_sinks.clone(),
146 rpc_extensions_builder: rpc_extensions_builder,178 rpc_extensions_builder,
147 on_demand: None,179 on_demand: None,
148 remote_blockchain: None,180 remote_blockchain: None,
149 backend, network_status_sinks, system_rpc_tx, config,181 backend,
182 network_status_sinks,
183 system_rpc_tx,
184 config,
185 telemetry_span,
150 })?;186 },
187 )?;
151188
152 if role.is_authority() {189 if role.is_authority() {
153 let proposer = sc_basic_authorship::ProposerFactory::new(190 let proposer = sc_basic_authorship::ProposerFactory::new(
191 task_manager.spawn_handle(),
154 client.clone(),192 client.clone(),
155 transaction_pool,193 transaction_pool,
156 prometheus_registry.as_ref(),194 prometheus_registry.as_ref(),
159 let can_author_with =197 let can_author_with =
160 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());198 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());
161199
162 let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>(200 let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _,_>(
163 sc_consensus_aura::slot_duration(&*client)?,201 sc_consensus_aura::slot_duration(&*client)?,
164 client.clone(),202 client.clone(),
165 select_chain,203 select_chain,
168 network.clone(),206 network.clone(),
169 inherent_data_providers.clone(),207 inherent_data_providers.clone(),
170 force_authoring,208 force_authoring,
209 backoff_authoring_blocks,
171 keystore.clone(),210 keystore_container.sync_keystore(),
172 can_author_with,211 can_author_with,
173 )?;212 )?;
174213
180 // if the node isn't actively participating in consensus then it doesn't219 // if the node isn't actively participating in consensus then it doesn't
181 // need a keystore, regardless of which protocol we use below.220 // need a keystore, regardless of which protocol we use below.
182 let keystore = if role.is_authority() {221 let keystore = if role.is_authority() {
183 Some(keystore as sp_core::traits::BareCryptoStorePtr)222 Some(keystore_container.sync_keystore())
184 } else {223 } else {
185 None224 None
186 };225 };
206 config: grandpa_config,245 config: grandpa_config,
207 link: grandpa_link,246 link: grandpa_link,
208 network,247 network,
209 inherent_data_providers,
210 telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()),248 telemetry_on_connect: telemetry_connection_notifier.map(|x| x.on_connect_stream()),
211 voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),249 voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),
212 prometheus_registry,250 prometheus_registry,
213 shared_voter_state: SharedVoterState::empty(),251 shared_voter_state: SharedVoterState::empty(),
219 "grandpa-voter",257 "grandpa-voter",
220 sc_finality_grandpa::run_grandpa_voter(grandpa_config)?258 sc_finality_grandpa::run_grandpa_voter(grandpa_config)?
221 );259 );
222 } else {260 }
223 sc_finality_grandpa::setup_disabled_grandpa(
224 client,
225 &inherent_data_providers,
226 network,
227 )?;
228 }
229261
230 network_starter.start_network();262 network_starter.start_network();
231 Ok(task_manager)263 Ok(task_manager)
232}264}
233265
234/// Builds a new service for a light client.266/// Builds a new service for a light client.
235pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {267pub fn new_light(mut config: Configuration) -> Result<TaskManager, ServiceError> {
236 let (client, backend, keystore, mut task_manager, on_demand) =268 let (client, backend, keystore_container, mut task_manager, on_demand, telemetry_span) =
237 sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;269 sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;
270
271 config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config());
272
273 let select_chain = sc_consensus::LongestChain::new(backend.clone());
238274
239 let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(275 let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(
240 config.transaction_pool.clone(),276 config.transaction_pool.clone(),
244 on_demand.clone(),280 on_demand.clone(),
245 ));281 ));
246282
247 let grandpa_block_import = sc_finality_grandpa::light_block_import(283 let (grandpa_block_import, _) = sc_finality_grandpa::block_import(
248 client.clone(), backend.clone(), &(client.clone() as Arc<_>),284 client.clone(),
285 &(client.clone() as Arc<_>),
249 Arc::new(on_demand.checker().clone()) as Arc<_>,286 select_chain.clone(),
250 )?;287 )?;
288
251 let finality_proof_import = grandpa_block_import.clone();289 let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(
252 let finality_proof_request_builder =290 grandpa_block_import.clone(),
253 finality_proof_import.create_finality_proof_request_builder();291 client.clone(),
292 );
254293
255 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(294 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
256 sc_consensus_aura::slot_duration(&*client)?,295 sc_consensus_aura::slot_duration(&*client)?,
257 grandpa_block_import,296 aura_block_import,
258 None,
259 Some(Box::new(finality_proof_import)),297 Some(Box::new(grandpa_block_import)),
260 client.clone(),298 client.clone(),
261 InherentDataProviders::new(),299 InherentDataProviders::new(),
262 &task_manager.spawn_handle(),300 &task_manager.spawn_handle(),
263 config.prometheus_registry(),301 config.prometheus_registry(),
264 sp_consensus::NeverCanAuthor,302 sp_consensus::NeverCanAuthor,
265 )?;303 )?;
266
267 let finality_proof_provider =
268 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());
269304
270 let (network, network_status_sinks, system_rpc_tx, network_starter) =305 let (network, network_status_sinks, system_rpc_tx, network_starter) =
271 sc_service::build_network(sc_service::BuildNetworkParams {306 sc_service::build_network(sc_service::BuildNetworkParams {
276 import_queue,311 import_queue,
277 on_demand: Some(on_demand.clone()),312 on_demand: Some(on_demand.clone()),
278 block_announce_validator_builder: None,313 block_announce_validator_builder: None,
279 finality_proof_request_builder: Some(finality_proof_request_builder),
280 finality_proof_provider: Some(finality_proof_provider),
281 })?;314 })?;
282315
283 if config.offchain_worker.enabled {316 if config.offchain_worker.enabled {
292 task_manager: &mut task_manager,325 task_manager: &mut task_manager,
293 on_demand: Some(on_demand),326 on_demand: Some(on_demand),
294 rpc_extensions_builder: Box::new(|_, _| ()),327 rpc_extensions_builder: Box::new(|_, _| ()),
328 config,
329 client,
295 telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),330 keystore: keystore_container.sync_keystore(),
296 config,
297 client,
298 keystore,
299 backend,331 backend,
300 network,332 network,
301 network_status_sinks,333 network_status_sinks,
302 system_rpc_tx,334 system_rpc_tx,
335 telemetry_span,
303 })?;336 })?;
304337
305 network_starter.start_network();338 network_starter.start_network();
modifiedpallets/nft/Cargo.tomldiffbeforeafterboth
6license = 'Unlicense'6license = 'Unlicense'
7name = 'pallet-nft'7name = 'pallet-nft'
8repository = 'https://github.com/substrate-developer-hub/nft/'8repository = 'https://github.com/substrate-developer-hub/nft/'
9version = '2.0.0'9version = '3.0.0'
1010
11[package.metadata.docs.rs]11[package.metadata.docs.rs]
12targets = ['x86_64-unknown-linux-gnu']12targets = ['x86_64-unknown-linux-gnu']
16default-features = false16default-features = false
17features = ['derive']17features = ['derive']
18package = 'parity-scale-codec'18package = 'parity-scale-codec'
19version = '1.3.4'19version = '1.3.6'
2020
21[dependencies.frame-support]21[dependencies.frame-support]
22default-features = false22default-features = false
23git = 'https://github.com/usetech-llc/substrate.git'23git = 'https://github.com/usetech-llc/substrate.git'
24branch = 'release_flexi'24branch = 'unique'
25version = '2.0.0'25version = '2.0.1'
2626
27[dependencies.frame-system]27[dependencies.frame-system]
28default-features = false28default-features = false
29git = 'https://github.com/usetech-llc/substrate.git'29git = 'https://github.com/usetech-llc/substrate.git'
30branch = 'release_flexi'30branch = 'unique'
31version = '2.0.0'31version = '2.0.1'
3232
33[dev-dependencies.sp-core]33[dev-dependencies.sp-core]
34default-features = false34default-features = false
35git = 'https://github.com/usetech-llc/substrate.git'35git = 'https://github.com/usetech-llc/substrate.git'
36branch = 'release_flexi'36branch = 'unique'
37version = '2.0.0'37version = '2.0.1'
3838
39[dev-dependencies.sp-io]39[dev-dependencies.sp-io]
40default-features = false40default-features = false
41git = 'https://github.com/usetech-llc/substrate.git'41git = 'https://github.com/usetech-llc/substrate.git'
42branch = 'release_flexi'42branch = 'unique'
43version = '2.0.0'43version = '2.0.1'
4444
45[dependencies.sp-runtime]45[dependencies.sp-runtime]
46default-features = false46default-features = false
47git = 'https://github.com/usetech-llc/substrate.git'47git = 'https://github.com/usetech-llc/substrate.git'
48branch = 'release_flexi'48branch = 'unique'
49version = '2.0.0'49version = '2.0.1'
50 50
51[dependencies]51[dependencies]
52# third-party dependencies52# third-party dependencies
56[dependencies.sp-std]56[dependencies.sp-std]
57default-features = false57default-features = false
58git = 'https://github.com/usetech-llc/substrate.git'58git = 'https://github.com/usetech-llc/substrate.git'
59branch = 'release_flexi'59branch = 'unique'
60version = '2.0.0'60version = '2.0.1'
6161
62[dependencies.transaction-payment]62[dependencies.transaction-payment]
63default-features = false63default-features = false
64git = 'https://github.com/usetech-llc/substrate.git'64git = 'https://github.com/usetech-llc/substrate.git'
65package = 'pallet-transaction-payment'65package = 'pallet-transaction-payment'
66branch = 'release_flexi'66branch = 'unique'
67version = '2.0.0'67version = '2.0.1'
6868
69[dependencies.frame-benchmarking]69[dependencies.frame-benchmarking]
70version = "2.0.0"70version = "2.0.1"
71default-features = false71default-features = false
72git = 'https://github.com/usetech-llc/substrate.git'72git = 'https://github.com/usetech-llc/substrate.git'
73branch = 'release_flexi'73branch = 'unique'
74optional = true74optional = true
7575
76[dependencies.pallet-contracts]76[dependencies.pallet-contracts]
77default-features = false77default-features = false
78git = 'https://github.com/usetech-llc/substrate.git'78git = 'https://github.com/usetech-llc/substrate.git'
79package = 'pallet-contracts'79package = 'pallet-contracts'
80branch = 'release_flexi'80branch = 'unique'
81version = '2.0.0'81version = '2.0.1'
8282
83[dependencies.pallet-balances]83[dependencies.pallet-balances]
84default-features = false84default-features = false
85git = 'https://github.com/usetech-llc/substrate.git'85git = 'https://github.com/usetech-llc/substrate.git'
86package = 'pallet-balances'86package = 'pallet-balances'
87branch = 'release_flexi'87branch = 'unique'
88version = '2.0.0'88version = '2.0.1'
8989
90[dependencies.pallet-timestamp]90[dependencies.pallet-timestamp]
91default-features = false91default-features = false
92git = 'https://github.com/usetech-llc/substrate.git'92git = 'https://github.com/usetech-llc/substrate.git'
93package = 'pallet-timestamp'93package = 'pallet-timestamp'
94branch = 'release_flexi'94branch = 'unique'
95version = '2.0.0'95version = '2.0.1'
9696
97[dependencies.pallet-randomness-collective-flip]97[dependencies.pallet-randomness-collective-flip]
98default-features = false98default-features = false
99git = 'https://github.com/usetech-llc/substrate.git'99git = 'https://github.com/usetech-llc/substrate.git'
100package = 'pallet-randomness-collective-flip'100package = 'pallet-randomness-collective-flip'
101branch = 'release_flexi'101branch = 'unique'
102version = '2.0.0'102version = '2.0.1'
103103
104[features]104[features]
105default = ['std']105default = ['std']
modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
20 ensure, fail, parameter_types,20 ensure, fail, parameter_types,
21 traits::{21 traits::{
22 Currency, ExistenceRequirement, Get, Imbalance, KeyOwnerProofSystem, OnUnbalanced,22 Currency, ExistenceRequirement, Get, Imbalance, KeyOwnerProofSystem, OnUnbalanced,
23 Randomness, WithdrawReason,23 Randomness, IsSubType,
24 },24 },
25 weights::{25 weights::{
26 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},26 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
27 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,27 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
28 WeightToFeePolynomial,28 WeightToFeePolynomial, DispatchClass,
29 },29 },
30 IsSubType, StorageValue,30 StorageValue,
31};31};
3232
33use frame_system::{self as system, ensure_signed, ensure_root};33use frame_system::{self as system, ensure_signed, ensure_root};
41 },41 },
42 FixedPointOperand, FixedU128,42 FixedPointOperand, FixedU128,
43};43};
44use pallet_contracts::ContractAddressFor;
45use sp_runtime::traits::StaticLookup;44use sp_runtime::traits::StaticLookup;
45use pallet_contracts::chain_extension::UncheckedFrom;
46use transaction_payment::OnChargeTransaction;
4647
47#[cfg(test)]48#[cfg(test)]
48mod mock;49mod mock;
308309
309decl_error! {310decl_error! {
310 /// Error for non-fungible-token module.311 /// Error for non-fungible-token module.
311 pub enum Error for Module<T: Trait> {312 pub enum Error for Module<T: Config> {
312 /// Total collections bound exceeded.313 /// Total collections bound exceeded.
313 TotalCollectionsLimitExceeded,314 TotalCollectionsLimitExceeded,
314 /// Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.315 /// Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.
380 }381 }
381}382}
382383
383pub trait Trait: system::Trait + Sized + transaction_payment::Trait + pallet_contracts::Trait {384pub trait Config: system::Config + Sized + transaction_payment::Config + pallet_contracts::Config {
384 type Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;385 type Event: From<Event<Self>> + Into<<Self as system::Config>::Event>;
385386
386 /// Weight information for extrinsics in this pallet.387 /// Weight information for extrinsics in this pallet.
387 type WeightInfo: WeightInfo;388 type WeightInfo: WeightInfo;
393// #endregion394// #endregion
394395
395decl_storage! {396decl_storage! {
396 trait Store for Module<T: Trait> as Nft {397 trait Store for Module<T: Config> as Nft {
397398
398 // Private members399 // Private members
399 NextCollectionID: CollectionId;400 NextCollectionID: CollectionId;
466decl_event!(467decl_event!(
467 pub enum Event<T>468 pub enum Event<T>
468 where469 where
469 AccountId = <T as system::Trait>::AccountId,470 AccountId = <T as system::Config>::AccountId,
470 {471 {
471 /// New collection was created472 /// New collection was created
472 /// 473 ///
500);501);
501502
502decl_module! {503decl_module! {
503 pub struct Module<T: Trait> for enum Call where origin: T::Origin {504 pub struct Module<T: Config> for enum Call
504505 where
506 origin: T::Origin
507 {
505 fn deposit_event() = default;508 fn deposit_event() = default;
506 type Error = Error<T>;509 type Error = Error<T>;
507510
533 /// 536 ///
534 /// * mode: [CollectionMode] collection type and type dependent data.537 /// * mode: [CollectionMode] collection type and type dependent data.
535 // returns collection ID538 // returns collection ID
536 #[weight = T::WeightInfo::create_collection()]539 #[weight = <T as Config>::WeightInfo::create_collection()]
537 pub fn create_collection(origin,540 pub fn create_collection(origin,
538 collection_name: Vec<u16>,541 collection_name: Vec<u16>,
539 collection_description: Vec<u16>,542 collection_description: Vec<u16>,
608 /// # Arguments611 /// # Arguments
609 /// 612 ///
610 /// * collection_id: collection to destroy.613 /// * collection_id: collection to destroy.
611 #[weight = T::WeightInfo::destroy_collection()]614 #[weight = <T as Config>::WeightInfo::destroy_collection()]
612 pub fn destroy_collection(origin, collection_id: CollectionId) -> DispatchResult {615 pub fn destroy_collection(origin, collection_id: CollectionId) -> DispatchResult {
613616
614 let sender = ensure_signed(origin)?;617 let sender = ensure_signed(origin)?;
655 /// * collection_id.658 /// * collection_id.
656 /// 659 ///
657 /// * address.660 /// * address.
658 #[weight = T::WeightInfo::add_to_white_list()]661 #[weight = <T as Config>::WeightInfo::add_to_white_list()]
659 pub fn add_to_white_list(origin, collection_id: CollectionId, address: T::AccountId) -> DispatchResult{662 pub fn add_to_white_list(origin, collection_id: CollectionId, address: T::AccountId) -> DispatchResult{
660663
661 let sender = ensure_signed(origin)?;664 let sender = ensure_signed(origin)?;
678 /// * collection_id.681 /// * collection_id.
679 /// 682 ///
680 /// * address.683 /// * address.
681 #[weight = T::WeightInfo::remove_from_white_list()]684 #[weight = <T as Config>::WeightInfo::remove_from_white_list()]
682 pub fn remove_from_white_list(origin, collection_id: CollectionId, address: T::AccountId) -> DispatchResult{685 pub fn remove_from_white_list(origin, collection_id: CollectionId, address: T::AccountId) -> DispatchResult{
683686
684 let sender = ensure_signed(origin)?;687 let sender = ensure_signed(origin)?;
700 /// * collection_id.703 /// * collection_id.
701 /// 704 ///
702 /// * mode: [AccessMode]705 /// * mode: [AccessMode]
703 #[weight = T::WeightInfo::set_public_access_mode()]706 #[weight = <T as Config>::WeightInfo::set_public_access_mode()]
704 pub fn set_public_access_mode(origin, collection_id: CollectionId, mode: AccessMode) -> DispatchResult707 pub fn set_public_access_mode(origin, collection_id: CollectionId, mode: AccessMode) -> DispatchResult
705 {708 {
706 let sender = ensure_signed(origin)?;709 let sender = ensure_signed(origin)?;
726 /// * collection_id.729 /// * collection_id.
727 /// 730 ///
728 /// * mint_permission: Boolean parameter. If True, allows minting to Anyone with conditions above.731 /// * mint_permission: Boolean parameter. If True, allows minting to Anyone with conditions above.
729 #[weight = T::WeightInfo::set_mint_permission()]732 #[weight = <T as Config>::WeightInfo::set_mint_permission()]
730 pub fn set_mint_permission(origin, collection_id: CollectionId, mint_permission: bool) -> DispatchResult733 pub fn set_mint_permission(origin, collection_id: CollectionId, mint_permission: bool) -> DispatchResult
731 {734 {
732 let sender = ensure_signed(origin)?;735 let sender = ensure_signed(origin)?;
750 /// * collection_id.753 /// * collection_id.
751 /// 754 ///
752 /// * new_owner.755 /// * new_owner.
753 #[weight = T::WeightInfo::change_collection_owner()]756 #[weight = <T as Config>::WeightInfo::change_collection_owner()]
754 pub fn change_collection_owner(origin, collection_id: CollectionId, new_owner: T::AccountId) -> DispatchResult {757 pub fn change_collection_owner(origin, collection_id: CollectionId, new_owner: T::AccountId) -> DispatchResult {
755758
756 let sender = ensure_signed(origin)?;759 let sender = ensure_signed(origin)?;
775 /// * collection_id: ID of the Collection to add admin for.778 /// * collection_id: ID of the Collection to add admin for.
776 /// 779 ///
777 /// * new_admin_id: Address of new admin to add.780 /// * new_admin_id: Address of new admin to add.
778 #[weight = T::WeightInfo::add_collection_admin()]781 #[weight = <T as Config>::WeightInfo::add_collection_admin()]
779 pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::AccountId) -> DispatchResult {782 pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::AccountId) -> DispatchResult {
780783
781 let sender = ensure_signed(origin)?;784 let sender = ensure_signed(origin)?;
809 /// * collection_id: ID of the Collection to remove admin for.812 /// * collection_id: ID of the Collection to remove admin for.
810 /// 813 ///
811 /// * account_id: Address of admin to remove.814 /// * account_id: Address of admin to remove.
812 #[weight = T::WeightInfo::remove_collection_admin()]815 #[weight = <T as Config>::WeightInfo::remove_collection_admin()]
813 pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::AccountId) -> DispatchResult {816 pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::AccountId) -> DispatchResult {
814817
815 let sender = ensure_signed(origin)?;818 let sender = ensure_signed(origin)?;
832 /// * collection_id.835 /// * collection_id.
833 /// 836 ///
834 /// * new_sponsor.837 /// * new_sponsor.
835 #[weight = T::WeightInfo::set_collection_sponsor()]838 #[weight = <T as Config>::WeightInfo::set_collection_sponsor()]
836 pub fn set_collection_sponsor(origin, collection_id: CollectionId, new_sponsor: T::AccountId) -> DispatchResult {839 pub fn set_collection_sponsor(origin, collection_id: CollectionId, new_sponsor: T::AccountId) -> DispatchResult {
837840
838 let sender = ensure_signed(origin)?;841 let sender = ensure_signed(origin)?;
855 /// # Arguments858 /// # Arguments
856 /// 859 ///
857 /// * collection_id.860 /// * collection_id.
858 #[weight = T::WeightInfo::confirm_sponsorship()]861 #[weight = <T as Config>::WeightInfo::confirm_sponsorship()]
859 pub fn confirm_sponsorship(origin, collection_id: CollectionId) -> DispatchResult {862 pub fn confirm_sponsorship(origin, collection_id: CollectionId) -> DispatchResult {
860863
861 let sender = ensure_signed(origin)?;864 let sender = ensure_signed(origin)?;
879 /// # Arguments882 /// # Arguments
880 /// 883 ///
881 /// * collection_id.884 /// * collection_id.
882 #[weight = T::WeightInfo::remove_collection_sponsor()]885 #[weight = <T as Config>::WeightInfo::remove_collection_sponsor()]
883 pub fn remove_collection_sponsor(origin, collection_id: CollectionId) -> DispatchResult {886 pub fn remove_collection_sponsor(origin, collection_id: CollectionId) -> DispatchResult {
884887
885 let sender = ensure_signed(origin)?;888 let sender = ensure_signed(origin)?;
919 // .saturating_add(RocksDbWeight::get().reads(10 as Weight))922 // .saturating_add(RocksDbWeight::get().reads(10 as Weight))
920 // .saturating_add(RocksDbWeight::get().writes(8 as Weight))]923 // .saturating_add(RocksDbWeight::get().writes(8 as Weight))]
921924
922 #[weight = T::WeightInfo::create_item(data.len())]925 #[weight = <T as Config>::WeightInfo::create_item(data.len())]
923 pub fn create_item(origin, collection_id: CollectionId, owner: T::AccountId, data: CreateItemData) -> DispatchResult {926 pub fn create_item(origin, collection_id: CollectionId, owner: T::AccountId, data: CreateItemData) -> DispatchResult {
924927
925 let sender = ensure_signed(origin)?;928 let sender = ensure_signed(origin)?;
953 /// * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].956 /// * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].
954 /// 957 ///
955 /// * owner: Address, initial owner of the NFT.958 /// * owner: Address, initial owner of the NFT.
956 #[weight = T::WeightInfo::create_item(items_data.into_iter()959 #[weight = <T as Config>::WeightInfo::create_item(items_data.into_iter()
957 .map(|data| { data.len() })960 .map(|data| { data.len() })
958 .sum())]961 .sum())]
959 pub fn create_multiple_items(origin, collection_id: CollectionId, owner: T::AccountId, items_data: Vec<CreateItemData>) -> DispatchResult {962 pub fn create_multiple_items(origin, collection_id: CollectionId, owner: T::AccountId, items_data: Vec<CreateItemData>) -> DispatchResult {
989 /// * collection_id: ID of the collection.992 /// * collection_id: ID of the collection.
990 /// 993 ///
991 /// * item_id: ID of NFT to burn.994 /// * item_id: ID of NFT to burn.
992 #[weight = T::WeightInfo::burn_item()]995 #[weight = <T as Config>::WeightInfo::burn_item()]
993 pub fn burn_item(origin, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {996 pub fn burn_item(origin, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {
994997
995 let sender = ensure_signed(origin)?;998 let sender = ensure_signed(origin)?;
1042 /// * Non-Fungible Mode: Ignored1045 /// * Non-Fungible Mode: Ignored
1043 /// * Fungible Mode: Must specify transferred amount1046 /// * Fungible Mode: Must specify transferred amount
1044 /// * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)1047 /// * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)
1045 #[weight = T::WeightInfo::transfer()]1048 #[weight = <T as Config>::WeightInfo::transfer()]
1046 pub fn transfer(origin, recipient: T::AccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {1049 pub fn transfer(origin, recipient: T::AccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {
1047
1048 let sender = ensure_signed(origin)?;1050 let sender = ensure_signed(origin)?;
1049 let target_collection = <Collection<T>>::get(collection_id);1051 Self::transfer_internal(sender, recipient, collection_id, item_id, value)
1050
1051 // Limits check
1052 Self::is_correct_transfer(collection_id, &target_collection, &recipient)?;
1053
1054 // Transfer permissions check
1055 ensure!(Self::is_item_owner(sender.clone(), collection_id, item_id) ||
1056 Self::is_owner_or_admin_permissions(collection_id, sender.clone()),
1057 Error::<T>::NoPermission);
1058
1059 if target_collection.access == AccessMode::WhiteList {
1060 Self::check_white_list(collection_id, &sender)?;
1061 Self::check_white_list(collection_id, &recipient)?;
1062 }
1063
1064 match target_collection.mode
1065 {
1066 CollectionMode::NFT => Self::transfer_nft(collection_id, item_id, sender.clone(), recipient)?,
1067 CollectionMode::Fungible(_) => Self::transfer_fungible(collection_id, value, &sender, &recipient)?,
1068 CollectionMode::ReFungible(_) => Self::transfer_refungible(collection_id, item_id, value, sender.clone(), recipient)?,
1069 _ => ()
1070 };
1071
1072 Ok(())
1073 }1052 }
10741053
1075 /// Set, change, or remove approved address to transfer the ownership of the NFT.1054 /// Set, change, or remove approved address to transfer the ownership of the NFT.
1087 /// * collection_id.1066 /// * collection_id.
1088 /// 1067 ///
1089 /// * item_id: ID of the item.1068 /// * item_id: ID of the item.
1090 #[weight = T::WeightInfo::approve()]1069 #[weight = <T as Config>::WeightInfo::approve()]
1091 pub fn approve(origin, spender: T::AccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResult {1070 pub fn approve(origin, spender: T::AccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResult {
10921071
1093 let sender = ensure_signed(origin)?;1072 let sender = ensure_signed(origin)?;
1135 /// * item_id: ID of the item.1114 /// * item_id: ID of the item.
1136 /// 1115 ///
1137 /// * value: Amount to transfer.1116 /// * value: Amount to transfer.
1138 #[weight = T::WeightInfo::transfer_from()]1117 #[weight = <T as Config>::WeightInfo::transfer_from()]
1139 pub fn transfer_from(origin, from: T::AccountId, recipient: T::AccountId, collection_id: CollectionId, item_id: TokenId, value: u128 ) -> DispatchResult {1118 pub fn transfer_from(origin, from: T::AccountId, recipient: T::AccountId, collection_id: CollectionId, item_id: TokenId, value: u128 ) -> DispatchResult {
11401119
1141 let sender = ensure_signed(origin)?;1120 let sender = ensure_signed(origin)?;
1142 let mut appoved_transfer = false;1121 let mut appoved_transfer = false;
11431122
1144 // Check approval1123 // Check approval
1145 let mut approval: u128 = 0;1124 let mut approval: u128 = 0;
1146 if <Allowances<T>>::contains_key(collection_id, (item_id, &from, &recipient)) {1125 if <Allowances<T>>::contains_key(collection_id, (item_id, &from, &sender)) {
1147 approval = <Allowances<T>>::get(collection_id, (item_id, &from, &recipient));1126 approval = <Allowances<T>>::get(collection_id, (item_id, &from, &sender));
1148 ensure!(approval >= value, Error::<T>::TokenValueNotEnough);1127 ensure!(approval >= value, Error::<T>::TokenValueNotEnough);
1149 appoved_transfer = true;1128 appoved_transfer = true;
1150 }1129 }
11651144
1166 // Reduce approval by transferred amount or remove if remaining approval drops to 01145 // Reduce approval by transferred amount or remove if remaining approval drops to 0
1167 if approval.checked_sub(value).unwrap_or(0) > 0 {1146 if approval.checked_sub(value).unwrap_or(0) > 0 {
1168 <Allowances<T>>::insert(collection_id, (item_id, &from, &recipient), approval - value);1147 <Allowances<T>>::insert(collection_id, (item_id, &from, &sender), approval - value);
1169 }1148 }
1170 else {1149 else {
1171 <Allowances<T>>::remove(collection_id, (item_id, &from, &recipient));1150 <Allowances<T>>::remove(collection_id, (item_id, &from, &sender));
1172 }1151 }
11731152
1174 match target_collection.mode1153 match target_collection.mode
1182 Ok(())1161 Ok(())
1183 }1162 }
11841163
1185 #[weight = 0]1164 // #[weight = 0]
1186 pub fn safe_transfer_from(origin, collection_id: CollectionId, item_id: TokenId, new_owner: T::AccountId) -> DispatchResult {1165 // pub fn safe_transfer_from(origin, collection_id: CollectionId, item_id: TokenId, new_owner: T::AccountId) -> DispatchResult {
11871166
1188 // let no_perm_mes = "You do not have permissions to modify this collection";1167 // // let no_perm_mes = "You do not have permissions to modify this collection";
1189 // ensure!(<ApprovedList<T>>::contains_key((collection_id, item_id)), no_perm_mes);1168 // // ensure!(<ApprovedList<T>>::contains_key((collection_id, item_id)), no_perm_mes);
1190 // let list_itm = <ApprovedList<T>>::get((collection_id, item_id));1169 // // let list_itm = <ApprovedList<T>>::get((collection_id, item_id));
1191 // ensure!(list_itm.contains(&new_owner.clone()), no_perm_mes);1170 // // ensure!(list_itm.contains(&new_owner.clone()), no_perm_mes);
11921171
1193 // // on_nft_received call1172 // // // on_nft_received call
11941173
1195 // Self::transfer(origin, collection_id, item_id, new_owner)?;1174 // // Self::transfer(origin, collection_id, item_id, new_owner)?;
11961175
1197 Ok(())1176 // Ok(())
1198 }1177 // }
11991178
1200 /// Set off-chain data schema.1179 /// Set off-chain data schema.
1201 /// 1180 ///
1209 /// * collection_id.1188 /// * collection_id.
1210 /// 1189 ///
1211 /// * schema: String representing the offchain data schema.1190 /// * schema: String representing the offchain data schema.
1212 #[weight = T::WeightInfo::set_variable_meta_data()]1191 #[weight = <T as Config>::WeightInfo::set_variable_meta_data()]
1213 pub fn set_variable_meta_data (1192 pub fn set_variable_meta_data (
1214 origin,1193 origin,
1215 collection_id: CollectionId,1194 collection_id: CollectionId,
1254 /// * collection_id.1233 /// * collection_id.
1255 /// 1234 ///
1256 /// * schema: SchemaVersion: enum1235 /// * schema: SchemaVersion: enum
1257 #[weight = T::WeightInfo::set_schema_version()]1236 #[weight = <T as Config>::WeightInfo::set_schema_version()]
1258 pub fn set_schema_version(1237 pub fn set_schema_version(
1259 origin,1238 origin,
1260 collection_id: CollectionId,1239 collection_id: CollectionId,
1281 /// * collection_id.1260 /// * collection_id.
1282 /// 1261 ///
1283 /// * schema: String representing the offchain data schema.1262 /// * schema: String representing the offchain data schema.
1284 #[weight = T::WeightInfo::set_offchain_schema()]1263 #[weight = <T as Config>::WeightInfo::set_offchain_schema()]
1285 pub fn set_offchain_schema(1264 pub fn set_offchain_schema(
1286 origin,1265 origin,
1287 collection_id: CollectionId,1266 collection_id: CollectionId,
1312 /// * collection_id.1291 /// * collection_id.
1313 /// 1292 ///
1314 /// * schema: String representing the const on-chain data schema.1293 /// * schema: String representing the const on-chain data schema.
1315 #[weight = T::WeightInfo::set_const_on_chain_schema()]1294 #[weight = <T as Config>::WeightInfo::set_const_on_chain_schema()]
1316 pub fn set_const_on_chain_schema (1295 pub fn set_const_on_chain_schema (
1317 origin,1296 origin,
1318 collection_id: CollectionId,1297 collection_id: CollectionId,
1343 /// * collection_id.1322 /// * collection_id.
1344 /// 1323 ///
1345 /// * schema: String representing the variable on-chain data schema.1324 /// * schema: String representing the variable on-chain data schema.
1346 #[weight = T::WeightInfo::set_const_on_chain_schema()]1325 #[weight = <T as Config>::WeightInfo::set_const_on_chain_schema()]
1347 pub fn set_variable_on_chain_schema (1326 pub fn set_variable_on_chain_schema (
1348 origin,1327 origin,
1349 collection_id: CollectionId,1328 collection_id: CollectionId,
1363 }1342 }
13641343
1365 // Sudo permissions function1344 // Sudo permissions function
1366 #[weight = T::WeightInfo::set_chain_limits()]1345 #[weight = <T as Config>::WeightInfo::set_chain_limits()]
1367 pub fn set_chain_limits(1346 pub fn set_chain_limits(
1368 origin,1347 origin,
1369 limits: ChainLimits1348 limits: ChainLimits
1387 /// * contract address1366 /// * contract address
1388 /// * enable flag1367 /// * enable flag
1389 /// 1368 ///
1390 #[weight = T::WeightInfo::enable_contract_sponsoring()]1369 #[weight = <T as Config>::WeightInfo::enable_contract_sponsoring()]
1391 pub fn enable_contract_sponsoring(1370 pub fn enable_contract_sponsoring(
1392 origin,1371 origin,
1393 contract_address: T::AccountId,1372 contract_address: T::AccountId,
1422 /// -`contract_address`: Address of the contract to sponsor1401 /// -`contract_address`: Address of the contract to sponsor
1423 /// -`rate_limit`: Number of blocks to wait until the next sponsored transaction is allowed1402 /// -`rate_limit`: Number of blocks to wait until the next sponsored transaction is allowed
1424 /// 1403 ///
1425 #[weight = T::WeightInfo::set_contract_sponsoring_rate_limit()]1404 #[weight = <T as Config>::WeightInfo::set_contract_sponsoring_rate_limit()]
1426 pub fn set_contract_sponsoring_rate_limit(1405 pub fn set_contract_sponsoring_rate_limit(
1427 origin,1406 origin,
1428 contract_address: T::AccountId,1407 contract_address: T::AccountId,
1449 /// -`contract_address`: Address of the contract.1428 /// -`contract_address`: Address of the contract.
1450 /// 1429 ///
1451 /// - `enable`: . 1430 /// - `enable`: .
1452 #[weight = T::WeightInfo::toggle_contract_white_list()]1431 #[weight = <T as Config>::WeightInfo::toggle_contract_white_list()]
1453 pub fn toggle_contract_white_list(1432 pub fn toggle_contract_white_list(
1454 origin,1433 origin,
1455 contract_address: T::AccountId,1434 contract_address: T::AccountId,
1476 /// -`contract_address`: Address of the contract.1455 /// -`contract_address`: Address of the contract.
1477 ///1456 ///
1478 /// -`account_address`: Address to add.1457 /// -`account_address`: Address to add.
1479 #[weight = T::WeightInfo::add_to_contract_white_list()]1458 #[weight = <T as Config>::WeightInfo::add_to_contract_white_list()]
1480 pub fn add_to_contract_white_list(1459 pub fn add_to_contract_white_list(
1481 origin,1460 origin,
1482 contract_address: T::AccountId,1461 contract_address: T::AccountId,
1503 /// -`contract_address`: Address of the contract.1482 /// -`contract_address`: Address of the contract.
1504 ///1483 ///
1505 /// -`account_address`: Address to remove.1484 /// -`account_address`: Address to remove.
1506 #[weight = T::WeightInfo::remove_from_contract_white_list()]1485 #[weight = <T as Config>::WeightInfo::remove_from_contract_white_list()]
1507 pub fn remove_from_contract_white_list(1486 pub fn remove_from_contract_white_list(
1508 origin,1487 origin,
1509 contract_address: T::AccountId,1488 contract_address: T::AccountId,
1519 Ok(())1498 Ok(())
1520 }1499 }
15211500
1522 #[weight = T::WeightInfo::set_collection_limits()]1501 #[weight = <T as Config>::WeightInfo::set_collection_limits()]
1523 pub fn set_collection_limits(1502 pub fn set_collection_limits(
1524 origin,1503 origin,
1525 collection_id: u32,1504 collection_id: u32,
1549 }1528 }
1550}1529}
15511530
1552impl<T: Trait> Module<T> {1531impl<T: Config> Module<T> {
15531532
1533 pub fn transfer_internal(sender: T::AccountId, recipient: T::AccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResult {
1534
1535 let target_collection = <Collection<T>>::get(collection_id);
1536
1537 // Limits check
1538 Self::is_correct_transfer(collection_id, &target_collection, &recipient)?;
1539
1540 // Transfer permissions check
1541 ensure!(Self::is_item_owner(sender.clone(), collection_id, item_id) ||
1542 Self::is_owner_or_admin_permissions(collection_id, sender.clone()),
1543 Error::<T>::NoPermission);
1544
1545 if target_collection.access == AccessMode::WhiteList {
1546 Self::check_white_list(collection_id, &sender)?;
1547 Self::check_white_list(collection_id, &recipient)?;
1548 }
1549
1550 match target_collection.mode
1551 {
1552 CollectionMode::NFT => Self::transfer_nft(collection_id, item_id, sender.clone(), recipient)?,
1553 CollectionMode::Fungible(_) => Self::transfer_fungible(collection_id, value, &sender, &recipient)?,
1554 CollectionMode::ReFungible(_) => Self::transfer_refungible(collection_id, item_id, value, sender.clone(), recipient)?,
1555 _ => ()
1556 };
1557
1558 Ok(())
1559 }
1560
1561
1554 fn is_correct_transfer(collection_id: CollectionId, collection: &CollectionType<T::AccountId>, recipient: &T::AccountId) -> DispatchResult {1562 fn is_correct_transfer(collection_id: CollectionId, collection: &CollectionType<T::AccountId>, recipient: &T::AccountId) -> DispatchResult {
15551563
1556 // check token limit and account token limit1564 // check token limit and account token limit
2244/// Fee multiplier.2252/// Fee multiplier.
2245pub type Multiplier = FixedU128;2253pub type Multiplier = FixedU128;
22462254
2247type BalanceOf<T> = <<T as transaction_payment::Trait>::Currency as Currency<2255type BalanceOf<T> = <<T as transaction_payment::Config>::OnChargeTransaction as transaction_payment::OnChargeTransaction<T>>::Balance;
2248 <T as system::Trait>::AccountId,
2249>>::Balance;
2250type NegativeImbalanceOf<T> = <<T as transaction_payment::Trait>::Currency as Currency<
2251 <T as system::Trait>::AccountId,
2252>>::NegativeImbalance;
22532256
2254/// Require the transactor pay for themselves and maybe include a tip to gain additional priority2257/// Require the transactor pay for themselves and maybe include a tip to gain additional priority
2255/// in the queue.2258/// in the queue.
2256#[derive(Encode, Decode, Clone, Eq, PartialEq)]2259#[derive(Encode, Decode, Clone, Eq, PartialEq)]
2257pub struct ChargeTransactionPayment<T: Trait + Send + Sync>(2260pub struct ChargeTransactionPayment<T: Config>(#[codec(compact)] BalanceOf<T>);
2258 #[codec(compact)] BalanceOf<T>
2259);
22602261
2261impl<T: Trait + Send + Sync> sp_std::fmt::Debug2262impl<T: Config + Send + Sync> sp_std::fmt::Debug
2262 for ChargeTransactionPayment<T>2263 for ChargeTransactionPayment<T>
2263{2264{
2264 #[cfg(feature = "std")]2265 #[cfg(feature = "std")]
2265 fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {2266 fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
2266 write!(f, "ChargeTransactionPayment<{:?}>", self.0)2267 write!(f, "ChargeTransactionPayment<{:?}>", self.0)
2267 }2268 }
2268 #[cfg(not(feature = "std"))]2269 #[cfg(not(feature = "std"))]
2269 fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {2270 fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result {
2270 Ok(())2271 Ok(())
2271 }2272 }
2272}2273}
22732274
2274impl<T: Trait + Send + Sync> ChargeTransactionPayment<T>2275impl<T: Config> ChargeTransactionPayment<T>
2275where2276where
2276 T::Call: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,2277 T::Call: Dispatchable<Info=DispatchInfo, PostInfo=PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,
2277 BalanceOf<T>: Send + Sync + FixedPointOperand,2278 BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
2279 T::AccountId: AsRef<[u8]>,
2280 T::AccountId: UncheckedFrom<T::Hash>,
2278{2281{
2279 /// utility constructor. Used only in client/factory code.2282 fn traditional_fee(
2280 pub fn from(fee: BalanceOf<T>) -> Self {
2281 Self(fee)
2282 }
2283
2284 pub fn traditional_fee(
2285 len: usize,2283 len: usize,
2286 info: &DispatchInfoOf<T::Call>,2284 info: &DispatchInfoOf<T::Call>,
2287 tip: BalanceOf<T>,2285 tip: BalanceOf<T>,
2293 }2291 }
22942292
2295 fn get_priority(len: usize, info: &DispatchInfoOf<T::Call>, final_fee: BalanceOf<T>) -> TransactionPriority {2293 fn get_priority(len: usize, info: &DispatchInfoOf<T::Call>, final_fee: BalanceOf<T>) -> TransactionPriority {
2296 let weight_saturation = T::MaximumBlockWeight::get() / info.weight.max(1);2294 let weight_saturation = T::BlockWeights::get().max_block / info.weight.max(1);
2297 let len_saturation = T::MaximumBlockLength::get() as u64 / (len as u64).max(1);2295 let max_block_length = *T::BlockLength::get().max.get(DispatchClass::Normal);
2296 let len_saturation = max_block_length as u64 / (len as u64).max(1);
2298 let coefficient: BalanceOf<T> = weight_saturation.min(len_saturation).saturated_into::<BalanceOf<T>>();2297 let coefficient: BalanceOf<T> = weight_saturation
2298 .min(len_saturation)
2299 .saturated_into::<BalanceOf<T>>();
2299 final_fee.saturating_mul(coefficient).saturated_into::<TransactionPriority>()2300 final_fee
2301 .saturating_mul(coefficient)
2302 .saturated_into::<TransactionPriority>()
2300 }2303 }
23012304
2302 fn withdraw_fee(2305 fn withdraw_fee(
2303 &self,2306 &self,
2304 who: &T::AccountId,2307 who: &T::AccountId,
2305 call: &T::Call,2308 call: &T::Call,
2306 info: &DispatchInfoOf<T::Call>,2309 info: &DispatchInfoOf<T::Call>,
2307 len: usize,2310 len: usize,
2308 ) -> Result<(BalanceOf<T>, Option<NegativeImbalanceOf<T>>), TransactionValidityError> {2311 ) -> Result<
2312 (
2313 BalanceOf<T>,
2314 <<T as transaction_payment::Config>::OnChargeTransaction as transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
2315 ),
2316 TransactionValidityError,
2317 > {
2309 let tip = self.0;2318 let tip = self.0;
23102319
2311 // Set fee based on call type. Creating collection costs 1 Unique.2320 // Set fee based on call type. Creating collection costs 1 Unique.
23192328
2320 // Only mess with balances if fee is not zero.2329 // Only mess with balances if fee is not zero.
2321 if fee.is_zero() {2330 if fee.is_zero() {
2322 return Ok((fee, None));2331 return <<T as transaction_payment::Config>::OnChargeTransaction as transaction_payment::OnChargeTransaction<T>>::withdraw_fee(who, call, info, fee, tip)
2332 .map(|i| (fee, i));
2323 }2333 }
23242334
2325 // Determine who is paying transaction fee based on ecnomic model2335 // Determine who is paying transaction fee based on ecnomic model
2454 sponsor = match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {2464 sponsor = match IsSubType::<pallet_contracts::Call<T>>::is_sub_type(call) {
24552465
2456 // On instantiation: set the contract owner2466 // On instantiation: set the contract owner
2457 Some(pallet_contracts::Call::instantiate(_endowment, _gas_limit, code_hash, data)) => {2467 Some(pallet_contracts::Call::instantiate(_endowment, _gas_limit, code_hash, _data, salt)) => {
24582468
2459 let new_contract_address = <T as pallet_contracts::Trait>::DetermineContractAddress::contract_address_for(2469 let new_contract_address = <pallet_contracts::Module<T>>::contract_address(
2460 code_hash,
2461 &data,
2462 &who,2470 &who,
2471 code_hash,
2472 salt,
2463 );2473 );
2464 <ContractOwner<T>>::insert(new_contract_address.clone(), who.clone());2474 <ContractOwner<T>>::insert(new_contract_address.clone(), who.clone());
24652475
2517 who_pays_fee = who.clone();2527 who_pays_fee = who.clone();
2518 }2528 }
25192529
2520 match <T as transaction_payment::Trait>::Currency::withdraw(2530 <<T as transaction_payment::Config>::OnChargeTransaction as transaction_payment::OnChargeTransaction<T>>::withdraw_fee(&who_pays_fee, call, info, fee, tip)
2521 &who_pays_fee,
2522 fee,
2523 if tip.is_zero() {
2524 WithdrawReason::TransactionPayment.into()2531 .map(|i| (fee, i))
2525 } else {
2526 WithdrawReason::TransactionPayment | WithdrawReason::Tip
2527 },
2528 ExistenceRequirement::KeepAlive,
2529 ) {
2530 Ok(imbalance) => Ok((fee, Some(imbalance))),
2531 Err(_) => Err(InvalidTransaction::Payment.into()),
2532 }
2533 }2532 }
2534}2533}
25352534
25362535
2537impl<T: Trait + Send + Sync> SignedExtension2536impl<T: Config + Send + Sync> SignedExtension
2538 for ChargeTransactionPayment<T>2537 for ChargeTransactionPayment<T>
2539where2538where
2540 BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,2539 BalanceOf<T>: Send + Sync + From<u64> + FixedPointOperand,
2541 T::Call: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,2540 T::Call: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo> + IsSubType<Call<T>> + IsSubType<pallet_contracts::Call<T>>,
2541 T::AccountId: AsRef<[u8]>,
2542 T::AccountId: UncheckedFrom<T::Hash>,
2542{2543{
2543 const IDENTIFIER: &'static str = "ChargeTransactionPayment";2544 const IDENTIFIER: &'static str = "ChargeTransactionPayment";
2544 type AccountId = T::AccountId;2545 type AccountId = T::AccountId;
2545 type Call = T::Call;2546 type Call = T::Call;
2546 type AdditionalSigned = ();2547 type AdditionalSigned = ();
2547 type Pre = (2548 type Pre = (
2549 // tip
2548 BalanceOf<T>,2550 BalanceOf<T>,
2551 // who pays fee
2549 Self::AccountId,2552 Self::AccountId,
2550 Option<NegativeImbalanceOf<T>>,2553 // imbalance resulting from withdrawing the fee
2551 BalanceOf<T>,2554 <<T as transaction_payment::Config>::OnChargeTransaction as transaction_payment::OnChargeTransaction<T>>::LiquidityInfo,
2552 );2555 );
2553 fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {2556 fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
2554 Ok(())2557 Ok(())
2575 info: &DispatchInfoOf<Self::Call>,2578 info: &DispatchInfoOf<Self::Call>,
2576 len: usize,2579 len: usize,
2577 ) -> Result<Self::Pre, TransactionValidityError> {2580 ) -> Result<Self::Pre, TransactionValidityError> {
2578 let (fee, imbalance) = self.withdraw_fee(who, call, info, len)?;2581 let (_fee, imbalance) = self.withdraw_fee(who, call, info, len)?;
2579 Ok((self.0, who.clone(), imbalance, fee))2582 Ok((self.0, who.clone(), imbalance))
2580 }2583 }
25812584
2582 fn post_dispatch(2585 fn post_dispatch(
2586 len: usize,2589 len: usize,
2587 _result: &DispatchResult,2590 _result: &DispatchResult,
2588 ) -> Result<(), TransactionValidityError> {2591 ) -> Result<(), TransactionValidityError> {
2589 let (tip, who, imbalance, fee) = pre;2592 let (tip, who, imbalance) = pre;
2590 if let Some(payed) = imbalance {2593 let actual_fee = transaction_payment::Module::<T>::compute_actual_fee(
2591 let actual_fee = <transaction_payment::Module<T>>::compute_actual_fee(
2592 len as u32, info, post_info, tip,2594 len as u32,
2595 info,
2596 post_info,
2597 tip,
2593 );2598 );
2594 let refund = fee.saturating_sub(actual_fee);
2595 let actual_payment =
2596 match <T as transaction_payment::Trait>::Currency::deposit_into_existing(2599 <T as transaction_payment::Config>::OnChargeTransaction::correct_and_deposit_fee(&who, info, post_info, actual_fee, tip, imbalance)?;
2597 &who, refund,
2598 ) {
2599 Ok(refund_imbalance) => {
2600 // The refund cannot be larger than the up front payed max weight.
2601 // `PostDispatchInfo::calc_unspent` guards against such a case.
2602 match payed.offset(refund_imbalance) {
2603 Ok(actual_payment) => actual_payment,
2604 Err(_) => return Err(InvalidTransaction::Payment.into()),
2605 }
2606 }
2607 // We do not recreate the account using the refund. The up front payment
2608 // is gone in that case.
2609 Err(_) => payed,
2610 };
2611 let imbalances = actual_payment.split(tip);
2612 <T as transaction_payment::Trait>::OnTransactionPayment::on_unbalanceds(
2613 Some(imbalances.0).into_iter().chain(Some(imbalances.1)),
2614 );
2615 }
2616 Ok(())2600 Ok(())
2617 }2601 }
2618}2602}
26192603
modifiedruntime/Cargo.tomldiffbeforeafterboth
5license = 'Unlicense'5license = 'Unlicense'
6name = 'nft-runtime'6name = 'nft-runtime'
7repository = 'https://github.com/usetech-llc/nft_parachain/'7repository = 'https://github.com/usetech-llc/nft_parachain/'
8version = '2.0.0'8version = '3.0.0'
99
10[package.metadata.docs.rs]10[package.metadata.docs.rs]
11targets = ['x86_64-unknown-linux-gnu']11targets = ['x86_64-unknown-linux-gnu']
25serde = { features = ['derive'], optional = true, version = '1.0.101' }25serde = { features = ['derive'], optional = true, version = '1.0.101' }
2626
27# local dependencies27# local dependencies
28pallet-nft = { path = '../pallets/nft', default-features = false, version = '2.0.0' }28pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
2929
30# Substrate dependencies30# Substrate dependencies
31frame-benchmarking = { default-features = false, optional = true, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }31frame-benchmarking = { default-features = false, optional = true, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
32frame-executive = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }32frame-executive = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
33frame-support = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }33frame-support = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
34frame-system = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }34frame-system = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
35frame-system-benchmarking = { default-features = false, optional = true, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }35frame-system-benchmarking = { default-features = false, optional = true, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
36frame-system-rpc-runtime-api = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }36frame-system-rpc-runtime-api = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
37pallet-aura = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }37pallet-aura = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
38pallet-balances = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }38pallet-balances = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
39pallet-contracts = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }39pallet-contracts = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
40pallet-contracts-primitives = { default-features = false, version = '2.0.0', git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }40pallet-contracts-primitives = { default-features = false, version = '2.0.1', git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
41pallet-contracts-rpc-runtime-api = { default-features = false, version = '0.8.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }41pallet-contracts-rpc-runtime-api = { default-features = false, version = '0.8.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
42pallet-grandpa = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }42pallet-grandpa = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
43pallet-randomness-collective-flip = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }43pallet-randomness-collective-flip = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
44pallet-sudo = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }44pallet-sudo = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
45pallet-timestamp = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }45pallet-timestamp = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
46pallet-transaction-payment = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }46pallet-transaction-payment = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
47pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }47pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
48pallet-treasury = { version = "2.0.0", default-features = false, git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }48pallet-treasury = { version = "2.0.1", default-features = false, git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
49pallet-vesting = { version = "2.0.0", default-features = false, git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }49pallet-vesting = { version = "2.0.1", default-features = false, git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
50sp-api = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }50sp-api = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
51sp-arithmetic = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
51sp-block-builder = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }52sp-block-builder = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
52sp-consensus-aura = { default-features = false, version = '0.8.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }53sp-consensus-aura = { default-features = false, version = '0.8.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
53sp-core = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }54sp-core = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
54sp-inherents = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }55sp-inherents = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
55sp-offchain = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }56sp-offchain = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
56sp-runtime = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }57sp-runtime = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
57sp-session = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }58sp-session = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
58sp-std = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }59sp-std = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
59sp-transaction-pool = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }60sp-transaction-pool = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
60sp-version = { default-features = false, version = '2.0.0' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'release_flexi' }61sp-version = { default-features = false, version = '2.0.1' , git = 'https://github.com/usetech-llc/substrate.git', branch = 'unique' }
62smallvec = "1.4.1"
6163
62[features]64[features]
63default = ['std']65default = ['std']
addedruntime/src/chain_extension.rsdiffbeforeafterboth

no changes

modifiedruntime/src/lib.rsdiffbeforeafterboth
13#[cfg(feature = "std")]13#[cfg(feature = "std")]
14include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));14include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
1515
16use pallet_contracts_rpc_runtime_api::ContractExecResult;
17use pallet_grandpa::fg_primitives;16use pallet_grandpa::fg_primitives;
18use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};17use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};
19use sp_api::impl_runtime_apis;18use sp_api::impl_runtime_apis;
20use sp_consensus_aura::sr25519::AuthorityId as AuraId;19use sp_consensus_aura::sr25519::AuthorityId as AuraId;
21use sp_core::{ crypto::KeyTypeId, crypto::Public, OpaqueMetadata };20use sp_core::{ crypto::KeyTypeId, crypto::Public, OpaqueMetadata };
22use sp_runtime::{21use sp_runtime::{
22 Permill, Perbill, Percent,
23 ModuleId,
23 create_runtime_str, generic, impl_opaque_keys,24 create_runtime_str, generic, impl_opaque_keys,
24 traits::{25 traits::{
25 Convert, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount, 26 Convert, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount,
26 IdentityLookup, NumberFor, Saturating, Verify,27 IdentityLookup, NumberFor, Verify,
27 },28 },
28 transaction_validity::{TransactionSource, TransactionValidity},29 transaction_validity::{TransactionSource, TransactionValidity},
29 ApplyExtrinsicResult, MultiSignature,30 ApplyExtrinsicResult, MultiSignature,
30};31};
31use sp_std::prelude::*;
32#[cfg(feature = "std")]32#[cfg(feature = "std")]
33use sp_version::NativeVersion;33use sp_version::NativeVersion;
34use sp_version::RuntimeVersion;34use sp_version::RuntimeVersion;
3535pub use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment, CurrencyAdapter, FeeDetails, RuntimeDispatchInfo};
36// A few exports that help ease life for downstream crates.36// A few exports that help ease life for downstream crates.
37pub use pallet_balances::Call as BalancesCall;37pub use pallet_balances::Call as BalancesCall;
38pub use pallet_contracts::Schedule as ContractsSchedule;38pub use pallet_contracts::{Schedule as ContractsSchedule, WeightInfo};
39pub use frame_support::{39pub use frame_support::{
40 construct_runtime,40 construct_runtime,
41 dispatch::DispatchResult,41 dispatch::DispatchResult,
42 parameter_types,42 parameter_types,
43 StorageValue,
43 traits::{44 traits::{
44 Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,45 Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,
45 WithdrawReason, LockIdentifier,46 LockIdentifier,
46 },47 },
47 weights::{48 weights::{
48 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},49 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
49 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,50 DispatchInfo, GetDispatchInfo, Pays, PostDispatchInfo, Weight,
50 WeightToFeePolynomial,51 WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients
51 },52 },
52 StorageValue,
53};53};
54#[cfg(any(feature = "std", test))]54// #[cfg(any(feature = "std", test))]
55pub use sp_runtime::BuildStorage;
56use sp_runtime:: { Perbill, Permill, Percent, ModuleId };
57use frame_system::{self as system, EnsureRoot };55use frame_system::{
56 self as system,
57 EnsureRoot,
58 limits::{BlockWeights, BlockLength},
59};
58use sp_std::{marker::PhantomData};60use sp_std::{prelude::*, marker::PhantomData};
61use sp_arithmetic::{traits::{BaseArithmetic, Unsigned}};
62use smallvec::smallvec;
5963
60pub use pallet_timestamp::Call as TimestampCall;64pub use pallet_timestamp::Call as TimestampCall;
65
66mod chain_extension;
67use crate::chain_extension::NFTExtension;
6168
62/// Struct that handles the conversion of Balance -> `u64`. This is used for69/// Struct that handles the conversion of Balance -> `u64`. This is used for
63/// staking's election calculation.70/// staking's election calculation.
168}175}
169176
170/// Provides a membership set with only the configured aura users177/// Provides a membership set with only the configured aura users
171pub struct ValiudatorsOnly<Runtime: pallet_aura::Trait>(PhantomData<Runtime>);178pub struct ValiudatorsOnly<Runtime: pallet_aura::Config>(PhantomData<Runtime>);
172impl frame_support::traits::Contains<AccountId> for ValiudatorsOnly<Runtime> {179impl frame_support::traits::Contains<AccountId> for ValiudatorsOnly<Runtime> {
173 fn contains(t: &AccountId) -> bool {180 fn contains(t: &AccountId) -> bool {
174 let arr: [u8; 32] = *t.as_ref();181 let arr: [u8; 32] = *t.as_ref();
204 }211 }
205}212}
213
214type NegativeImbalance = <Balances as Currency<AccountId>>::NegativeImbalance;
215
216pub struct DealWithFees;
217impl OnUnbalanced<NegativeImbalance> for DealWithFees {
218 fn on_unbalanceds<B>(mut fees_then_tips: impl Iterator<Item=NegativeImbalance>) {
219 if let Some(fees) = fees_then_tips.next() {
220 // for fees, 100% to treasury
221 let mut split = fees.ration(100, 0);
222 if let Some(tips) = fees_then_tips.next() {
223 // for tips, if any, 100% to treasury
224 tips.ration_merge_into(100, 0, &mut split);
225 }
226 Treasury::on_unbalanced(split.0);
227 // Author::on_unbalanced(split.1);
228 }
229 }
230}
231
232/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
233/// This is used to limit the maximal weight of a single extrinsic.
234const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10);
235/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used
236/// by Operational extrinsics.
237const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
238/// We allow for 2 seconds of compute with a 6 second average block time.
239const MAXIMUM_BLOCK_WEIGHT: Weight = 2 * WEIGHT_PER_SECOND;
206240
207parameter_types! {241parameter_types! {
208 pub const BlockHashCount: BlockNumber = 2400;242 pub const BlockHashCount: BlockNumber = 2400;
209 /// We allow for 2 seconds of compute with a 6 second average block time.
210 pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;243 pub RuntimeBlockLength: BlockLength =
244 BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO);
211 pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);245 pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
212 /// Assume 10% of weight for average on_initialize calls.
213 pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()246 pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;
247 pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder()
248 .base_block(BlockExecutionWeight::get())
214 .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();249 .for_class(DispatchClass::all(), |weights| {
250 weights.base_extrinsic = ExtrinsicBaseWeight::get();
251 })
252 .for_class(DispatchClass::Normal, |weights| {
215 pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;253 weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT);
254 })
255 .for_class(DispatchClass::Operational, |weights| {
256 weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT);
257 // Operational transactions have some extra reserved space, so that they
258 // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`.
259 weights.reserved = Some(
260 MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT
261 );
262 })
263 .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO)
264 .build_or_panic();
216 pub const Version: RuntimeVersion = VERSION;265 pub const Version: RuntimeVersion = VERSION;
266 pub const SS58Prefix: u8 = 42;
217}267}
218268
219impl system::Trait for Runtime {269impl system::Config for Runtime {
220 /// The basic call filter to use in dispatchable.270 /// The basic call filter to use in dispatchable.
221 type BaseCallFilter = ();271 type BaseCallFilter = ();
222 /// The identifier used to distinguish between accounts.272 /// The identifier used to distinguish between accounts.
241 type Origin = Origin;291 type Origin = Origin;
242 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).292 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).
243 type BlockHashCount = BlockHashCount;293 type BlockHashCount = BlockHashCount;
244 /// Maximum weight of each block.
245 type MaximumBlockWeight = MaximumBlockWeight;
246 /// The weight of database operations that the runtime can invoke.294 /// The weight of database operations that the runtime can invoke.
247 type DbWeight = RocksDbWeight;295 type DbWeight = RocksDbWeight;
248 /// The weight of the overhead invoked on the block import process, independent of the296 /// The weight of the overhead invoked on the block import process, independent of the
249 /// extrinsics included in that block.297 /// extrinsics included in that block.
250 type BlockExecutionWeight = BlockExecutionWeight;298 type BlockWeights = RuntimeBlockWeights;
251 /// The base weight of any extrinsic processed by the runtime, independent of the
252 /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...)
253 type ExtrinsicBaseWeight = ExtrinsicBaseWeight;
254 /// The maximum weight that a single extrinsic of `Normal` dispatch class can have,
255 /// idependent of the logic of that extrinsics. (Roughly max block weight - average on
256 /// initialize cost).
257 type MaximumExtrinsicWeight = MaximumExtrinsicWeight;
258 /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.
259 type MaximumBlockLength = MaximumBlockLength;
260 /// Portion of the block weight that is available to all normal transactions.
261 type AvailableBlockRatio = AvailableBlockRatio;
262 /// Version of the runtime.299 /// Version of the runtime.
263 type Version = Version;300 type Version = Version;
264 /// This type is being generated by `construct_runtime!`.301 /// This type is being generated by `construct_runtime!`.
270 /// The data to be stored in an account.307 /// The data to be stored in an account.
271 type AccountData = pallet_balances::AccountData<Balance>;308 type AccountData = pallet_balances::AccountData<Balance>;
272 /// Weight information for the extrinsics of this pallet.309 /// Weight information for the extrinsics of this pallet.
273 type SystemWeightInfo = ();310 type SystemWeightInfo = system::weights::SubstrateWeight<Runtime>;
311
312 type BlockLength = RuntimeBlockLength;
313 type SS58Prefix = SS58Prefix;
274}314}
275315
276impl pallet_aura::Trait for Runtime {316impl pallet_aura::Config for Runtime {
277 type AuthorityId = AuraId;317 type AuthorityId = AuraId;
278}318}
279319
280impl pallet_grandpa::Trait for Runtime {320impl pallet_grandpa::Config for Runtime {
281 type Event = Event;321 type Event = Event;
282 type Call = Call;322 type Call = Call;
283323
300 pub const MinimumPeriod: u64 = SLOT_DURATION / 2;340 pub const MinimumPeriod: u64 = SLOT_DURATION / 2;
301}341}
302342
303impl pallet_timestamp::Trait for Runtime {343impl pallet_timestamp::Config for Runtime {
304 /// A timestamp: milliseconds since the unix epoch.344 /// A timestamp: milliseconds since the unix epoch.
305 type Moment = u64;345 type Moment = u64;
306 type OnTimestampSet = Aura;346 type OnTimestampSet = Aura;
314 pub const MaxLocks: u32 = 50;354 pub const MaxLocks: u32 = 50;
315}355}
316356
317impl pallet_balances::Trait for Runtime {357impl pallet_balances::Config for Runtime {
318 type MaxLocks = MaxLocks;358 type MaxLocks = MaxLocks;
319 /// The type for recording an account's balance.359 /// The type for recording an account's balance.
320 type Balance = Balance;360 type Balance = Balance;
326 type WeightInfo = ();366 type WeightInfo = ();
327}367}
328368
329pub const MILLICENTS: Balance = 1_000_000_000;369pub const MICROUNIQUE: Balance = 1_000_000_000;
330pub const CENTS: Balance = 1_000 * MILLICENTS;370pub const MILLIUNIQUE: Balance = 1_000 * MICROUNIQUE;
371pub const CENTIUNIQUE: Balance = 10 * MILLIUNIQUE;
331pub const DOLLARS: Balance = 100 * CENTS;372pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
373
374pub const fn deposit(items: u32, bytes: u32) -> Balance {
375 items as Balance * 15 * CENTIUNIQUE + (bytes as Balance) * 6 * CENTIUNIQUE
376}
332377
333parameter_types! {378parameter_types! {
334 pub const TombstoneDeposit: Balance = 0;379 pub const TombstoneDeposit: Balance = deposit(
380 0,
381 sp_std::mem::size_of::<pallet_contracts::ContractInfo<Runtime>>() as u32
382 );
335 pub const RentByteFee: Balance = 4 * MILLICENTS;383 pub const DepositPerContract: Balance = TombstoneDeposit::get();
336 pub const RentDepositOffset: Balance = 1000 * MILLICENTS;384 pub const DepositPerStorageByte: Balance = deposit(0, 1);
385 pub const DepositPerStorageItem: Balance = deposit(1, 0);
386 pub RentFraction: Perbill = Perbill::from_rational_approximation(1u32, 30 * DAYS);
337 pub const SurchargeReward: Balance = 150 * MILLICENTS;387 pub const SurchargeReward: Balance = 150 * MILLIUNIQUE;
388 pub const SignedClaimHandicap: u32 = 2;
389 pub const MaxDepth: u32 = 32;
390 pub const MaxValueSize: u32 = 16 * 1024;
391 // The lazy deletion runs inside on_initialize.
392 pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO *
393 RuntimeBlockWeights::get().max_block;
394 // The weight needed for decoding the queue should be less or equal than a fifth
395 // of the overall weight dedicated to the lazy deletion.
396 pub DeletionQueueDepth: u32 = ((DeletionWeightLimit::get() / (
397 <Runtime as pallet_contracts::Config>::WeightInfo::on_initialize_per_queue_item(1) -
398 <Runtime as pallet_contracts::Config>::WeightInfo::on_initialize_per_queue_item(0)
399 )) / 5) as u32;
338}400}
401
339402
340impl pallet_contracts::Trait for Runtime {403impl pallet_contracts::Config for Runtime {
341 type Time = Timestamp;404 type Time = Timestamp;
342 type Randomness = RandomnessCollectiveFlip;405 type Randomness = RandomnessCollectiveFlip;
343 type Currency = Balances;406 type Currency = Balances;
344 type Event = Event;407 type Event = Event;
345 type DetermineContractAddress = pallet_contracts::SimpleAddressDeterminer<Runtime>;
346 type TrieIdGenerator = pallet_contracts::TrieIdFromParentCounter<Runtime>;
347 type RentPayment = ();408 type RentPayment = ();
348 type SignedClaimHandicap = pallet_contracts::DefaultSignedClaimHandicap;409 type SignedClaimHandicap = SignedClaimHandicap;
349 type TombstoneDeposit = TombstoneDeposit;410 type TombstoneDeposit = TombstoneDeposit;
350 type StorageSizeOffset = pallet_contracts::DefaultStorageSizeOffset;411 type DepositPerContract = DepositPerContract;
351 type RentByteFee = RentByteFee;412 type DepositPerStorageByte = DepositPerStorageByte;
352 type RentDepositOffset = RentDepositOffset;413 type DepositPerStorageItem = DepositPerStorageItem;
414 type RentFraction = RentFraction;
353 type SurchargeReward = SurchargeReward;415 type SurchargeReward = SurchargeReward;
354 type MaxDepth = pallet_contracts::DefaultMaxDepth;416 type MaxDepth = MaxDepth;
355 type MaxValueSize = pallet_contracts::DefaultMaxValueSize;417 type MaxValueSize = MaxValueSize;
356 type WeightPrice = pallet_transaction_payment::Module<Self>;418 type WeightPrice = pallet_transaction_payment::Module<Self>;
419 type WeightInfo = pallet_contracts::weights::SubstrateWeight<Self>;
420 type ChainExtension = NFTExtension;
421 type DeletionQueueDepth = DeletionQueueDepth;
422 type DeletionWeightLimit = DeletionWeightLimit;
357}423}
358424
359parameter_types! {425parameter_types! {
360 pub const TransactionByteFee: Balance = 10 * MILLICENTS;426 pub const TransactionByteFee: Balance = 501 * MICROUNIQUE; // Targeting 0.1 Unique per NFT transfer
361}427}
428
429/// Linear implementor of `WeightToFeePolynomial`
430pub struct LinearFee<T>(sp_std::marker::PhantomData<T>);
431
432impl<T> WeightToFeePolynomial for LinearFee<T> where
433 T: BaseArithmetic + From<u32> + Copy + Unsigned
434{
435 type Balance = T;
436
437 fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
438 smallvec!(WeightToFeeCoefficient {
439 coeff_integer: 146_700u32.into(), // Targeting 0.1 Unique per NFT transfer
440 coeff_frac: Perbill::zero(),
441 negative: false,
442 degree: 1,
443 })
444 }
445}
362446
363impl pallet_transaction_payment::Trait for Runtime {447impl pallet_transaction_payment::Config for Runtime {
364 type Currency = pallet_balances::Module<Runtime>;448 type OnChargeTransaction = CurrencyAdapter<Balances, DealWithFees>;
365 type OnTransactionPayment = Treasury;
366 type TransactionByteFee = TransactionByteFee;449 type TransactionByteFee = TransactionByteFee;
367 type WeightToFee = IdentityFee<Balance>;450 type WeightToFee = LinearFee<Balance>;
368 type FeeMultiplierUpdate = ();451 type FeeMultiplierUpdate = ();
369}452}
370453
371parameter_types! {454parameter_types! {
372 pub const ProposalBond: Permill = Permill::from_percent(5);455 pub const ProposalBond: Permill = Permill::from_percent(5);
373 pub const ProposalBondMinimum: Balance = 1 * DOLLARS;456 pub const ProposalBondMinimum: Balance = 1 * UNIQUE;
374 pub const SpendPeriod: BlockNumber = 5 * MINUTES;457 pub const SpendPeriod: BlockNumber = 5 * MINUTES;
375 pub const Burn: Permill = Permill::from_percent(0);458 pub const Burn: Permill = Permill::from_percent(0);
376 pub const TipCountdown: BlockNumber = 1 * DAYS;459 pub const TipCountdown: BlockNumber = 1 * DAYS;
377 pub const TipFindersFee: Percent = Percent::from_percent(20);460 pub const TipFindersFee: Percent = Percent::from_percent(20);
378 pub const TipReportDepositBase: Balance = 1 * DOLLARS;461 pub const TipReportDepositBase: Balance = 1 * UNIQUE;
379 pub const DataDepositPerByte: Balance = 1 * CENTS;462 pub const DataDepositPerByte: Balance = 1 * CENTIUNIQUE;
380 pub const BountyDepositBase: Balance = 1 * DOLLARS;463 pub const BountyDepositBase: Balance = 1 * UNIQUE;
381 pub const BountyDepositPayoutDelay: BlockNumber = 1 * DAYS;464 pub const BountyDepositPayoutDelay: BlockNumber = 1 * DAYS;
382 pub const TreasuryModuleId: ModuleId = ModuleId(*b"py/trsry");465 pub const TreasuryModuleId: ModuleId = ModuleId(*b"py/trsry");
383 pub const BountyUpdatePeriod: BlockNumber = 14 * DAYS;466 pub const BountyUpdatePeriod: BlockNumber = 14 * DAYS;
384 pub const MaximumReasonLength: u32 = 16384;467 pub const MaximumReasonLength: u32 = 16384;
385 pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);468 pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);
386 pub const BountyValueMinimum: Balance = 5 * DOLLARS;469 pub const BountyValueMinimum: Balance = 5 * UNIQUE;
387}470}
388471
389impl pallet_treasury::Trait for Runtime {472impl pallet_treasury::Config for Runtime {
390 type ModuleId = TreasuryModuleId;473 type ModuleId = TreasuryModuleId;
391 type Currency = Balances;474 type Currency = Balances;
392 type ApproveOrigin = EnsureRoot<AccountId>;475 type ApproveOrigin = EnsureRoot<AccountId>;
393 type RejectOrigin = EnsureRoot<AccountId>;476 type RejectOrigin = EnsureRoot<AccountId>;
394 type Tippers = ValiudatorsOnly<Self>;
395 type TipCountdown = TipCountdown;
396 type TipFindersFee = TipFindersFee;
397 type TipReportDepositBase = TipReportDepositBase;
398 type DataDepositPerByte = DataDepositPerByte;
399 type Event = Event;477 type Event = Event;
400 type OnSlash = ();478 type OnSlash = ();
401 type ProposalBond = ProposalBond;479 type ProposalBond = ProposalBond;
402 type ProposalBondMinimum = ProposalBondMinimum;480 type ProposalBondMinimum = ProposalBondMinimum;
403 type SpendPeriod = SpendPeriod;481 type SpendPeriod = SpendPeriod;
404 type Burn = Burn;482 type Burn = Burn;
405 type BountyDepositBase = BountyDepositBase;483 type BurnDestination = ();
406 type BountyDepositPayoutDelay = BountyDepositPayoutDelay;
407 type BountyUpdatePeriod = BountyUpdatePeriod;
408 type BountyCuratorDeposit = BountyCuratorDeposit;
409 type BountyValueMinimum = BountyValueMinimum;
410 type MaximumReasonLength = MaximumReasonLength;
411 type BurnDestination = ();484 type SpendFunds = ();
412 type WeightInfo = ();485 type WeightInfo = pallet_treasury::weights::SubstrateWeight<Runtime>;
413}486}
414487
415impl pallet_sudo::Trait for Runtime {488impl pallet_sudo::Config for Runtime {
416 type Event = Event;489 type Event = Event;
417 type Call = Call;490 type Call = Call;
418}491}
419492
420parameter_types! {493parameter_types! {
421 pub const MinVestedTransfer: Balance = 100 * DOLLARS;494 pub const MinVestedTransfer: Balance = 10 * UNIQUE;
422}495}
423496
424impl pallet_vesting::Trait for Runtime {497impl pallet_vesting::Config for Runtime {
425 type Event = Event;498 type Event = Event;
426 type Currency = Balances;499 type Currency = Balances;
427 type BlockNumberToBalance = ConvertInto;500 type BlockNumberToBalance = ConvertInto;
430}503}
431504
432/// Used for the module nft in `./nft.rs`505/// Used for the module nft in `./nft.rs`
433impl pallet_nft::Trait for Runtime {506impl pallet_nft::Config for Runtime {
434 type Event = Event;507 type Event = Event;
435 type WeightInfo = nft_weights::WeightInfo;508 type WeightInfo = nft_weights::WeightInfo;
436}509}
443 {516 {
444 System: system::{Module, Call, Config, Storage, Event<T>},517 System: system::{Module, Call, Config, Storage, Event<T>},
445 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},518 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},
446 Contracts: pallet_contracts::{Module, Call, Config, Storage, Event<T>},519 Contracts: pallet_contracts::{Module, Call, Config<T>, Storage, Event<T>},
447 Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},520 Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},
448 Aura: pallet_aura::{Module, Config<T>, Inherent},521 Aura: pallet_aura::{Module, Config<T>, Inherent},
449 Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},522 Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event},
495 value: Balance,568 value: Balance,
496 gas_limit: u64,569 gas_limit: u64,
497 input_data: Vec<u8>,570 input_data: Vec<u8>,
498 ) -> ContractExecResult {571 ) -> pallet_contracts_primitives::ContractExecResult {
499 let (exec_result, gas_consumed) =
500 Contracts::bare_call(origin, dest.into(), value, gas_limit, input_data);572 Contracts::bare_call(origin, dest, value, gas_limit, input_data)
501 match exec_result {
502 Ok(v) => ContractExecResult::Success {
503 flags: v.flags.bits(),
504 data: v.data,
505 gas_consumed: gas_consumed,
506 },
507 Err(_) => ContractExecResult::Error,
508 }
509 }573 }
510574
511 fn get_storage(575 fn get_storage(
640 fn query_info(704 fn query_info(uxt: <Block as BlockT>::Extrinsic, len: u32) -> RuntimeDispatchInfo<Balance> {
641 uxt: <Block as BlockT>::Extrinsic,
642 len: u32,
643 ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo<Balance> {
644 TransactionPayment::query_info(uxt, len)705 TransactionPayment::query_info(uxt, len)
645 }706 }
707 fn query_fee_details(uxt: <Block as BlockT>::Extrinsic, len: u32) -> FeeDetails<Balance> {
708 TransactionPayment::query_fee_details(uxt, len)
709 }
646 }710 }
647711
648 #[cfg(feature = "runtime-benchmarks")]712 #[cfg(feature = "runtime-benchmarks")]
modifiedruntime_types.jsondiffbeforeafterboth
102 "CollectionId": "u32",102 "CollectionId": "u32",
103 "TokenId": "u32",103 "TokenId": "u32",
104 "ChainLimits": {104 "ChainLimits": {
105 "collection_numbers_limit": "u32",105 "CollectionNumbersLimit": "u32",
106 "account_token_ownership_limit": "u32",106 "AccountTokenOwnershipLimit": "u32",
107 "collections_admins_limit": "u64",107 "CollectionAdminsLimit": "u64",
108 "custom_data_limit": "u32",108 "CustomDataLimit": "u32",
109 "nft_sponsor_timeout": "u32",109 "NftSponsorTimeout": "u32",
110 "fungible_sponsor_timeout": "u32",110 "FungibleSponsorTimeout": "u32",
111 "refungible_sponsor_timeout": "u32"111 "RefungibleSponsorTimeout": "u32",
112 "OffchainSchemaLimit": "u32",
113 "VariableOnChainSchemaLimit": "u32",
114 "ConstOnChainSchemaLimit": "u32"
112 },115 },
113 "CollectionLimits": {116 "CollectionLimits": {
114 "AccountTokenOwnershipLimit": "u32",117 "AccountTokenOwnershipLimit": "u32",
115 "SponsoredMintSize": "u32",118 "SponsoredMintSize": "u32",
116 "TokenLimit": "u32",119 "TokenLimit": "u32",
117 "SponsorTimeout": "u32"120 "SponsorTimeout": "u32"
118 }121 },
122 "AccountInfo": "AccountInfoWithProviders",
123 "AccountInfoWithProviders": {
124 "nonce": "Index",
125 "consumers": "RefCount",
126 "providers": "RefCount",
127 "data": "AccountData"
128 }
129
119 }130 }
120 131
addedsmart_contracs/transfer/.gitignorediffbeforeafterboth

no changes

addedsmart_contracs/transfer/Cargo.tomldiffbeforeafterboth

no changes

addedsmart_contracs/transfer/lib.rsdiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/.gitignorediffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/Cargo.tomldiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/LICENSEdiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/README.mddiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/calls/.gitignorediffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/calls/.ink/abi_gen/Cargo.tomldiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/calls/.ink/abi_gen/main.rsdiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/calls/Cargo.tomldiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/calls/lib.rsdiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/src/calls.rsdiffbeforeafterboth

no changes

deletedsmart_contract/ink-types-node-runtime/src/lib.rsdiffbeforeafterboth

no changes

addedtests/.vscode/settings.jsondiffbeforeafterboth

no changes

modifiedtests/README.mddiffbeforeafterboth
22
3## How to run3## How to run
44
51. Run `npm install`.51. Run `yarn install`.
62. Setup a test node. You can do it using `docker-compose up -d` in parent directory.62. Setup a test node. You can do it using `docker-compose up -d` in parent directory.
73. Optional step - configure tests with env variables or by editing [configuration file](src/config.ts).73. Optional step - configure tests with env variables or by editing [configuration file](src/config.ts).
84. Run `npm test`.84. Run `yarn test`.
99
1010
deletedtests/package-lock.jsondiffbeforeafterboth

no changes

modifiedtests/package.jsondiffbeforeafterboth
4 "description": "Substrate Nft tests",4 "description": "Substrate Nft tests",
5 "main": "",5 "main": "",
6 "devDependencies": {6 "devDependencies": {
7 "@polkadot/dev": "^0.52.11",7 "@polkadot/dev": "^0.61.24",
8 "@polkadot/ts": "^0.3.41",8 "@polkadot/ts": "^0.3.59",
9 "@polkadot/typegen": "^3.6.4",
10 "@polkadot/util-crypto": "^5.4.4",
9 "@types/chai": "^4.2.12",11 "@types/chai": "^4.2.12",
10 "@types/chai-as-promised": "^7.1.3",12 "@types/chai-as-promised": "^7.1.3",
11 "@types/mocha": "^8.0.3",13 "@types/mocha": "^8.0.3",
20 "load": "mocha --timeout 9999999 -r ts-node/register ./**/*.load.ts",22 "load": "mocha --timeout 9999999 -r ts-node/register ./**/*.load.ts",
21 "testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts",23 "testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts",
22 "testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts",24 "testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts",
25 "testSetVariableMetaData": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetaData.test.ts",
23 "testSetCollectionLimits": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionLimits.test.ts",26 "testSetCollectionLimits": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionLimits.test.ts",
24 "testRemoveCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionAdmin.test.ts",27 "testRemoveCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionAdmin.test.ts",
28 "testRemoveFromWhiteList": "mocha --timeout 9999999 -r ts-node/register ./**/removeFromWhiteList.test.ts",
25 "testConnection": "mocha --timeout 9999999 -r ts-node/register ./**/connection.test.ts",29 "testConnection": "mocha --timeout 9999999 -r ts-node/register ./**/connection.test.ts",
26 "testCollection": "mocha --timeout 9999999 -r ts-node/register ./**/createCollection.test.ts",30 "testCollection": "mocha --timeout 9999999 -r ts-node/register ./**/createCollection.test.ts",
31 "testCreateMultipleItems": "mocha --timeout 9999999 -r ts-node/register ./**/createMultipleItems.test.ts",
27 "testApprove": "mocha --timeout 9999999 -r ts-node/register ./**/approve.test.ts",32 "testApprove": "mocha --timeout 9999999 -r ts-node/register ./**/approve.test.ts",
28 "testTransferFrom": "mocha --timeout 9999999 -r ts-node/register ./**/transferFrom.test.ts",33 "testTransferFrom": "mocha --timeout 9999999 -r ts-node/register ./**/transferFrom.test.ts",
29 "testCreateCollection": "mocha --timeout 9999999 -r ts-node/register ./**/createCollection.test.ts",34 "testCreateCollection": "mocha --timeout 9999999 -r ts-node/register ./**/createCollection.test.ts",
30 "testToggleContractWhiteList": "mocha --timeout 9999999 -r ts-node/register ./**/toggleContractWhiteList.test.ts",35 "testToggleContractWhiteList": "mocha --timeout 9999999 -r ts-node/register ./**/toggleContractWhiteList.test.ts",
31 "testAddToContractWhiteList": "mocha --timeout 9999999 -r ts-node/register ./**/addToContractWhiteList.test.ts",36 "testAddToContractWhiteList": "mocha --timeout 9999999 -r ts-node/register ./**/addToContractWhiteList.test.ts",
32 "testTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/transfer.test.ts",37 "testTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/transfer.test.ts",
33 "testBurnItem": "mocha --timeout 9999999 -r ts-node/register ./**/burnItem.test.ts",38 "testBurnItem": "mocha --timeout 9999999 -r ts-node/register ./**/burnItem.test.ts",
34 "testSetMintPermission": "mocha --timeout 9999999 -r ts-node/register ./**/setMintPermission.test.ts"39 "testSetMintPermission": "mocha --timeout 9999999 -r ts-node/register ./**/setMintPermission.test.ts",
40 "testCreditFeesToTreasury": "mocha --timeout 9999999 -r ts-node/register ./**/creditFeesToTreasury.test.ts",
41 "testSetContractSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setContractSponsoringRateLimit.test.ts"
35 },42 },
36 "author": "",43 "author": "",
37 "license": "Apache 2.0",44 "license": "SEE LICENSE IN ../LICENSE",
38 "homepage": "",45 "homepage": "",
39 "dependencies": {46 "dependencies": {
40 "@polkadot/api": "^2.3.1",47 "@polkadot/api": "^3.6.4",
41 "@polkadot/api-contract": "^2.3.1",48 "@polkadot/api-contract": "^3.6.4",
42 "@polkadot/types": "^2.3.1",
43 "@polkadot/util": "^3.4.1",49 "@polkadot/util": "^3.6.4",
44 "bignumber.js": "^9.0.0",50 "bignumber.js": "^9.0.0",
45 "chai-as-promised": "^7.1.1"51 "chai-as-promised": "^7.1.1"
46 },52 },
modifiedtests/src/addToContractWhiteList.test.tsdiffbeforeafterboth
3import usingApi, { submitTransactionAsync, submitTransactionExpectFailAsync } from "./substrate/substrate-api";3import usingApi, { submitTransactionAsync, submitTransactionExpectFailAsync } from "./substrate/substrate-api";
4import privateKey from "./substrate/privateKey";4import privateKey from "./substrate/privateKey";
5import {5import {
6 deployFlipper,6 deployFlipper
7 getFlipValue
8} from "./util/contracthelpers";7} from "./util/contracthelpers";
9import {8import {
10 getGenericResult9 getGenericResult
13chai.use(chaiAsPromised);12chai.use(chaiAsPromised);
14const expect = chai.expect;13const expect = chai.expect;
15
16const value = 0;
17const gasLimit = 3000n * 1000000n;
1814
19describe('Integration Test addToContractWhiteList', () => {15describe('Integration Test addToContractWhiteList', () => {
2016
modifiedtests/src/contracts.test.tsdiffbeforeafterboth
6import privateKey from "./substrate/privateKey";6import privateKey from "./substrate/privateKey";
7import {7import {
8 deployFlipper,8 deployFlipper,
9 getFlipValue9 getFlipValue,
10 deployTransferContract,
10} from "./util/contracthelpers";11} from "./util/contracthelpers";
12
13import {
14 createCollectionExpectSuccess,
15 createItemExpectSuccess,
16 getGenericResult
17} from "./util/helpers";
18
1119
12chai.use(chaiAsPromised);20chai.use(chaiAsPromised);
23 const initialGetResponse = await getFlipValue(contract, deployer);31 const initialGetResponse = await getFlipValue(contract, deployer);
2432
25 const bob = privateKey("//Bob");33 const bob = privateKey("//Bob");
26 const flip = contract.exec('flip', value, gasLimit);34 const flip = contract.tx.flip(value, gasLimit);
27 await submitTransactionAsync(bob, flip);35 await submitTransactionAsync(bob, flip);
2836
29 const afterFlipGetResponse = await getFlipValue(contract, deployer);37 const afterFlipGetResponse = await getFlipValue(contract, deployer);
41 });49 });
42 });50 });
4351
44 it.skip('Can transfer balance using smart contract.', async () => {52 it('Can transfer NFT using smart contract.', async () => {
45 await usingApi(async api => {53 await usingApi(async api => {
46 // const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);54 const alice = privateKey("//Alice");
47 // const wasm = fs.readFileSync('./src/balance-transfer-contract/calls.wasm');55 const bob = privateKey("//Bob");
48 // const contract = compactAddLength(u8aToU8a(wasm));56
4957 // Prep work
50 // const metadata = JSON.parse(fs.readFileSync('./src/balance-transfer-contract/metadata.json').toString('utf-8'));58 const collectionId = await createCollectionExpectSuccess();
51 // const abi = new Abi(api.registry as any, metadata);59 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
5260 const [contract, deployer] = await deployTransferContract(api);
53 // const alicesPrivateKey = privateKey('//Alice');61 const tokenBefore: any = await api.query.nft.nftItemList(collectionId, tokenId);
5462
55 // const contractHash = await deployContract(api, contract, alicesPrivateKey);63 // Transfer
5664 const transferTx = contract.tx.transfer(value, gasLimit, bob.address, collectionId, tokenId, 1);
57 // // const args = abi.constructors[0]();65 const events = await submitTransactionAsync(alice, transferTx);
58 // const instanceAccountId = await instantiateContract(api, contractHash, /*args,*/ alicesPrivateKey);66 const result = getGenericResult(events);
59 // const contractInstance = new ContractPromise(api, abi, instanceAccountId);67 const tokenAfter: any = await api.query.nft.nftItemList(collectionId, tokenId);
60 // const bob = new GenericAccountId(api.registry, bobsPublicKey);68
6169 // tslint:disable-next-line:no-unused-expression
62 // const transfer = contractInstance.exec('balance_transfer', 0, 1000000000000n, [bob, new u128(api.registry, 1000000)]);70 expect(result.success).to.be.true;
63 // await submitTransactionAsync(alicesPrivateKey, transfer);71 expect(tokenBefore.Owner.toString()).to.be.equal(alice.address);
6472 expect(tokenAfter.Owner.toString()).to.be.equal(bob.address);
65 // const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
66
67 // expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;
68 // expect(bobsBalanceAfter > bobsBalanceBefore).to.be.true;
69 });73 });
70 });74 });
71});75});
modifiedtests/src/createMultipleItems.test.tsdiffbeforeafterboth
3// file 'LICENSE', which is part of this source code package.3// file 'LICENSE', which is part of this source code package.
4//4//
5
6import { assert } from 'chai';5import { ApiPromise } from '@polkadot/api';
6import BN from 'bn.js';
7import chai from 'chai';
7import { alicesPublicKey } from './accounts';8import chaiAsPromised from 'chai-as-promised';
8import privateKey from './substrate/privateKey';9import privateKey from './substrate/privateKey';
9import usingApi from './substrate/substrate-api';10import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
10import waitNewBlocks from './substrate/wait-new-blocks';11import {
1112 createCollectionExpectSuccess,
13 destroyCollectionExpectSuccess,
14 IReFungibleTokenDataType,
15} from './util/helpers';
16
17chai.use(chaiAsPromised);
12const idCollection = 12;18const expect = chai.expect;
19
20interface ITokenDataType {
21 Owner: number[];
22 ConstData: number[];
23 VariableData: number[];
24}
25
26describe('Integration Test createMultipleItems(collection_id, owner, items_data):', () => {
27 it('Create 0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain', async () => {
28 await usingApi(async (api: ApiPromise) => {
29 const collectionId = await createCollectionExpectSuccess();
30 const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
31 expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
32 const Alice = privateKey('//Alice');
33 const args = [{ nft: ['0x31', '0x31'] }, { nft: ['0x32', '0x32'] }, { nft: ['0x33', '0x33'] }];
34 const createMultipleItemsTx = await api.tx.nft
35 .createMultipleItems(collectionId, Alice.address, args);
36 await submitTransactionAsync(Alice, createMultipleItemsTx);
37 const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
38 expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
39 const token1Data = await api.query.nft.nftItemList(collectionId, 1) as unknown as ITokenDataType;
40 const token2Data = await api.query.nft.nftItemList(collectionId, 2) as unknown as ITokenDataType;
41 const token3Data = await api.query.nft.nftItemList(collectionId, 3) as unknown as ITokenDataType;
42
43 expect(token1Data.Owner.toString()).to.be.equal(Alice.address);
44 expect(token2Data.Owner.toString()).to.be.equal(Alice.address);
45 expect(token3Data.Owner.toString()).to.be.equal(Alice.address);
46
47 expect(token1Data.ConstData.toString()).to.be.equal('0x31');
48 expect(token2Data.ConstData.toString()).to.be.equal('0x32');
49 expect(token3Data.ConstData.toString()).to.be.equal('0x33');
50
51 expect(token1Data.VariableData.toString()).to.be.equal('0x31');
52 expect(token2Data.VariableData.toString()).to.be.equal('0x32');
53 expect(token3Data.VariableData.toString()).to.be.equal('0x33');
54 });
55 });
56
57 it('Create 0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain', async () => {
58 await usingApi(async (api: ApiPromise) => {
59 const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});
60 const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
61 expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
62 const Alice = privateKey('//Alice');
63 const args = [
64 { Refungible: ['0x31', '0x31'] },
65 { Refungible: ['0x32', '0x32'] },
66 { Refungible: ['0x33', '0x33'] },
67 ];
68 const createMultipleItemsTx = await api.tx.nft
69 .createMultipleItems(collectionId, Alice.address, args);
70 await submitTransactionAsync(Alice, createMultipleItemsTx);
71 const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
72 expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
73 const token1Data = await api.query.nft.reFungibleItemList(collectionId, 1) as unknown as IReFungibleTokenDataType;
74 const token2Data = await api.query.nft.reFungibleItemList(collectionId, 2) as unknown as IReFungibleTokenDataType;
75 const token3Data = await api.query.nft.reFungibleItemList(collectionId, 3) as unknown as IReFungibleTokenDataType;
76
77 expect(token1Data.Owner[0].Owner.toString()).to.be.equal(Alice.address);
78 expect(token1Data.Owner[0].Fraction.toNumber()).to.be.equal(1);
79
80 expect(token2Data.Owner[0].Owner.toString()).to.be.equal(Alice.address);
81 expect(token2Data.Owner[0].Fraction.toNumber()).to.be.equal(1);
82
83 expect(token3Data.Owner[0].Owner.toString()).to.be.equal(Alice.address);
84 expect(token3Data.Owner[0].Fraction.toNumber()).to.be.equal(1);
85
86 expect(token1Data.ConstData.toString()).to.be.equal('0x31');
87 expect(token2Data.ConstData.toString()).to.be.equal('0x32');
88 expect(token3Data.ConstData.toString()).to.be.equal('0x33');
89
90 expect(token1Data.VariableData.toString()).to.be.equal('0x31');
91 expect(token2Data.VariableData.toString()).to.be.equal('0x32');
92 expect(token3Data.VariableData.toString()).to.be.equal('0x33');
93 });
94 });
95});
1396
14describe.skip('integration test: ext. createMultipleItems():', () => {97describe('Negative Integration Test createMultipleItems(collection_id, owner, items_data):', () => {
15 it('Create two NFT tokens in active NFT collection', async () => {98 it('Create token with not existing type', async () => {
16 await usingApi(async (api) => {99 await usingApi(async (api: ApiPromise) => {
17 const AitemListIndex = await api.query.nft.itemListIndex(idCollection);100 const collectionId = await createCollectionExpectSuccess();
18 console.log(`itemListIndex count (before): ${AitemListIndex}`);101 const Alice = privateKey('//Alice');
102 try {
19 const args = ['NFT', 'NFT'];103 const args = [{ invalid: null }, { invalid: null }, { invalid: null }];
20 const alicePrivateKey = privateKey('//Alice');
21 const createMultipleItems = await api.tx.nft104 const createMultipleItemsTx = await api.tx.nft
22 .createMultipleItems(idCollection, alicesPublicKey, args)105 .createMultipleItems(collectionId, Alice.address, args);
23 .signAndSend(alicePrivateKey);
24 // tslint:disable-next-line: no-unused-expression
25 assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');
26 console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);
27 await waitNewBlocks(api);
28 const BitemListIndex = await api.query.nft.itemListIndex(idCollection);106 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
29 console.log(`itemListIndex count (after): ${BitemListIndex}`);
30 if (BitemListIndex === AitemListIndex) { assert.fail('Corret token not added in collection!'); }107 } catch (e) {
108 // tslint:disable-next-line:no-unused-expression
109 expect(e).to.be.exist;
110 }
31 });111 });
32 });112 });
113
33 it('(!negative test!) Create two Fungible tokens in active NFT collection', async () => {114 it('Create token in not existing collection', async () => {
34 await usingApi(async (api) => {115 await usingApi(async (api: ApiPromise) => {
35 const AitemListIndex = await api.query.nft.itemListIndex(idCollection);116 const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
36 console.log(`itemListIndex count (before): ${AitemListIndex}`);
37 const args = ['Fungible', 'Fungible'];
38 const alicePrivateKey = privateKey('//Alice');117 const Alice = privateKey('//Alice');
39 const createMultipleItems = await api.tx.nft118 const createMultipleItemsTx = await api.tx.nft
40 .createMultipleItems(idCollection, alicesPublicKey, args)119 .createMultipleItems(collectionId, Alice.address, ['NFT', 'NFT', 'NFT']);
41 .signAndSend(alicePrivateKey);
42 // tslint:disable-next-line: no-unused-expression
43 assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');
44 console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);
45 await waitNewBlocks(api);
46 const BitemListIndex = await api.query.nft.itemListIndex(idCollection);120 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
47 console.log(`itemListIndex count (after): ${BitemListIndex}`);
48 if (BitemListIndex > AitemListIndex) { assert.fail('Incorrect token added in collection!'); }
49 });121 });
50 });122 });
123
51 it('(!negative test!) Create two ReFungible tokens in active NFT collection', async () => {124 it('Create NFT and Re-fungible tokens that has reached the maximum data limit', async () => {
52 await usingApi(async (api) => {125 await usingApi(async (api: ApiPromise) => {
126 // NFT
53 const AitemListIndex = await api.query.nft.itemListIndex(idCollection);127 const collectionId = await createCollectionExpectSuccess();
54 console.log(`itemListIndex count (before): ${AitemListIndex}`);
55 const args = ['ReFungible', 'ReFungible'];128 const Alice = privateKey('//Alice');
56 const alicePrivateKey = privateKey('//Alice');129 const args = [
130 { nft: ['A'.repeat(2049), 'A'.repeat(2049)] },
131 { nft: ['B'.repeat(2049), 'B'.repeat(2049)] },
132 { nft: ['C'.repeat(2049), 'C'.repeat(2049)] },
133 ];
57 const createMultipleItems = await api.tx.nft134 const createMultipleItemsTx = await api.tx.nft
58 .createMultipleItems(idCollection, alicesPublicKey, args)135 .createMultipleItems(collectionId, Alice.address, args);
59 .signAndSend(alicePrivateKey);
60 // tslint:disable-next-line: no-unused-expression
61 assert.exists(createMultipleItems, 'createMultipleItems is neither `null` or `undefined`');136 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
137
138 // ReFungible
139 const collectionIdReFungible =
62 console.log(`Ext. createMultipleItems submitted with hash: ${createMultipleItems}`);140 await createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});
141 const argsReFungible = [
63 await waitNewBlocks(api);142 { ReFungible: ['1'.repeat(2049), '1'.repeat(2049)] },
143 { ReFungible: ['2'.repeat(2049), '2'.repeat(2049)] },
144 { ReFungible: ['3'.repeat(2049), '3'.repeat(2049)] },
145 ];
64 const BitemListIndex = await api.query.nft.itemListIndex(idCollection);146 const createMultipleItemsTxFungible = await api.tx.nft
65 console.log(`itemListIndex count (after): ${BitemListIndex}`);147 .createMultipleItems(collectionIdReFungible, Alice.address, argsReFungible);
66 if (BitemListIndex > AitemListIndex) { assert.fail('Incorrect token added in collection!'); }148 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTxFungible)).to.be.rejected;
67 });149 });
68 });150 });
151
152 it('Create tokens with different types', async () => {
153 await usingApi(async (api: ApiPromise) => {
154 const collectionId = await createCollectionExpectSuccess();
155 const Alice = privateKey('//Alice');
156 const createMultipleItemsTx = await api.tx.nft
157 .createMultipleItems(collectionId, Alice.address, ['NFT', 'Fungible', 'ReFungible']);
158 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
159 // garbage collection :-D
160 await destroyCollectionExpectSuccess(collectionId);
161 });
162 });
163
164 it('Create tokens with different data limits <> maximum data limit', async () => {
165 await usingApi(async (api: ApiPromise) => {
166 const collectionId = await createCollectionExpectSuccess();
167 const Alice = privateKey('//Alice');
168 const args = [
169 { nft: ['A', 'A'] },
170 { nft: ['B', 'B'.repeat(2049)] },
171 { nft: ['C'.repeat(2049), 'C'] },
172 ];
173 const createMultipleItemsTx = await api.tx.nft
174 .createMultipleItems(collectionId, Alice.address, args);
175 await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
176 });
177 });
69});178});
70179
modifiedtests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth
9import { alicesPublicKey, bobsPublicKey } from "./accounts";9import { alicesPublicKey, bobsPublicKey } from "./accounts";
10import privateKey from "./substrate/privateKey";10import privateKey from "./substrate/privateKey";
11import { BigNumber } from 'bignumber.js';11import { BigNumber } from 'bignumber.js';
12import { IKeyringPair } from '@polkadot/types/types';
12import { createCollectionExpectSuccess, getGenericResult } from './util/helpers';13import {
14 createCollectionExpectSuccess,
15 createItemExpectSuccess,
16 getGenericResult,
17 transferExpectSuccess
18} from './util/helpers';
1319
14chai.use(chaiAsPromised);20chai.use(chaiAsPromised);
15const expect = chai.expect;21const expect = chai.expect;
1622
17const Treasury = "5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z";23const Treasury = "5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z";
18const saneMinimumFee = 0.0001;24const saneMinimumFee = 0.05;
19const saneMaximumFee = 0.01;25const saneMaximumFee = 0.5;
26
27let alice: IKeyringPair;
28let bob: IKeyringPair;
2029
21describe('integration test: Fees must be credited to Treasury:', () => {30describe('integration test: Fees must be credited to Treasury:', () => {
31 before(async () => {
32 await usingApi(async (api) => {
33 alice = privateKey('//Alice');
34 bob = privateKey('//Bob');
35 });
36 });
37
22 it('Total issuance does not change', async () => {38 it('Total issuance does not change', async () => {
23 await usingApi(async (api) => {39 await usingApi(async (api) => {
102 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);118 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
103 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);119 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
104120
105 expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(0.01);121 expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(saneMaximumFee);
106 expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(0.0001);122 expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(saneMinimumFee);
107 });123 });
108 });124 });
125
126 it('NFT Transfer fee is close to 0.1 Unique', async () => {
127 await usingApi(async (api) => {
128 const collectionId = await createCollectionExpectSuccess();
129 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
130
131 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
132 await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
133 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
134 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
135
136 // console.log(fee.toString());
137 const expectedTransferFee = 0.1;
138 const tolerance = 0.00001;
139 expect(fee.dividedBy(1e15).minus(expectedTransferFee).abs().toNumber()).to.be.lessThan(tolerance);
140 });
141 });
109142
110});143});
111144
modifiedtests/src/flipper/flipper.wasmdiffbeforeafterboth

binary blob — no preview

modifiedtests/src/flipper/metadata.jsondiffbeforeafterboth
1{1{
2 "metadataVersion": "0.1.0",2 "metadataVersion": "0.1.0",
3 "source": {3 "source": {
4 "hash": "0x36431d9da78a6bb099474e49c9e35a9c3a04272b58815634082626109826cac6",4 "hash": "0x5b02ceadaacee8408d3c6496394847092c099bcb897221dbe8d22c16d372fa17",
5 "language": "ink! 3.0.0-rc1",5 "language": "ink! 3.0.0-rc2",
6 "compiler": "rustc 1.49.0-nightly"6 "compiler": "rustc 1.51.0-nightly"
7 },7 },
8 "contract": {8 "contract": {
9 "name": "flipper",9 "name": "flipper",
10 "version": "3.0.0-rc1",10 "version": "0.1.0",
11 "authors": [11 "authors": [
12 "Parity Technologies <admin@parity.io>"12 "[your_name] <[your_email]>"
13 ]13 ]
14 },14 },
15 "spec": {15 "spec": {
27 }27 }
28 ],28 ],
29 "docs": [29 "docs": [
30 " Creates a new flipper smart contract initialized with the given value."30 " Constructor that initializes the `bool` value to the given `init_value`."
31 ],31 ],
32 "name": [32 "name": [
33 "new"33 "new"
37 {37 {
38 "args": [],38 "args": [],
39 "docs": [39 "docs": [
40 " Creates a new flipper smart contract initialized to `false`."40 " Constructor that initializes the `bool` value to `false`.",
41 "",
42 " Constructors can delegate to other constructors."
41 ],43 ],
42 "name": [44 "name": [
43 "default"45 "default"
51 {53 {
52 "args": [],54 "args": [],
53 "docs": [55 "docs": [
54 " Flips the current value of the Flipper's bool."56 " A message that can be called on instantiated contracts.",
57 " This one flips the value of the stored `bool` from `true`",
58 " to `false` and vice versa."
55 ],59 ],
56 "mutates": true,60 "mutates": true,
57 "name": [61 "name": [
64 {68 {
65 "args": [],69 "args": [],
66 "docs": [70 "docs": [
67 " Returns the current value of the Flipper's bool."71 " Simply returns the current value of our `bool`."
68 ],72 ],
69 "mutates": false,73 "mutates": false,
70 "name": [74 "name": [
addedtests/src/removeFromWhiteList.test.tsdiffbeforeafterboth

no changes

addedtests/src/setConstOnChainSchema.test.tsdiffbeforeafterboth

no changes

addedtests/src/setContractSponsoringRateLimit.test.tsdiffbeforeafterboth

no changes

addedtests/src/setPublicAccessMode.test.tsdiffbeforeafterboth

no changes

modifiedtests/src/setSchemaVersion.test.tsdiffbeforeafterboth
9898
99 it('execute setSchemaVersion with not correct schema version', async () => {99 it('execute setSchemaVersion with not correct schema version', async () => {
100 await usingApi(async (api: ApiPromise) => {100 await usingApi(async (api: ApiPromise) => {
101 const consoleError = console.error;
102 console.error = (message: string) => {};
101 try {103 try {
102 tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Test');104 tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Test');
103 await submitTransactionAsync(alice, tx);105 await submitTransactionAsync(alice, tx);
104 } catch (e) {106 } catch (e) {
105 // tslint:disable-next-line:no-unused-expression107 // tslint:disable-next-line:no-unused-expression
106 expect(e).to.be.exist;108 expect(e).to.be.exist;
107 }109 } finally {
110 console.error = consoleError;
111 }
108 });112 });
109 });113 });
110114
addedtests/src/setVariableMetaData.test.tsdiffbeforeafterboth

no changes

addedtests/src/setVariableOnChainSchema.test.tsdiffbeforeafterboth

no changes

modifiedtests/src/substrate/promisify-substrate.tsdiffbeforeafterboth
3// file 'LICENSE', which is part of this source code package.3// file 'LICENSE', which is part of this source code package.
4//4//
55
6import ApiPromise from "@polkadot/api/promise/Api";6import { ApiPromise } from "@polkadot/api";
77
8type PromiseType<T> = T extends PromiseLike<infer TInner> ? TInner : T;8type PromiseType<T> = T extends PromiseLike<infer TInner> ? TInner : T;
99
modifiedtests/src/substrate/substrate-api.tsdiffbeforeafterboth
4//4//
55
6import { WsProvider, ApiPromise } from "@polkadot/api";6import { WsProvider, ApiPromise } from "@polkadot/api";
7import type { AccountId, Address, ApplyExtrinsicResult, DispatchError, DispatchInfo, EventRecord, Extrinsic, ExtrinsicStatus, Hash, RuntimeDispatchInfo } from '@polkadot/types/interfaces';7import { EventRecord } from '@polkadot/types/interfaces/system/types';
8import { ExtrinsicStatus } from '@polkadot/types/interfaces/author/types';
8import { IKeyringPair } from "@polkadot/types/types";9import { IKeyringPair } from "@polkadot/types/types";
910
10import config from "../config";11import config from "../config";
21 settings = settings || defaultApiOptions();22 settings = settings || defaultApiOptions();
22 let api: ApiPromise = new ApiPromise(settings);23 let api: ApiPromise = new ApiPromise(settings);
24
25 // TODO: Remove, this is temporary: Filter unneeded API output
26 // (Jaco promised it will be removed in the next version)
27 const consoleLog = console.log;
28 console.log = (message: string) => {
29 if (message.includes("API/INIT: Capabilities detected") || message.includes("2021-")) {}
30 else if (message.includes("StorageChangeSet:: WebSocket is not connected") || message.includes("2021-")) {}
31 else consoleLog(message);
32 };
33 const consoleErr = console.error;
34 console.error = (message: string) => {
35 if (message.includes("StorageChangeSet:: WebSocket is not connected") || message.includes("2021-")) {}
36 else consoleErr(message);
37 };
2338
24 try {39 try {
25 await promisifySubstrate(api, async () => {40 await promisifySubstrate(api, async () => {
30 })();45 })();
31 } finally {46 } finally {
32 await api.disconnect();47 await api.disconnect();
48 console.log = consoleLog;
49 console.error = consoleErr;
33 }50 }
34}51}
3552
104 await transaction.signAndSend(sender, ({ events = [], status }) => {121 await transaction.signAndSend(sender, ({ events = [], status }) => {
105 const transactionStatus = getTransactionStatus(events, status);122 const transactionStatus = getTransactionStatus(events, status);
106123
107 console.log('transactionStatus', transactionStatus, 'events', events);124 // console.log('transactionStatus', transactionStatus, 'events', events);
108125
109 if (transactionStatus == TransactionStatus.Success) {126 if (transactionStatus === TransactionStatus.Success) {
110 resolve(events);127 resolve(events);
111 } else if (transactionStatus == TransactionStatus.Fail) {128 } else if (transactionStatus === TransactionStatus.Fail) {
112 reject(events);129 reject(events);
113 }130 }
114 });131 });
addedtests/src/transfer_contract/metadata.jsondiffbeforeafterboth

no changes

addedtests/src/transfer_contract/nft_transfer.wasmdiffbeforeafterboth

binary blob — no preview

modifiedtests/src/util/contracthelpers.tsdiffbeforeafterboth
55
6import chai from "chai";6import chai from "chai";
7import chaiAsPromised from 'chai-as-promised';7import chaiAsPromised from 'chai-as-promised';
8import { submitTransactionAsync } from "../substrate/substrate-api";8import { submitTransactionAsync, submitTransactionExpectFailAsync } from "../substrate/substrate-api";
9import fs from "fs";9import fs from "fs";
10import { Abi, BlueprintPromise as Blueprint, CodePromise, ContractPromise as Contract } from "@polkadot/api-contract";10import { Abi, BlueprintPromise as Blueprint, CodePromise, ContractPromise as Contract } from "@polkadot/api-contract";
11import { IKeyringPair } from "@polkadot/types/types";11import { IKeyringPair } from "@polkadot/types/types";
14chai.use(chaiAsPromised);14chai.use(chaiAsPromised);
15const expect = chai.expect;15const expect = chai.expect;
16import { BigNumber } from 'bignumber.js';16import { BigNumber } from 'bignumber.js';
17import { findUnusedAddress } from '../util/helpers';17import { findUnusedAddress, getGenericResult } from '../util/helpers';
1818
19const value = 0;19const value = 0;
20const gasLimit = 3000n * 1000000n;20const gasLimit = '200000000000';
21const endowment = `1000000000000000`;21const endowment = '100000000000000000';
2222
23function deployBlueprint(alice: IKeyringPair, code: CodePromise): Promise<Blueprint> {23function deployBlueprint(alice: IKeyringPair, code: CodePromise): Promise<Blueprint> {
24 return new Promise<Blueprint>(async (resolve, reject) => {24 return new Promise<Blueprint>(async (resolve, reject) => {
3636
37function deployContract(alice: IKeyringPair, blueprint: Blueprint) : Promise<any> {37function deployContract(alice: IKeyringPair, blueprint: Blueprint) : Promise<any> {
38 return new Promise<any>(async (resolve, reject) => {38 return new Promise<any>(async (resolve, reject) => {
39 const endowment = 1000000000000000n;
40 const initValue = true;39 const initValue = true;
4140
42 const unsub = await blueprint.tx41 const unsub = await blueprint.tx
58 const keyring = new Keyring({ type: 'sr25519' });57 const keyring = new Keyring({ type: 'sr25519' });
59 const alice = keyring.addFromUri(`//Alice`);58 const alice = keyring.addFromUri(`//Alice`);
60 let amount = new BigNumber(endowment);59 let amount = new BigNumber(endowment);
61 amount = amount.plus(1e15);60 amount = amount.plus(100e15);
62 const tx = api.tx.balances.transfer(deployer.address, amount.toFixed());61 const tx = api.tx.balances.transfer(deployer.address, amount.toFixed());
63 await submitTransactionAsync(alice, tx);62 await submitTransactionAsync(alice, tx);
6463
87export async function getFlipValue(contract: Contract, deployer: IKeyringPair) {86export async function getFlipValue(contract: Contract, deployer: IKeyringPair) {
88 const result = await contract.query.get(deployer.address, value, gasLimit);87 const result = await contract.query.get(deployer.address, value, gasLimit);
8988
90 if(!result.result.isSuccess) {89 if(!result.result.isOk) {
91 throw `Failed to get flipper value`;90 throw `Failed to get flipper value`;
92 }91 }
93 return (result.result.asSuccess.data[0] == 0x00) ? false : true;92 return (result.result.asOk.data[0] == 0x00) ? false : true;
94}93}
94
95export async function toggleFlipValueExpectSuccess(sender: IKeyringPair, contract: Contract) {
96 const tx = contract.tx.flip(value, gasLimit);
97 const events = await submitTransactionAsync(sender, tx);
98 const result = getGenericResult(events);
99
100 expect(result.success).to.be.true;
101}
102
103export async function toggleFlipValueExpectFailure(sender: IKeyringPair, contract: Contract) {
104 const tx = contract.tx.flip(value, gasLimit);
105 await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
106}
107
108function instantiateTransferContract(alice: IKeyringPair, blueprint: Blueprint) : Promise<any> {
109 return new Promise<any>(async (resolve, reject) => {
110 const unsub = await blueprint.tx
111 .default(endowment, gasLimit)
112 .signAndSend(alice, (result) => {
113 if (result.status.isInBlock || result.status.isFinalized) {
114 unsub();
115 resolve(result);
116 }
117 });
118 });
119}
120
121export async function deployTransferContract(api: ApiPromise): Promise<[Contract, IKeyringPair]> {
122 const metadata = JSON.parse(fs.readFileSync('./src/transfer_contract/metadata.json').toString('utf-8'));
123 const abi = new Abi(metadata);
124
125 const deployer = await prepareDeployer(api);
126
127 const wasm = fs.readFileSync('./src/transfer_contract/nft_transfer.wasm');
128
129 const code = new CodePromise(api, abi, wasm);
130
131 const blueprint = await deployBlueprint(deployer, code);
132 const contract = (await instantiateTransferContract(deployer, blueprint))['contract'] as Contract;
133
134 return [contract, deployer];
135}
95136
modifiedtests/src/util/helpers.tsdiffbeforeafterboth
51 Value: BN;51 Value: BN;
52}52}
5353
54interface IReFungibleTokenDataType {54export interface IReFungibleTokenDataType {
55 Owner: IReFungibleOwner[];55 Owner: IReFungibleOwner[];
56 ConstData: number[];56 ConstData: number[];
57 VariableData: number[];57 VariableData: number[];
384 });384 });
385}385}
386
387export async function enableContractSponsoringExpectSuccess(sender: IKeyringPair, contractAddress: AccountId | string, enable: boolean) {
388 await usingApi(async (api) => {
389 const tx = api.tx.nft.enableContractSponsoring(contractAddress, enable);
390 const events = await submitTransactionAsync(sender, tx);
391 const result = getGenericResult(events);
392
393 expect(result.success).to.be.true;
394 });
395}
396
397export async function enableContractSponsoringExpectFailure(sender: IKeyringPair, contractAddress: AccountId | string, enable: boolean) {
398 await usingApi(async (api) => {
399 const tx = api.tx.nft.enableContractSponsoring(contractAddress, enable);
400 const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
401 const result = getGenericResult(events);
402
403 expect(result.success).to.be.false;
404 });
405}
406
407export async function setContractSponsoringRateLimitExpectSuccess(sender: IKeyringPair, contractAddress: AccountId | string, rateLimit: number) {
408 await usingApi(async (api) => {
409 const tx = api.tx.nft.setContractSponsoringRateLimit(contractAddress, rateLimit);
410 const events = await submitTransactionAsync(sender, tx);
411 const result = getGenericResult(events);
412
413 expect(result.success).to.be.true;
414 });
415}
416
417export async function setContractSponsoringRateLimitExpectFailure(sender: IKeyringPair, contractAddress: AccountId | string, rateLimit: number) {
418 await usingApi(async (api) => {
419 const tx = api.tx.nft.setContractSponsoringRateLimit(contractAddress, rateLimit);
420 const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
421 const result = getGenericResult(events);
422
423 expect(result.success).to.be.false;
424 });
425}
426
427export async function setVariableMetaDataExpectSuccess(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {
428 await usingApi(async (api) => {
429 const tx = api.tx.nft.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));
430 const events = await submitTransactionAsync(sender, tx);
431 const result = getGenericResult(events);
432
433 expect(result.success).to.be.true;
434 });
435}
436
437export async function setVariableMetaDataExpectFailure(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {
438 await usingApi(async (api) => {
439 const tx = api.tx.nft.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));
440 await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
441 });
442}
386443
387export interface CreateFungibleData extends Struct {444export interface CreateFungibleData extends Struct {
388 readonly value: u128;445 readonly value: u128;
445 }502 }
446 const transferFromTx = await api.tx.nft.transferFrom(503 const transferFromTx = await api.tx.nft.transferFrom(
447 accountFrom.address, accountTo.address, collectionId, tokenId, value);504 accountFrom.address, accountTo.address, collectionId, tokenId, value);
448 const events = await submitTransactionAsync(accountFrom, transferFromTx);505 const events = await submitTransactionAsync(accountApproved, transferFromTx);
449 const result = getCreateItemResult(events);506 const result = getCreateItemResult(events);
450 // tslint:disable-next-line:no-unused-expression507 // tslint:disable-next-line:no-unused-expression
451 expect(result.success).to.be.true;508 expect(result.success).to.be.true;
599 });656 });
600}657}
601658
602export async function enableWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number) {659export async function setPublicAccessModeExpectSuccess(
660 sender: IKeyringPair, collectionId: number,
661 accessMode: 'Normal' | 'WhiteList',
662) {
603 await usingApi(async (api) => {663 await usingApi(async (api) => {
604664
605 // Run the transaction665 // Run the transaction
606 const tx = api.tx.nft.setPublicAccessMode(collectionId, 'WhiteList');666 const tx = api.tx.nft.setPublicAccessMode(collectionId, accessMode);
607 const events = await submitTransactionAsync(sender, tx);667 const events = await submitTransactionAsync(sender, tx);
608 const result = getGenericResult(events);668 const result = getGenericResult(events);
609669
613 // What to expect673 // What to expect
614 // tslint:disable-next-line:no-unused-expression674 // tslint:disable-next-line:no-unused-expression
615 expect(result.success).to.be.true;675 expect(result.success).to.be.true;
616 expect(collection.Access).to.be.equal('WhiteList');676 expect(collection.Access).to.be.equal(accessMode);
617 });677 });
618}678}
679
680export async function enableWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number) {
681 await setPublicAccessModeExpectSuccess(sender, collectionId, 'WhiteList');
682}
683
684export async function disableWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number) {
685 await setPublicAccessModeExpectSuccess(sender, collectionId, 'Normal');
686}
619687
620export async function setMintPermissionExpectSuccess(sender: IKeyringPair, collectionId: number, enabled: boolean) {688export async function setMintPermissionExpectSuccess(sender: IKeyringPair, collectionId: number, enabled: boolean) {
621 await usingApi(async (api) => {689 await usingApi(async (api) => {
650 });718 });
651}719}
720
721export async function isWhitelisted(collectionId: number, address: string) {
722 let whitelisted: boolean = false;
723 await usingApi(async (api) => {
724 whitelisted = (await api.query.nft.whiteList(collectionId, address)).toJSON() as unknown as boolean;
725 });
726 return whitelisted;
727}
652728
653export async function addToWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number, address: string) {729export async function addToWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number, address: string) {
654 await usingApi(async (api) => {730 await usingApi(async (api) => {
672 });748 });
673}749}
750
751export async function removeFromWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number, address: string) {
752 await usingApi(async (api) => {
753 // Run the transaction
754 const tx = api.tx.nft.removeFromWhiteList(collectionId, address);
755 const events = await submitTransactionAsync(sender, tx);
756 const result = getGenericResult(events);
757
758 // What to expect
759 // tslint:disable-next-line:no-unused-expression
760 expect(result.success).to.be.true;
761 });
762}
763
764export async function removeFromWhiteListExpectFailure(sender: IKeyringPair, collectionId: number, address: string) {
765 await usingApi(async (api) => {
766 // Run the transaction
767 const tx = api.tx.nft.removeFromWhiteList(collectionId, address);
768 const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
769 const result = getGenericResult(events);
770
771 // What to expect
772 // tslint:disable-next-line:no-unused-expression
773 expect(result.success).to.be.false;
774 });
775}
674776
675export const getDetailedCollectionInfo = async (api: ApiPromise, collectionId: number)777export const getDetailedCollectionInfo = async (api: ApiPromise, collectionId: number)
676 : Promise<ICollectionInterface | null> => {778 : Promise<ICollectionInterface | null> => {
addedtests/yarn.lockdiffbeforeafterboth

no changes