diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..eb5a316 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +target diff --git a/.gitignore b/.gitignore index dee6ee1..9f01dcc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,7 @@ .cargo # The cache for chain data in container -.local \ No newline at end of file +.local + +release +wasm \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c774376 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vendor/frontier"] + path = vendor/frontier + url = git@github.com:paritytech/frontier.git diff --git a/Cargo.lock b/Cargo.lock index 3c59d39..55d6410 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,11 +12,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423" dependencies = [ - "gimli 0.22.0", + "gimli 0.23.0", ] [[package]] @@ -31,14 +31,14 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] name = "aes" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7001367fde4c768a19d1029f0a8be5abd9308e1119846d5bd9ad26297b8faf5" +checksum = "dd2bc6d3f370b5666245ff421e231cba4353df936e26986d2918e61a8fd6aef6" dependencies = [ "aes-soft", "aesni", @@ -47,43 +47,43 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f5007801316299f922a6198d1d09a0bae95786815d066d5880d13f7c45ead1" +checksum = "0301c9e9c443494d970a07885e8cf3e587bae8356a1d5abd0999068413f7205f" dependencies = [ "aead", "aes", "block-cipher", "ghash", - "subtle 2.2.3", + "subtle 2.3.0", ] [[package]] name = "aes-soft" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7" +checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6" dependencies = [ "block-cipher", "byteorder 1.3.4", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] name = "aesni" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050d39b0b7688b3a3254394c3e30a9d66c41dcf9b05b0e2dbdc623f6505d264" +checksum = "0a6fe808308bb07d393e2ea47780043ec47683fcf19cf5efc8ca51c50cc8c68a" dependencies = [ "block-cipher", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] name = "ahash" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" +checksum = "29661b60bec623f0586702976ff4d0c9942dcb6723161c2df0eea78455cfedfb" dependencies = [ "const-random", ] @@ -94,11 +94,17 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +[[package]] +name = "ahash" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6789e291be47ace86a60303502173d84af8327e3627ecf334356ee0f87a164c" + [[package]] name = "aho-corasick" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" dependencies = [ "memchr", ] @@ -134,9 +140,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.32" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" +checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" [[package]] name = "approx" @@ -170,9 +176,9 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "asn1_der" @@ -193,11 +199,17 @@ dependencies = [ "syn", ] +[[package]] +name = "assert_matches" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "695579f0f2520f3774bb40461e5adb066459d4e0af4d59d20175484fb8e9edf1" + [[package]] name = "async-channel" -version = "1.1.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee81ba99bee79f3c8ae114ae4baa7eaa326f63447cf2ec65e4393618b63f8770" +checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9" dependencies = [ "concurrent-queue", "event-listener", @@ -205,34 +217,93 @@ dependencies = [ ] [[package]] -name = "async-std" -version = "1.6.2" +name = "async-executor" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d68a33ebc8b57800847d00787307f84a562224a14db069b0acefe4c2abbf5d" +checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" dependencies = [ "async-task", - "crossbeam-utils", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell 1.5.2", + "vec-arena", +] + +[[package]] +name = "async-global-executor" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73079b49cd26b8fd5a15f68fc7707fc78698dc2a3d61430f2a7a9430230dfa04" +dependencies = [ + "async-executor", + "async-io", + "futures-lite", + "num_cpus", + "once_cell 1.5.2", +] + +[[package]] +name = "async-io" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a0b2bb8ae20fede194e779150fe283f65a4a08461b496de546ec366b174ad9" +dependencies = [ + "concurrent-queue", + "fastrand", + "futures-lite", + "libc", + "log", + "nb-connect", + "once_cell 1.5.2", + "parking", + "polling", + "vec-arena", + "waker-fn", + "winapi 0.3.9", +] + +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-std" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e82538bc65a25dbdff70e4c5439d52f068048ab97cdea0acd73f131594caa1" +dependencies = [ + "async-global-executor", + "async-io", + "async-mutex", + "blocking", + "crossbeam-utils 0.8.0", "futures-channel", "futures-core", "futures-io", - "futures-timer 3.0.2", + "futures-lite", + "gloo-timers", "kv-log-macro", "log", "memchr", "num_cpus", - "once_cell 1.4.0", + "once_cell 1.5.2", "pin-project-lite", "pin-utils", "slab", - "smol", "wasm-bindgen-futures", ] [[package]] name = "async-task" -version = "3.0.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3" +checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-tls" @@ -240,7 +311,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "rustls", "webpki", "webpki-roots 0.19.0", @@ -248,9 +319,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.38" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1a4a2f97ce50c9d0282c1468816208588441492b40d813b2e0419c22c05e7f" +checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0" dependencies = [ "proc-macro2", "quote", @@ -288,21 +359,21 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.50" +version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" +checksum = "2baad346b2d4e94a24347adeee9c7a93f412ee94b9cc26e5b59dea23848e9f28" dependencies = [ "addr2line", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.20.0", + "object 0.22.0", "rustc-demangle", ] @@ -342,7 +413,7 @@ checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" dependencies = [ "bitflags", "cexpr", - "cfg-if", + "cfg-if 0.1.10", "clang-sys", "clap", "env_logger", @@ -397,15 +468,13 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471" +checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" dependencies = [ - "byte-tools", - "byteorder 1.3.4", "crypto-mac 0.8.0", "digest 0.9.0", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] @@ -420,23 +489,23 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ "arrayref", - "arrayvec 0.5.1", + "arrayvec 0.5.2", "constant_time_eq", ] [[package]] name = "blake2s_simd" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" +checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" dependencies = [ "arrayref", - "arrayvec 0.5.1", + "arrayvec 0.5.2", "constant_time_eq", ] @@ -446,7 +515,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding", + "block-padding 0.1.5", "byte-tools", "byteorder 1.3.4", "generic-array 0.12.3", @@ -458,16 +527,17 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.3", + "block-padding 0.2.1", + "generic-array 0.14.4", ] [[package]] name = "block-cipher" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10" +checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -479,18 +549,24 @@ dependencies = [ "byte-tools", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "blocking" -version = "0.4.7" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2468ff7bf85066b4a3678fede6fe66db31846d753ff0adfbfab2c6a6e81612b" +checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" dependencies = [ "async-channel", + "async-task", "atomic-waker", + "fastrand", "futures-lite", - "once_cell 1.4.0", - "parking", - "waker-fn", + "once_cell 1.5.2", ] [[package]] @@ -501,9 +577,9 @@ checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" [[package]] name = "bstr" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931" +checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" dependencies = [ "memchr", ] @@ -569,9 +645,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" [[package]] name = "cc" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" dependencies = [ "jobserver", ] @@ -591,38 +667,46 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chacha20" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086c0f07ac275808b7bf9a39f2fd013aae1498be83632814c8c4e0bd53f2dc58" +checksum = "244fbce0d47e97e8ef2f63b81d5e05882cb518c68531eb33194990d7b7e85845" dependencies = [ - "stream-cipher 0.4.1", + "stream-cipher", "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18b0c90556d8e3fec7cf18d84a2f53d27b21288f2fe481b830fadcf809e48205" +checksum = "9bf18d374d66df0c05cdddd528a7db98f78c28e2519b120855c4f84c5027b1f5" dependencies = [ "aead", "chacha20", "poly1305", - "stream-cipher 0.4.1", + "stream-cipher", "zeroize", ] [[package]] name = "chrono" -version = "0.4.13" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ + "libc", "num-integer", "num-traits", "time", + "winapi 0.3.9", ] [[package]] @@ -638,9 +722,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.1" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term 0.11.0", "atty", @@ -671,18 +755,18 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.1.2" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1582139bb74d97ef232c30bc236646017db06f13ee7cc01fa24c9e55640f86d4" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" dependencies = [ "cache-padded", ] [[package]] name = "const-random" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" +checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02" dependencies = [ "const-random-macro", "proc-macro-hack", @@ -690,14 +774,20 @@ dependencies = [ [[package]] name = "const-random-macro" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" +checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685" dependencies = [ - "getrandom", + "getrandom 0.2.0", "proc-macro-hack", ] +[[package]] +name = "const_fn" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -750,7 +840,7 @@ dependencies = [ "log", "regalloc", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", "thiserror", ] @@ -788,7 +878,7 @@ checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" dependencies = [ "cranelift-codegen", "log", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", ] @@ -820,11 +910,21 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.0", ] [[package]] @@ -833,34 +933,59 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", + "crossbeam-epoch 0.8.2", + "crossbeam-utils 0.7.2", "maybe-uninit", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.0", + "crossbeam-utils 0.8.0", +] + [[package]] name = "crossbeam-epoch" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.0", - "cfg-if", - "crossbeam-utils", + "autocfg 1.0.1", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", "memoffset", "scopeguard 1.1.0", ] +[[package]] +name = "crossbeam-epoch" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0f606a85340376eef0d6d8fec399e6d4a544d648386c6645eb6d0653b27d9f" +dependencies = [ + "cfg-if 1.0.0", + "const_fn", + "crossbeam-utils 0.8.0", + "lazy_static", + "memoffset", + "scopeguard 1.1.0", +] + [[package]] name = "crossbeam-queue" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ - "cfg-if", - "crossbeam-utils", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "maybe-uninit", ] @@ -870,8 +995,20 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.0", - "cfg-if", + "autocfg 1.0.1", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec91540d98355f690a86367e566ecad2e9e579f230230eb7c21398372be73ea5" +dependencies = [ + "autocfg 1.0.1", + "cfg-if 1.0.0", + "const_fn", "lazy_static", ] @@ -897,8 +1034,8 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.3", - "subtle 2.2.3", + "generic-array 0.14.4", + "subtle 2.3.0", ] [[package]] @@ -929,21 +1066,34 @@ dependencies = [ "byteorder 1.3.4", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.2.3", + "subtle 2.3.0", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" +dependencies = [ + "byteorder 1.3.4", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.3.0", "zeroize", ] [[package]] name = "data-encoding" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" +checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" [[package]] name = "derive_more" -version = "0.99.9" +version = "0.99.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" +checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2", "quote", @@ -965,7 +1115,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -974,7 +1124,7 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "dirs-sys", ] @@ -1022,30 +1172,30 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82" +checksum = "d55796afa1b20c2945ca8eabfc421839f2b766619209f1ede813cf2484f31804" [[package]] name = "ed25519" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf038a7b6fd7ef78ad3348b63f3a17550877b0e28f8d68bcc94894d1412158bc" +checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" dependencies = [ "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.0-pre.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 3.0.0", "ed25519", "rand 0.7.3", "serde", - "sha2 0.8.2", + "sha2 0.9.2", "zeroize", ] @@ -1090,9 +1240,9 @@ dependencies = [ [[package]] name = "environmental" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516aa8d7a71cb00a1c4146f0798549b93d083d4f189b3ced8f3de6b8f11ee6c4" +checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e" [[package]] name = "erased-serde" @@ -1105,9 +1255,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01" +checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" dependencies = [ "errno-dragonfly", "libc", @@ -1124,11 +1274,108 @@ dependencies = [ "libc", ] +[[package]] +name = "ethbloom" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ea35e1b0845310ade8eb048d401b0b899b8eff05c4d2a3454d29ef4eb1b8af" +dependencies = [ + "ethereum-types", + "hash-db", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "rlp-derive", + "serde", + "sha3 0.9.1", + "triehash", +] + +[[package]] +name = "ethereum-types" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "473aecff686bd8e7b9db0165cbbb53562376b39bf35b427f0c60446a9e1634b0" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + [[package]] name = "event-listener" -version = "2.2.1" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829694371bd7bbc6aee17c4ff624aad8bf9f4dc06c6f9f6071eaa08c89530d10" +checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" + +[[package]] +name = "evm" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286da2277b078e7033491d62e674eeccd01d913a87bb60ec0cabbcf80ec62e9" +dependencies = [ + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "serde", + "sha3 0.8.2", +] + +[[package]] +name = "evm-core" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63c6c39300d7779427f461408d867426e202ea72ac7ece2455689ff0e4bddb6f" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "689c481648c3f45b64b1278077c04284ad535e068c9d6872153c7b74da7ccb03" +dependencies = [ + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a148ad1b3e0af31aa03c6c3cc9df3a529e279dad8e29b4ef90dccad32601e4" +dependencies = [ + "evm-core", + "primitive-types", + "sha3 0.8.2", +] [[package]] name = "exit-future" @@ -1136,7 +1383,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", ] [[package]] @@ -1175,9 +1422,83 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a9cb09840f81cd211e435d00a4e487edd263dc3c8ff815c32dd76ad668ebed" +checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +dependencies = [ + "instant", +] + +[[package]] +name = "fc-consensus" +version = "0.1.0" +dependencies = [ + "derive_more", + "ethereum", + "fp-consensus", + "futures 0.3.8", + "log", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "fc-rpc" +version = "0.1.0" +dependencies = [ + "ethereum", + "ethereum-types", + "fc-consensus", + "fc-rpc-core", + "fp-rpc", + "futures 0.3.8", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 14.2.0", + "jsonrpc-derive 14.2.2", + "jsonrpc-pubsub 15.1.0", + "libsecp256k1", + "log", + "pallet-ethereum", + "pallet-evm", + "parity-scale-codec", + "rand 0.7.3", + "rlp", + "rustc-hex", + "sc-client-api", + "sc-network", + "sc-rpc", + "sc-service", + "sha3 0.8.2", + "sp-api", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-storage", + "sp-transaction-pool", +] + +[[package]] +name = "fc-rpc-core" +version = "0.1.0" +dependencies = [ + "ethereum-types", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 14.2.0", + "jsonrpc-derive 14.2.2", + "jsonrpc-pubsub 15.1.0", + "rustc-hex", + "serde", + "serde_json", +] [[package]] name = "fdlimit" @@ -1190,9 +1511,9 @@ dependencies = [ [[package]] name = "file-per-thread-logger" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3937f028664bd0e13df401ba49a4567ccda587420365823242977f06609ed1" +checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ "env_logger", "log", @@ -1205,7 +1526,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b" dependencies = [ "either", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 2.0.2", "log", "num-traits", @@ -1233,11 +1554,11 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e" +checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crc32fast", "libc", "libz-sys", @@ -1245,25 +1566,68 @@ dependencies = [ ] [[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fork-tree" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding 2.1.0", +] + +[[package]] +name = "fp-consensus" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-evm" +version = "0.8.0" +dependencies = [ + "evm", + "parity-scale-codec", + "serde", + "sp-core", + "sp-std", +] [[package]] -name = "fork-tree" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98d7f1c606d158d5af4479f2971f259d8dd262f03f6f7b5b37e92eec7b8de396" +name = "fp-rpc" +version = "0.1.0" dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", "parity-scale-codec", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "frame-benchmarking" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a5e3fe43568300fdca1c1bfd45ea463a12cca8fbe6172a4f6d58cd54e3fbcc" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -1281,9 +1645,9 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337ff68053dc7f7af821bdd241f367c17deb2213cc1b88cda7b856e796b6690" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ + "chrono", "frame-benchmarking", "parity-scale-codec", "sc-cli", @@ -1292,6 +1656,7 @@ dependencies = [ "sc-service", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime", "sp-state-machine", "structopt", @@ -1300,8 +1665,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c843800f05a7ad4653bc0db53a15e3d9bdd1cf14103e15c29e8aca200dbb1188" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -1317,8 +1681,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b5640bfcb7111643807c63cd38ecdcc923d3253e525f23ab6b366002bf8ecd5" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "serde", @@ -1329,19 +1692,18 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807c32da14bd0e5fb751095335a07938cda6f1488f57d7b0539118e3434980a8" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "bitmask", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", "log", - "once_cell 1.4.0", + "once_cell 1.5.2", "parity-scale-codec", "paste", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-arithmetic", "sp-core", "sp-inherents", @@ -1355,8 +1717,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508dc2eb44a802f1876e3dc97a76aed8f18b993f75f6cb1975cb83cf45a5d981" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support-procedural-tools", "proc-macro2", @@ -1367,8 +1728,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f6d1dd14477123180c47024bcc24c1a624ea8631b4f00080d14089907397f4" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1380,8 +1740,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad38379ecedd632f286c7b94a4b9a15bffb635194de4dbf2b4458bc46cee28f" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "proc-macro2", "quote", @@ -1391,8 +1750,7 @@ dependencies = [ [[package]] name = "frame-system" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d172404f0e44b867f5fd14465a27f298b8828b53d7a7a555d3759e1dec3c8f0d" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1408,8 +1766,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e3a70ce89455777c5a93c60943e8a404c0be66bd3f53605c4a4e79baa80e91" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -1423,8 +1780,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b128f689fd9d497c3a7e881be524a8a1e2d80e2661754add6e36c9dfdcbe373" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sp-api", @@ -1466,15 +1822,15 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" [[package]] name = "futures" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" dependencies = [ "futures-channel", "futures-core", @@ -1487,9 +1843,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" dependencies = [ "futures-core", "futures-sink", @@ -1506,9 +1862,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" [[package]] name = "futures-core-preview" @@ -1522,7 +1878,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "num_cpus", ] @@ -1532,21 +1888,21 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" dependencies = [ - "futures 0.1.29", - "futures 0.3.5", + "futures 0.1.30", + "futures 0.3.8", "lazy_static", "log", "parking_lot 0.9.0", - "pin-project", + "pin-project 0.4.27", "serde", "serde_json", ] [[package]] name = "futures-executor" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" dependencies = [ "futures-core", "futures-task", @@ -1556,15 +1912,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" +checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" [[package]] name = "futures-lite" -version = "0.1.10" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe71459749b2e8e66fb95df721b22fa08661ad384a0c5b519e11d3893b4692a" +checksum = "5e6c079abfac3ab269e2927ec048dabc89d009ebfdda6b8ee86624f30c689658" dependencies = [ "fastrand", "futures-core", @@ -1577,9 +1933,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -1589,17 +1945,17 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" [[package]] name = "futures-task" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" dependencies = [ - "once_cell 1.4.0", + "once_cell 1.5.2", ] [[package]] @@ -1613,18 +1969,14 @@ name = "futures-timer" version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] [[package]] name = "futures-util" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "futures-channel", "futures-core", "futures-io", @@ -1632,7 +1984,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project", + "pin-project 1.0.2", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1658,9 +2010,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" dependencies = [ "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.8", "memchr", - "pin-project", + "pin-project 0.4.27", ] [[package]] @@ -1669,6 +2021,19 @@ version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +[[package]] +name = "generator" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc" +dependencies = [ + "cc", + "libc", + "log", + "rustc_version", + "winapi 0.3.9", +] + [[package]] name = "generic-array" version = "0.12.3" @@ -1680,9 +2045,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ "typenum", "version_check", @@ -1712,13 +2077,24 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.14" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", - "wasi", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] @@ -1743,9 +2119,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "glob" @@ -1755,9 +2131,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120" +checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a" dependencies = [ "aho-corasick", "bstr", @@ -1788,7 +2164,7 @@ dependencies = [ "byteorder 1.3.4", "bytes 0.4.12", "fnv", - "futures 0.1.29", + "futures 0.1.30", "http 0.1.21", "indexmap", "log", @@ -1799,9 +2175,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" dependencies = [ "bytes 0.5.6", "fnv", @@ -1811,9 +2187,10 @@ dependencies = [ "http 0.2.1", "indexmap", "slab", - "tokio 0.2.22", + "tokio 0.2.23", "tokio-util", "tracing", + "tracing-futures", ] [[package]] @@ -1847,18 +2224,27 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" dependencies = [ - "ahash 0.2.18", + "ahash 0.2.19", "autocfg 0.1.7", ] [[package]] name = "hashbrown" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ "ahash 0.3.8", - "autocfg 1.0.0", + "autocfg 1.0.1", +] + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash 0.4.6", ] [[package]] @@ -1872,9 +2258,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" dependencies = [ "libc", ] @@ -1947,7 +2333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "http 0.1.21", "tokio-buf", ] @@ -1968,6 +2354,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humantime" version = "1.3.0" @@ -1984,7 +2376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "futures-cpupool", "h2 0.1.26", "http 0.1.21", @@ -2009,23 +2401,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.7" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" dependencies = [ "bytes 0.5.6", "futures-channel", "futures-core", "futures-util", - "h2 0.2.6", + "h2 0.2.7", "http 0.2.1", "http-body 0.3.1", "httparse", + "httpdate", "itoa", - "pin-project", + "pin-project 1.0.2", "socket2", - "time", - "tokio 0.2.22", + "tokio 0.2.23", "tower-service", "tracing", "want 0.3.0", @@ -2040,11 +2432,11 @@ dependencies = [ "bytes 0.5.6", "ct-logs", "futures-util", - "hyper 0.13.7", + "hyper 0.13.9", "log", "rustls", "rustls-native-certs", - "tokio 0.2.22", + "tokio 0.2.23", "tokio-rustls", "webpki", ] @@ -2080,6 +2472,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f7a72f11830b52333f36e3b09a288333888bf54380fd0ac0790a3c31ab0f3c5" +dependencies = [ + "rlp", +] + [[package]] name = "impl-serde" version = "0.3.1" @@ -2102,29 +2503,32 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7" +checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" dependencies = [ - "autocfg 1.0.0", - "hashbrown 0.8.1", + "autocfg 1.0.1", + "hashbrown 0.9.1", "serde", ] [[package]] name = "instant" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] name = "integer-sqrt" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65877bf7d44897a473350b1046277941cee20b263397e90869c50b6e766088b" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] [[package]] name = "intervalier" @@ -2132,7 +2536,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-timer 2.0.2", ] @@ -2192,13 +2596,29 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.42" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2" +checksum = "ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpc-client-transports" +version = "14.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2773fa94a2a1fd51efb89a8f45b8861023dbb415d18d3c9235ae9388d780f9ec" +dependencies = [ + "failure", + "futures 0.1.30", + "jsonrpc-core 14.2.0", + "jsonrpc-pubsub 14.2.0", + "log", + "serde", + "serde_json", + "url 1.7.2", +] + [[package]] name = "jsonrpc-client-transports" version = "15.1.0" @@ -2206,35 +2626,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" dependencies = [ "failure", - "futures 0.1.29", - "jsonrpc-core", - "jsonrpc-pubsub", + "futures 0.1.30", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "log", "serde", "serde_json", "url 1.7.2", ] +[[package]] +name = "jsonrpc-core" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0747307121ffb9703afd93afbd0fb4f854c38fb873f2c8b90e0e902f27c7b62" +dependencies = [ + "futures 0.1.30", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "jsonrpc-core" version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "log", "serde", "serde_derive", "serde_json", ] +[[package]] +name = "jsonrpc-core-client" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34221123bc79b66279a3fde2d3363553835b43092d629b34f2e760c44dc94713" +dependencies = [ + "jsonrpc-client-transports 14.2.1", +] + [[package]] name = "jsonrpc-core-client" version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" dependencies = [ - "jsonrpc-client-transports", + "jsonrpc-client-transports 15.1.0", +] + +[[package]] +name = "jsonrpc-derive" +version = "14.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e77e8812f02155b85a677a96e1d16b60181950c0636199bc4528524fba98dc" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2256,7 +2710,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7" dependencies = [ "hyper 0.12.35", - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", "net2", @@ -2270,7 +2724,7 @@ version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf50e53e4eea8f421a7316c5f63e395f7bc7c4e786a6dc54d76fab6ff7aa7ce7" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", "parity-tokio-ipc", @@ -2278,13 +2732,26 @@ dependencies = [ "tokio-service", ] +[[package]] +name = "jsonrpc-pubsub" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d44f5602a11d657946aac09357956d2841299ed422035edf140c552cb057986" +dependencies = [ + "jsonrpc-core 14.2.0", + "log", + "parking_lot 0.10.2", + "rand 0.7.3", + "serde", +] + [[package]] name = "jsonrpc-pubsub" version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 15.1.0", "log", "parking_lot 0.10.2", "rand 0.7.3", @@ -2299,7 +2766,7 @@ checksum = "72f1f3990650c033bd8f6bd46deac76d990f9bbfb5f8dc8c4767bf0a00392176" dependencies = [ "bytes 0.4.12", "globset", - "jsonrpc-core", + "jsonrpc-core 15.1.0", "lazy_static", "log", "tokio 0.1.22", @@ -2313,7 +2780,7 @@ version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6596fe75209b73a2a75ebe1dce4e60e03b88a2b25e8807b667597f6315150d22" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", "parity-ws", @@ -2353,7 +2820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a" dependencies = [ "parity-util-mem", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -2382,7 +2849,7 @@ dependencies = [ "parking_lot 0.10.2", "regex", "rocksdb", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -2393,9 +2860,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lazycell" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "leb128" @@ -2405,9 +2872,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.73" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" +checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614" [[package]] name = "libloading" @@ -2433,7 +2900,7 @@ checksum = "571f5a4604c1a40d75651da141dfde29ad15329f537a779528803297d2220274" dependencies = [ "atomic", "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.8", "lazy_static", "libp2p-core", "libp2p-core-derive", @@ -2459,8 +2926,8 @@ dependencies = [ "multihash", "parity-multiaddr", "parking_lot 0.10.2", - "pin-project", - "smallvec 1.4.1", + "pin-project 0.4.27", + "smallvec 1.4.2", "wasm-timer", ] @@ -2475,7 +2942,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -2484,14 +2951,14 @@ dependencies = [ "multistream-select", "parity-multiaddr", "parking_lot 0.10.2", - "pin-project", + "pin-project 0.4.27", "prost", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", "sha2 0.8.2", - "smallvec 1.4.1", + "smallvec 1.4.2", "thiserror", "unsigned-varint 0.4.0", "void", @@ -2515,7 +2982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74029ae187f35f4b8ddf26b9779a68b340045d708528a103917cdca49a296db5" dependencies = [ "flate2", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", ] @@ -2525,7 +2992,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cf319822e08dd65c8e060d2354e9f952895bbc433f5706c75ed010c152aee5e" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "log", ] @@ -2538,13 +3005,13 @@ checksum = "d8a9acb43a3e4a4e413e0c4abe0fa49308df7c6335c88534757b647199cb8a51" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "libp2p-swarm", "prost", "prost-build", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -2557,7 +3024,7 @@ dependencies = [ "byteorder 1.3.4", "bytes 0.5.6", "fnv", - "futures 0.3.5", + "futures 0.3.8", "futures_codec", "hex_fmt", "libp2p-core", @@ -2568,7 +3035,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "sha2 0.8.2", - "smallvec 1.4.1", + "smallvec 1.4.2", "unsigned-varint 0.4.0", "wasm-timer", ] @@ -2579,13 +3046,13 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56396ee63aa9164eacf40c2c5d2bda8c4133c2f57e1b0425d51d3a4e362583b1" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", - "smallvec 1.4.1", + "smallvec 1.4.2", "wasm-timer", ] @@ -2595,11 +3062,11 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc7fa9047f8b8f544278a35c2d9d45d3b2c1785f2d86d4e1629d6edf97be3955" dependencies = [ - "arrayvec 0.5.1", + "arrayvec 0.5.2", "bytes 0.5.6", "either", "fnv", - "futures 0.3.5", + "futures 0.3.8", "futures_codec", "libp2p-core", "libp2p-swarm", @@ -2609,7 +3076,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "sha2 0.8.2", - "smallvec 1.4.1", + "smallvec 1.4.2", "uint", "unsigned-varint 0.4.0", "void", @@ -2626,14 +3093,14 @@ dependencies = [ "data-encoding", "dns-parser", "either", - "futures 0.3.5", + "futures 0.3.8", "lazy_static", "libp2p-core", "libp2p-swarm", "log", "net2", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "void", "wasm-timer", ] @@ -2646,7 +3113,7 @@ checksum = "8a73a799cc8410b36e40b8f4c4b6babbcb9efd3727111bf517876e4acfa612d3" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.5", + "futures 0.3.8", "futures_codec", "libp2p-core", "log", @@ -2661,8 +3128,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ef6c490042f549fb1025f2892dfe6083d97a77558f450c1feebe748ca9eb15a" dependencies = [ "bytes 0.5.6", - "curve25519-dalek", - "futures 0.3.5", + "curve25519-dalek 2.1.0", + "futures 0.3.8", "lazy_static", "libp2p-core", "log", @@ -2672,7 +3139,7 @@ dependencies = [ "sha2 0.8.2", "snow", "static_assertions", - "x25519-dalek", + "x25519-dalek 0.6.0", "zeroize", ] @@ -2682,7 +3149,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad063c21dfcea4518ac9e8bd4119d33a5b26c41e674f602f41f05617a368a5c8" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "libp2p-swarm", "log", @@ -2698,7 +3165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "903a12e99c72dbebefea258de887982adeacc7025baa1ceb10b7fa9928f54791" dependencies = [ "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.8", "futures_codec", "libp2p-core", "log", @@ -2711,16 +3178,16 @@ dependencies = [ [[package]] name = "libp2p-pnet" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d0db10e139d22d7af0b23ed7949449ec86262798aa0fd01595abdbcb02dc87" +checksum = "96b3c2d5d26a9500e959a0e19743897239a6c4be78dadf99b70414301a70c006" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "log", - "pin-project", + "pin-project 0.4.27", "rand 0.7.3", "salsa20", - "sha3", + "sha3 0.9.1", ] [[package]] @@ -2731,14 +3198,14 @@ checksum = "9c0c9e8a4cd69d97e9646c54313d007512f411aba8c5226cfcda16df6a6e84a3" dependencies = [ "async-trait", "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "libp2p-swarm", "log", - "lru 0.6.0", + "lru 0.6.1", "minicbor", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "unsigned-varint 0.5.1", "wasm-timer", ] @@ -2750,11 +3217,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7193e444210132237b81b755ec7fe53f1c4bd2f53cf719729b94c0c72eb6eaa1" dependencies = [ "either", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "log", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "void", "wasm-timer", ] @@ -2766,7 +3233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44f42ec130d7a37a7e47bf4398026b7ad9185c08ed26972e2720f8b94112796f" dependencies = [ "async-std", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "get_if_addrs", "ipnet", @@ -2782,7 +3249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dea7acb0a034f70d7db94c300eba3f65c0f6298820105624088a9609c9974d77" dependencies = [ "async-std", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "log", ] @@ -2793,7 +3260,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34c1faac6f92c21fbe155417957863ea822fba9e9fd5eb24c0912336a100e63f" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -2809,14 +3276,14 @@ checksum = "d650534ebd99f48f6fa292ed5db10d30df2444943afde4407ceeddab8e513fca" dependencies = [ "async-tls", "either", - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", "log", "quicksink", "rustls", "rw-stream-sink", "soketto", - "url 2.1.1", + "url 2.2.0", "webpki", "webpki-roots 0.18.0", ] @@ -2827,9 +3294,9 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "781d9b9f043dcdabc40640807125368596b849fd4d96cdca2dcf052fdf6f33fd" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "libp2p-core", - "parking_lot 0.11.0", + "parking_lot 0.11.1", "thiserror", "yamux", ] @@ -2858,18 +3325,17 @@ dependencies = [ "hmac-drbg", "rand 0.7.3", "sha2 0.8.2", - "subtle 2.2.3", + "subtle 2.3.0", "typenum", ] [[package]] name = "libz-sys" -version = "1.0.25" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" dependencies = [ "cc", - "libc", "pkg-config", "vcpkg", ] @@ -2920,9 +3386,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" dependencies = [ "scopeguard 1.1.0", ] @@ -2933,7 +3399,20 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", +] + +[[package]] +name = "loom" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0e8460f2f2121162705187214720353c517b97bdfb3494c0b1e33d83ebe4bed" +dependencies = [ + "cfg-if 0.1.10", + "generator", + "scoped-tls", + "serde", + "serde_json", ] [[package]] @@ -2947,11 +3426,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111b945ac72ec09eb7bc62a0fbdc3cc6e80555a7245f52a69d3921a75b53b153" +checksum = "be716eb6878ca2263eb5d00a781aa13264a794f519fe6af4fbb2668b2d5441c0" dependencies = [ - "hashbrown 0.8.1", + "hashbrown 0.9.1", ] [[package]] @@ -2986,22 +3465,33 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" [[package]] name = "mathchain" -version = "0.1.0" +version = "0.2.0" dependencies = [ + "fc-consensus", + "fc-rpc", + "fp-rpc", "frame-benchmarking", "frame-benchmarking-cli", - "jsonrpc-core", + "futures 0.3.8", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", + "log", + "mathchain-consensus", "mathchain-runtime", "mathchain-runtime-galois", "mathchain-runtime-mathchain", + "pallet-ethereum", + "pallet-evm", "pallet-transaction-payment-rpc", "sc-basic-authorship", "sc-cli", "sc-client-api", "sc-consensus", "sc-consensus-aura", + "sc-consensus-manual-seal", "sc-executor", "sc-finality-grandpa", + "sc-network", "sc-rpc", "sc-rpc-api", "sc-service", @@ -3015,16 +3505,50 @@ dependencies = [ "sp-finality-grandpa", "sp-inherents", "sp-runtime", + "sp-timestamp", "sp-transaction-pool", "structopt", "substrate-build-script-utils", "substrate-frame-rpc-system", ] +[[package]] +name = "mathchain-consensus" +version = "0.1.0" +dependencies = [ + "derive_more", + "ethereum", + "futures 0.3.8", + "log", + "mathchain-consensus-primitives", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "mathchain-consensus-primitives" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "mathchain-runtime" version = "0.1.0" dependencies = [ + "fp-rpc", "frame-benchmarking", "frame-executive", "frame-support", @@ -3034,11 +3558,12 @@ dependencies = [ "hex-literal", "pallet-aura", "pallet-balances", + "pallet-ethereum", + "pallet-evm", "pallet-grandpa", "pallet-randomness-collective-flip", "pallet-recovery", "pallet-sudo", - "pallet-template", "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", @@ -3049,6 +3574,7 @@ dependencies = [ "sp-consensus-aura", "sp-core", "sp-inherents", + "sp-io", "sp-offchain", "sp-runtime", "sp-session", @@ -3083,9 +3609,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memmap" @@ -3099,11 +3625,11 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", ] [[package]] @@ -3113,7 +3639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a" dependencies = [ "hash-db", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "parity-util-mem", ] @@ -3157,11 +3683,12 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" +checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" dependencies = [ "adler", + "autocfg 1.0.1", ] [[package]] @@ -3170,7 +3697,7 @@ version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "fuchsia-zircon", "fuchsia-zircon-sys", "iovec", @@ -3203,7 +3730,7 @@ checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" dependencies = [ "log", "mio", - "miow 0.3.5", + "miow 0.3.6", "winapi 0.3.9", ] @@ -3232,9 +3759,9 @@ dependencies = [ [[package]] name = "miow" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" dependencies = [ "socket2", "winapi 0.3.9", @@ -3248,37 +3775,37 @@ checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" [[package]] name = "multihash" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75db05d738947aa5389863aadafbcf2e509d7ba099dc2ddcdf4fc66bf7a9e03" +checksum = "567122ab6492f49b59def14ecc36e13e64dca4188196dd0cd41f9f3f979f3df6" dependencies = [ "blake2b_simd", "blake2s_simd", - "digest 0.8.1", - "sha-1", - "sha2 0.8.2", - "sha3", - "unsigned-varint 0.3.3", + "digest 0.9.0", + "sha-1 0.9.2", + "sha2 0.9.2", + "sha3 0.9.1", + "unsigned-varint 0.5.1", ] [[package]] name = "multimap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" +checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] name = "multistream-select" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" +checksum = "93faf2e41f9ee62fb01680ed48f3cc26652352327aa2e59869070358f6b7dd75" dependencies = [ "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.8", "log", - "pin-project", - "smallvec 1.4.1", - "unsigned-varint 0.4.0", + "pin-project 1.0.2", + "smallvec 1.4.2", + "unsigned-varint 0.5.1", ] [[package]] @@ -3307,13 +3834,23 @@ dependencies = [ "rand 0.3.23", ] +[[package]] +name = "nb-connect" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "net2" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "winapi 0.3.9", ] @@ -3326,7 +3863,7 @@ checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" dependencies = [ "bitflags", "cc", - "cfg-if", + "cfg-if 0.1.10", "libc", "void", ] @@ -3359,7 +3896,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-integer", "num-traits", ] @@ -3370,17 +3907,17 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits", ] [[package]] name = "num-integer" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits", ] @@ -3390,7 +3927,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-bigint", "num-integer", "num-traits", @@ -3398,11 +3935,11 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "libm", ] @@ -3433,6 +3970,12 @@ dependencies = [ "wasmparser 0.57.0", ] +[[package]] +name = "object" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" + [[package]] name = "once_cell" version = "0.1.8" @@ -3444,11 +3987,11 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.4.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" dependencies = [ - "parking_lot 0.10.2", + "parking_lot 0.11.1", ] [[package]] @@ -3481,8 +4024,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3150af311603b2fd78d948c8e2346d6b2530403c3971ae684ccc46021c1ea198" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -3501,8 +4043,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65706c382ae14ef2768e7411c5faaf1e0a310b4a86d17c3a93dfacb2c5987576" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -3517,8 +4058,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56bf116724c3adb7eee6ae49adfc28d3d38d9d34bbfdcc009497120256309a37" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -3530,18 +4070,52 @@ dependencies = [ ] [[package]] -name = "pallet-finality-tracker" +name = "pallet-ethereum" +version = "0.1.0" +dependencies = [ + "ethereum", + "ethereum-types", + "evm", + "fp-consensus", + "fp-evm", + "fp-rpc", + "frame-support", + "frame-system", + "libsecp256k1", + "pallet-balances", + "pallet-evm", + "pallet-timestamp", + "parity-scale-codec", + "rlp", + "rustc-hex", + "serde", + "sha3 0.8.2", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9414e60c78b94ae77ea8ccc4a86e3d5ebd1de93c236d3dd899abacefe5d7e82" dependencies = [ + "evm", + "evm-gasometer", + "evm-runtime", + "fp-evm", "frame-support", "frame-system", "impl-trait-for-tuples", + "pallet-balances", + "pallet-timestamp", "parity-scale-codec", + "primitive-types", + "ripemd160", + "rlp", "serde", - "sp-finality-tracker", - "sp-inherents", + "sha3 0.8.2", + "sp-core", + "sp-io", "sp-runtime", "sp-std", ] @@ -3549,14 +4123,12 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8a3b81d434ce9ef2c34adf61afa5ecf2a6e386cd626369deda1ca2f7a3b076" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-authorship", - "pallet-finality-tracker", "pallet-session", "parity-scale-codec", "serde", @@ -3572,8 +4144,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b62b8adc02901769b7756b054fa732b6d1aad01e8a2d6873a70fdcd38c59a1" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -3586,8 +4157,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639979e3afb0365bf8669e83f20522798268a837d976936d450d5b233d5405fc" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "enumflags2", "frame-support", @@ -3602,8 +4172,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8abf520fc0c3259be05f164d43d34d52c86aeef8e8c5fded40145394394fc75d" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -3623,8 +4192,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13642cbbb2ea520ca2021299baec604de102a1d033dd32812c946cb03f48f47e" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", @@ -3635,23 +4203,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-template" -version = "0.0.1" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-core", - "sp-io", - "sp-runtime", -] - [[package]] name = "pallet-timestamp" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccddd55b713f541dff6ccf063cc7ddbc4fc41e92a9fdad8ec9562a0e3b465016" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -3669,15 +4224,14 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fe2fc67f2eb123199a5b8fb89a8e1c30e5d6d6b1d98e0330bac85c0d8c46f1" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "frame-system", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-core", "sp-io", "sp-runtime", @@ -3687,12 +4241,11 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fb0463589eeb1be8a3237e7260d139240e7d113950904f5a3cae5502576078" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 15.1.0", + "jsonrpc-derive 15.1.0", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "serde", @@ -3706,8 +4259,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c8b6676df5a4b411a283b9ea22551094710180fa5caebeae9eea8e9dbfa620" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-support", "parity-scale-codec", @@ -3746,16 +4298,16 @@ dependencies = [ "serde", "static_assertions", "unsigned-varint 0.5.1", - "url 2.1.1", + "url 2.2.0", ] [[package]] name = "parity-scale-codec" -version = "1.3.4" +version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d38aeaffc032ec69faa476b3caaca8d4dd7f3f798137ff30359e5c7869ceb6" +checksum = "7c740e5fbcb6847058b40ac7e5574766c6388f585e184d769910fe0d3a2ca861" dependencies = [ - "arrayvec 0.5.1", + "arrayvec 0.5.2", "bitvec", "byte-slice-cast", "parity-scale-codec-derive", @@ -3764,9 +4316,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd20ff7e0399b274a5f5bb37b712fccb5b3a64b9128200d1c3cc40fe709cb073" +checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3787,11 +4339,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "libc", "log", "mio-named-pipes", - "miow 0.3.5", + "miow 0.3.6", "rand 0.7.3", "tokio 0.1.22", "tokio-named-pipes", @@ -3805,13 +4357,13 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c" dependencies = [ - "cfg-if", - "hashbrown 0.8.1", + "cfg-if 0.1.10", + "hashbrown 0.8.2", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.10.2", "primitive-types", - "smallvec 1.4.1", + "smallvec 1.4.2", "winapi 0.3.9", ] @@ -3845,16 +4397,16 @@ dependencies = [ "mio", "mio-extras", "rand 0.7.3", - "sha-1", + "sha-1 0.8.2", "slab", - "url 2.1.1", + "url 2.2.0", ] [[package]] name = "parking" -version = "1.0.6" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" [[package]] name = "parking_lot" @@ -3889,12 +4441,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" +checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", - "lock_api 0.4.1", + "lock_api 0.4.2", "parking_lot_core 0.8.0", ] @@ -3917,7 +4469,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "cloudabi 0.0.3", "libc", "redox_syscall", @@ -3932,11 +4484,11 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "cloudabi 0.0.3", "libc", "redox_syscall", - "smallvec 1.4.1", + "smallvec 1.4.2", "winapi 0.3.9", ] @@ -3946,12 +4498,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "cloudabi 0.1.0", "instant", "libc", "redox_syscall", - "smallvec 1.4.1", + "smallvec 1.4.2", "winapi 0.3.9", ] @@ -3985,6 +4537,12 @@ dependencies = [ "rayon", ] +[[package]] +name = "pdqselect" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27" + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -4015,18 +4573,38 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.23" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +dependencies = [ + "pin-project-internal 0.4.27", +] + +[[package]] +name = "pin-project" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" +dependencies = [ + "pin-project-internal 1.0.2", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" dependencies = [ - "pin-project-internal", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "pin-project-internal" -version = "0.4.23" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f" dependencies = [ "proc-macro2", "quote", @@ -4035,9 +4613,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.7" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" +checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" [[package]] name = "pin-utils" @@ -4047,9 +4625,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" [[package]] name = "platforms" @@ -4057,39 +4635,53 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +[[package]] +name = "polling" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "log", + "wepoll-sys", + "winapi 0.3.9", +] + [[package]] name = "poly1305" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1" +checksum = "22ce46de8e53ee414ca4d02bfefac75d8c12fba948b76622a40b4be34dfce980" dependencies = [ "universal-hash", ] [[package]] name = "polyval" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc" +checksum = "a5884790f1ce3553ad55fec37b5aaac5882e0e845a2612df744d6c85c9bf046c" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "universal-hash", ] [[package]] name = "ppv-lite86" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8" +checksum = "7dd39dcacf71411ba488570da7bbc89b717225e46478b30ba99b92db6b149809" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", "uint", ] @@ -4105,9 +4697,9 @@ dependencies = [ [[package]] name = "proc-macro-error" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2", @@ -4118,22 +4710,20 @@ dependencies = [ [[package]] name = "proc-macro-error-attr" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", "quote", - "syn", - "syn-mid", "version_check", ] [[package]] name = "proc-macro-hack" -version = "0.5.18" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro-nested" @@ -4143,9 +4733,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" [[package]] name = "proc-macro2" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ "unicode-xid", ] @@ -4156,10 +4746,10 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d70cf4412832bcac9cffe27906f4a66e450d323525e977168c70d1b36120ae" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "fnv", "lazy_static", - "parking_lot 0.11.0", + "parking_lot 0.11.1", "regex", "thiserror", ] @@ -4319,7 +4909,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.15", "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", @@ -4368,7 +4958,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.15", ] [[package]] @@ -4470,25 +5060,25 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080" +checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" dependencies = [ - "autocfg 1.0.0", - "crossbeam-deque", + "autocfg 1.0.1", + "crossbeam-deque 0.8.0", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" +checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ - "crossbeam-deque", - "crossbeam-queue", - "crossbeam-utils", + "crossbeam-channel", + "crossbeam-deque 0.8.0", + "crossbeam-utils 0.8.0", "lazy_static", "num_cpus", ] @@ -4510,29 +5100,29 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_users" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" dependencies = [ - "getrandom", + "getrandom 0.1.15", "redox_syscall", "rust-argon2", ] [[package]] name = "ref-cast" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623" +checksum = "e17626b2f4bcf35b84bf379072a66e28cfe5c3c6ae58b38e4914bb8891dabece" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144" +checksum = "0c523ccaed8ac4b0288948849a350b37d3035827413c458b6a40ddb614bb4f72" dependencies = [ "proc-macro2", "quote", @@ -4547,14 +5137,14 @@ checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" dependencies = [ "log", "rustc-hash", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] name = "regex" -version = "1.3.9" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" dependencies = [ "aho-corasick", "memchr", @@ -4574,9 +5164,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" [[package]] name = "region" @@ -4607,19 +5197,50 @@ checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531" [[package]] name = "ring" -version = "0.16.15" +version = "0.16.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" +checksum = "b72b84d47e8ec5a4f2872e8262b8f8256c5be1c938a7d6d3a867a3ba8f722f74" dependencies = [ "cc", "libc", - "once_cell 1.4.0", + "once_cell 1.5.2", "spin", "untrusted", "web-sys", "winapi 0.3.9", ] +[[package]] +name = "ripemd160" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "rlp" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73" +dependencies = [ + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "rocksdb" version = "0.15.0" @@ -4642,21 +5263,21 @@ dependencies = [ [[package]] name = "rust-argon2" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" +checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19" dependencies = [ - "base64 0.11.0", + "base64 0.12.3", "blake2b_simd", "constant_time_eq", - "crossbeam-utils", + "crossbeam-utils 0.7.2", ] [[package]] name = "rustc-demangle" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" +checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" [[package]] name = "rustc-hash" @@ -4681,9 +5302,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac94b333ee2aac3284c5b8a1b7fb4dd11cba88c244e3fe33cdbd047af0eb693" +checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ "base64 0.12.3", "log", @@ -4710,8 +5331,8 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.5", - "pin-project", + "futures 0.3.8", + "pin-project 0.4.27", "static_assertions", ] @@ -4732,31 +5353,19 @@ dependencies = [ [[package]] name = "salsa20" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2324b0e8c3bb9a586a571fdb3136f70e7e2c748de00a78043f86e0cff91f91fe" -dependencies = [ - "byteorder 1.3.4", - "salsa20-core", - "stream-cipher 0.3.2", -] - -[[package]] -name = "salsa20-core" -version = "0.2.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe6cc1b9f5a5867853ade63099de70f042f7679e408d1ffe52821c9248e6e69" +checksum = "c7f47b10fa80f6969bbbd9c8e7cc998f082979d402a9e10579e2303a87955395" dependencies = [ - "stream-cipher 0.3.2", + "stream-cipher", ] [[package]] name = "sc-basic-authorship" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527f6822cf592ac2b4a6ca7d04601c48d6728b8c03d9a9cc0488e4b535c69c6d" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -4778,8 +5387,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bee59dc560f30e72ee95c224e3e75299b53b619e659a38af9db2639803c08ee" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -4796,17 +5404,20 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d0e4d53e723ee6bad8cadec9651086887d1d920996e1589ee7dfa767a7cba9" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "sc-chain-spec-derive", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", "sc-network", "sc-telemetry", "serde", "serde_json", "sp-chain-spec", + "sp-consensus-babe", "sp-core", "sp-runtime", ] @@ -4814,8 +5425,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af2ca789e2d2fa2aa0ec16d27dc648fa4d64ecb10760d2f552b2c86ea7a403" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4826,8 +5436,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2ce2952f155bd72b85ff866c588b6bae8f1bc183275f1a7a54eee55535a640" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "ansi_term 0.12.1", "atty", @@ -4835,7 +5444,7 @@ dependencies = [ "chrono", "derive_more", "fdlimit", - "futures 0.3.5", + "futures 0.3.8", "hex", "lazy_static", "libp2p", @@ -4847,7 +5456,11 @@ dependencies = [ "rand 0.7.3", "regex", "rpassword", + "sc-cli-proc-macro", "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", "sc-informant", "sc-keystore", "sc-network", @@ -4859,6 +5472,7 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-keyring", + "sp-keystore", "sp-panic-handler", "sp-runtime", "sp-state-machine", @@ -4867,21 +5481,31 @@ dependencies = [ "structopt", "substrate-prometheus-endpoint", "time", - "tokio 0.2.22", + "tokio 0.2.23", "tracing", "tracing-log", "tracing-subscriber", ] +[[package]] +name = "sc-cli-proc-macro" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sc-client-api" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fafb2b2861e847657c4656d2ae2249c9f3f6a76fb92a22f750325b77e1fb4c8" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "fnv", - "futures 0.3.5", + "futures 0.3.8", "hash-db", "hex-literal", "kvdb", @@ -4899,6 +5523,7 @@ dependencies = [ "sp-externalities", "sp-inherents", "sp-keyring", + "sp-keystore", "sp-runtime", "sp-state-machine", "sp-std", @@ -4913,8 +5538,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bc82e81fafb162ceda7635932c8b5d65b8bc7b021e49546ab913e2e2458524d" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "blake2-rfc", "hash-db", @@ -4944,8 +5568,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6dd5b4e7a37bf78e85161bd6f01a09f0eb7cf49f2961d136885659ad6e30d49" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "sc-client-api", "sp-blockchain", @@ -4956,11 +5579,10 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0b4fbf217f3942ae545ad70cd5b5d567b4519b9acb07b35e0de5cce7e7ef195" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -4968,7 +5590,6 @@ dependencies = [ "sc-block-builder", "sc-client-api", "sc-consensus-slots", - "sc-keystore", "sc-telemetry", "sp-api", "sp-application-crypto", @@ -4979,19 +5600,108 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "sp-version", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "derive_more", + "fork-tree", + "futures 0.3.8", + "futures-timer 3.0.2", + "log", + "merlin", + "num-bigint", + "num-rational", + "num-traits", + "parity-scale-codec", + "parking_lot 0.10.2", + "pdqselect", + "rand 0.7.3", + "retain_mut", + "sc-client-api", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-consensus-uncles", + "sc-keystore", + "sc-telemetry", + "schnorrkel", + "serde", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", "sp-runtime", "sp-timestamp", + "sp-utils", "sp-version", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-consensus-epochs" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-client-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-manual-seal" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "assert_matches", + "derive_more", + "futures 0.3.8", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 15.1.0", + "jsonrpc-derive 15.1.0", + "log", + "parking_lot 0.10.2", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "sp-transaction-pool", + "substrate-prometheus-endpoint", +] + [[package]] name = "sc-consensus-slots" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a334a099d5cac9054ea1ef1db4be8ed5518270027798f96d2a68c5bf69af8e" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -5009,11 +5719,24 @@ dependencies = [ "sp-state-machine", ] +[[package]] +name = "sc-consensus-uncles" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "log", + "sc-client-api", + "sp-authorship", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", +] + [[package]] name = "sc-executor" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af77c7fda9659559e257fe330af26e7c2e8f61583c2a5c45f4c9db73d58a902b" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "lazy_static", @@ -5032,6 +5755,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime-interface", "sp-serializer", + "sp-tasks", "sp-trie", "sp-version", "sp-wasm-interface", @@ -5041,8 +5765,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6663e4d1d2f8255e6c1994ce548365a7631a82f7ab231d0b8a122cc2a0011949" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "log", @@ -5059,8 +5782,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78aeea37a28b83af11fe621ee047758e125341db96efaf7f553a4180fe48d6b8" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "log", "parity-scale-codec", @@ -5075,8 +5797,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c7d29c1932c5c3281d5324ead624709c1798031df72908ce6012b3651dea0a" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "log", "parity-scale-codec", @@ -5094,18 +5815,17 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4095b26b5717265d3dca8e2d70f977dfd4085f1c352dbf82217953da90a96e46" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "finality-grandpa", "fork-tree", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "log", "parity-scale-codec", "parking_lot 0.10.2", - "pin-project", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -5122,8 +5842,8 @@ dependencies = [ "sp-consensus", "sp-core", "sp-finality-grandpa", - "sp-finality-tracker", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-utils", "substrate-prometheus-endpoint", @@ -5132,11 +5852,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b81dbdbba0420bb4c0bf2a79bcbb78de5bd1349aad8467b3115f82be579b2972" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.5", + "futures 0.3.8", "log", "parity-util-mem", "sc-client-api", @@ -5151,10 +5870,12 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bbf8b58ed80e1d375aaa8ee5dedf17f68fea30c900440a695fb630a1757283" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ + "async-trait", "derive_more", + "futures 0.3.8", + "futures-util", "hex", "merlin", "parking_lot 0.10.2", @@ -5162,14 +5883,14 @@ dependencies = [ "serde_json", "sp-application-crypto", "sp-core", - "subtle 2.2.3", + "sp-keystore", + "subtle 2.3.0", ] [[package]] name = "sc-light" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00ce4c6f21d572549b8b8a55757a0e548ddd670ab89d9415125a4e09c0ffa74" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "hash-db", "lazy_static", @@ -5188,8 +5909,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e58ccd69ea8dd0c1e1d98e5e7ed2969aaf14d45dcf98416c679a968e752850" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "async-std", "async-trait", @@ -5201,7 +5921,7 @@ dependencies = [ "erased-serde", "fnv", "fork-tree", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "futures_codec", "hex", @@ -5214,7 +5934,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.10.2", - "pin-project", + "pin-project 0.4.27", "prost", "prost-build", "rand 0.7.3", @@ -5243,10 +5963,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ddb2a1cb6cd53b46e76f61c662d1561da4a7dc16a375c37849fd1f429b6803" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "libp2p", "log", @@ -5259,14 +5978,13 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79495bd858351489fcebeb4e47821e15329ad5606f0d7983836e069005c3d9dd" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", - "hyper 0.13.7", + "hyper 0.13.9", "hyper-rustls", "log", "num_cpus", @@ -5287,10 +6005,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfaa3d62db8ad549e6d21b6e353e00e2e7338c8623c01c79e8f36b035266a4b" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "libp2p", "log", "serde_json", @@ -5301,8 +6018,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d42c942480b516b4bd4a32d1434f634126220cb00c8d482658700cc58dc22c6f" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -5311,13 +6027,12 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc3793d8ff10dbeb0b683151a1ea33570dc994195cc29451e0b72ce35179adc" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "log", "parity-scale-codec", "parking_lot 0.10.2", @@ -5331,6 +6046,7 @@ dependencies = [ "sp-blockchain", "sp-chain-spec", "sp-core", + "sp-keystore", "sp-offchain", "sp-rpc", "sp-runtime", @@ -5344,15 +6060,14 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb4b79b9b6b410c745a00eb4ead11b2ef0819e6eac970a5ec6415abf82777be" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", + "futures 0.3.8", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 15.1.0", + "jsonrpc-derive 15.1.0", + "jsonrpc-pubsub 15.1.0", "log", "parity-scale-codec", "parking_lot 0.10.2", @@ -5369,14 +6084,13 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9118867e60870b99cc1877edb4c35878babe6696335841e5b636dcba2fdb3d" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.1.29", - "jsonrpc-core", + "futures 0.1.30", + "jsonrpc-core 15.1.0", "jsonrpc-http-server", "jsonrpc-ipc-server", - "jsonrpc-pubsub", + "jsonrpc-pubsub 15.1.0", "jsonrpc-ws-server", "log", "serde", @@ -5388,24 +6102,23 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04b2096d7dac26c52656cd2c85bc208d2ca3316ea2185fd775763d558a980da" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "directories", "exit-future", - "futures 0.1.29", - "futures 0.3.5", + "futures 0.1.30", + "futures 0.3.8", "futures-timer 3.0.2", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "lazy_static", "log", "parity-scale-codec", "parity-util-mem", "parking_lot 0.10.2", - "pin-project", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -5434,6 +6147,7 @@ dependencies = [ "sp-externalities", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", @@ -5445,14 +6159,14 @@ dependencies = [ "substrate-prometheus-endpoint", "tempfile", "tracing", + "tracing-futures", "wasm-timer", ] [[package]] name = "sc-state-db" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56341f78caf54af053889d1e863ca9b03004a3f471947805226fa8a6be9c9a59" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "log", "parity-scale-codec", @@ -5466,15 +6180,14 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5883219d0ccec3e4d50079ba63f8accc71659b93537cff66de326a382b138c4b" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "libp2p", "log", "parking_lot 0.10.2", - "pin-project", + "pin-project 0.4.27", "rand 0.7.3", "serde", "slog", @@ -5488,8 +6201,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695f005588c8b6957e56c86bc4624969a0c1a8e4e4d2f4fe0bb4039a26a10503" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "erased-serde", "log", @@ -5508,11 +6220,10 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31fed765b519362f7ae824a2d3a2e6ee9912ac972e8ff61838d4ff0831cb3077" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", + "futures 0.3.8", "linked-hash-map", "log", "parity-util-mem", @@ -5530,11 +6241,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248d4bcde22c936b462e4aa6c32e0f49a96942b123a1a46bc60cd02fbf907002" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", + "futures 0.3.8", "futures-diagnose", "intervalier", "log", @@ -5571,14 +6281,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ "arrayref", - "arrayvec 0.5.1", - "curve25519-dalek", - "getrandom", + "arrayvec 0.5.2", + "curve25519-dalek 2.1.0", + "getrandom 0.1.15", "merlin", "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", - "subtle 2.2.3", + "subtle 2.3.0", "zeroize", ] @@ -5602,18 +6312,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scroll" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb2332cb595d33f7edd5700f4cbf94892e680c7f0ae56adab58a35190b66cb1" +checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9" +checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d" dependencies = [ "proc-macro2", "quote", @@ -5677,32 +6387,20 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "send_wrapper" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eddf2e8f50ced781f288c19f18621fa72a3779e3cb58dbf23b07469b0abeb4" - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - [[package]] name = "serde" -version = "1.0.114" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.114" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e" dependencies = [ "proc-macro2", "quote", @@ -5711,9 +6409,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.57" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" +checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95" dependencies = [ "itoa", "ryu", @@ -5732,6 +6430,19 @@ dependencies = [ "opaque-debug 0.2.3", ] +[[package]] +name = "sha-1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpuid-bool", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + [[package]] name = "sha2" version = "0.8.2" @@ -5746,12 +6457,12 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" +checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 1.0.0", "cpuid-bool", "digest 0.9.0", "opaque-debug 0.3.0", @@ -5770,13 +6481,26 @@ dependencies = [ "opaque-debug 0.2.3", ] +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug 0.3.0", +] + [[package]] name = "sharded-slab" -version = "0.0.9" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d5a3f5166fb5b42a5439f2eee8b9de149e235961e3eb21c5808fc3ea17ff3e" +checksum = "7b4921be914e16899a80adefb821f8ddb7974e3f1250223575a44ed994882127" dependencies = [ "lazy_static", + "loom", ] [[package]] @@ -5787,19 +6511,18 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook-registry" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" +checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab" dependencies = [ - "arc-swap", "libc", ] [[package]] name = "signature" -version = "1.1.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65211b7b6fc3f14ff9fc7a2011a434e3e6880585bd2e9e9396315ae24cbf7852" +checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" [[package]] name = "slab" @@ -5862,36 +6585,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f" - -[[package]] -name = "smol" -version = "0.1.18" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620cbb3c6e34da57d3a248cda0cd01cd5848164dc062e764e65d06fe3ea7aed5" -dependencies = [ - "async-task", - "blocking", - "concurrent-queue", - "fastrand", - "futures-io", - "futures-util", - "libc", - "once_cell 1.4.0", - "scoped-tls", - "slab", - "socket2", - "wepoll-sys-stjepang", - "winapi 0.3.9", -] +checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" [[package]] name = "snow" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32bf8474159a95551661246cda4976e89356999e3cbfef36f493dacc3fae1e8e" +checksum = "795dd7aeeee24468e5a32661f6d27f7b5cbed802031b2d7640c7b10f8fb2dd50" dependencies = [ "aes-gcm", "blake2", @@ -5900,18 +6602,18 @@ dependencies = [ "rand_core 0.5.1", "ring", "rustc_version", - "sha2 0.9.1", - "subtle 2.2.3", - "x25519-dalek", + "sha2 0.9.2", + "subtle 2.3.0", + "x25519-dalek 1.1.0", ] [[package]] name = "socket2" -version = "0.3.12" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" +checksum = "7fd8b795c389288baa5f355489c65e71fd48a02104600d15c4cfbc561e9e429d" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "redox_syscall", "winapi 0.3.9", @@ -5919,25 +6621,24 @@ dependencies = [ [[package]] name = "soketto" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85457366ae0c6ce56bf05a958aef14cd38513c236568618edbcd9a8c52cb80b0" +checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88" dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.5", + "futures 0.3.8", "httparse", "log", "rand 0.7.3", - "sha-1", + "sha-1 0.9.2", ] [[package]] name = "sp-allocator" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79a1db780708b6b71e9914e2b1d11b3e61c9bfb492c88b1024115e1a6661da" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "log", @@ -5949,8 +6650,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953a3296335d9761311763dbe6855109ea4bea915e27cf5633d8b01057898302" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "hash-db", "parity-scale-codec", @@ -5965,8 +6665,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8247ca24a2a881af2ac675c8ec33584944965d6d45645bbec16fe327ce42dce6" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -5978,8 +6677,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885eca124aa6ce0bba57c08bc48c4357096996d630a77f572580ef8e2e4df034" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "serde", @@ -5991,8 +6689,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667775bc50eb214225df18c92e4ec57acc7e2dc78d7d210eb4dd930db1a73995" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "integer-sqrt", "num-traits", @@ -6005,8 +6702,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58623adee1ed41752d76151762c80801758f88f85e4016d0338f2b01f4e7bd44" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -6017,8 +6713,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d7fca8aa126a9d295843d592f44b48d8cf93880862baeff2968164598ab26c" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sp-api", @@ -6030,8 +6725,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37387284973e2edceefaa673930282801ea238e5892a2cc6aa02f7f2e7601df" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "log", @@ -6048,8 +6742,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150ce7661d02d4d0509a4a8364ab3b71a5ef2faf3f97d22d4b76bc0786d9e28b" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "serde", "serde_json", @@ -6058,11 +6751,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b460103293bbf2f4193e43c4f031fdc099c5e27c782369bbb4dacc7765e84057" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", + "futures 0.3.8", "futures-timer 3.0.2", "libp2p", "log", @@ -6085,13 +6777,32 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc270d5c9c74960f44be4fe3e2e04886edf6a4a6fa85a57d381b242ce8b41e0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ + "merlin", "parity-scale-codec", "sp-api", "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", @@ -6100,26 +6811,35 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ea323ccf4ec8aad353fbc9016a1cb8cbf0d872d33bc8874cb0753b014fb7fc" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "parity-scale-codec", + "sp-runtime", +] + +[[package]] +name = "sp-consensus-vrf" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", + "schnorrkel", + "sp-core", "sp-runtime", + "sp-std", ] [[package]] name = "sp-core" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e92ac5c674ee2cd9219d084301b4cbb82b28a94a0f3087bf4bea0ef3067ebb5c" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "base58", "blake2-rfc", "byteorder 1.3.4", - "derive_more", "dyn-clonable", "ed25519-dalek", - "futures 0.3.5", + "futures 0.3.8", "hash-db", "hash256-std-hasher", "hex", @@ -6155,8 +6875,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1c352eceefe5bcdfc27f13a2fd038fc571b7aca5146f2cd651d40e9d2457dd" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "kvdb", "parking_lot 0.10.2", @@ -6165,8 +6884,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3750b084e0f4677f6e834a974f30b1ba97fc2fe00185c9d03611a2228446dc" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "proc-macro2", "quote", @@ -6176,8 +6894,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d87fcd0e0fc5e025459cfe769803488d4894e36d0f8cef80b5239d2e7ef6580" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "environmental", "parity-scale-codec", @@ -6188,8 +6905,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789d960506306f34fb0a2da547956ba1f23d6a29032291a7284c943906feddcb" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "finality-grandpa", "log", @@ -6198,26 +6914,15 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-keystore", "sp-runtime", "sp-std", ] -[[package]] -name = "sp-finality-tracker" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5433473273a116241010551b9acfdbd7d33a9fdcda45c390eb707971568154" -dependencies = [ - "parity-scale-codec", - "sp-inherents", - "sp-std", -] - [[package]] name = "sp-inherents" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "365e5aee23640631e63e8634f1d804e33c8fcb521f4052910f29abaa2df1c1cf" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", "parity-scale-codec", @@ -6229,10 +6934,9 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e1dee9244eb6cba1bef9b3a4ec288185e1380e455f1fd348b60252592c1cf0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "hash-db", "libsecp256k1", "log", @@ -6240,6 +6944,7 @@ dependencies = [ "parking_lot 0.10.2", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime-interface", "sp-state-machine", "sp-std", @@ -6253,8 +6958,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f76feeb27b218d58523931ea2d708b622c3bd96a3be1c3a5895bba0f7a54c13" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "lazy_static", "sp-core", @@ -6262,11 +6966,26 @@ dependencies = [ "strum", ] +[[package]] +name = "sp-keystore" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.8", + "merlin", + "parity-scale-codec", + "parking_lot 0.10.2", + "schnorrkel", + "sp-core", + "sp-externalities", +] + [[package]] name = "sp-offchain" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd5e101b2510ad84adaeb4589e6a94fdc741242ab1e39b89c87a647133205ad" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "sp-api", "sp-core", @@ -6276,8 +6995,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "492126eb766b3b6740e4e4929d6527d37708598b7296a664f3680c0f0c1fc573" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "backtrace", "log", @@ -6286,8 +7004,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c6678f4b42421e6dcdf3896a0c81a403c29ef1cf8d74b046d59125d40da911" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "serde", "sp-core", @@ -6296,8 +7013,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62542f8ce9d5fcb43a4dd3c3a53326d33aacf9b0bc9d353d6fe9fd5ff3031747" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "either", "hash256-std-hasher", @@ -6319,8 +7035,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7e363c480cc8c9019b84f85d10c0b56a184079d5d840d2d1d55087ad835dc6" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "primitive-types", @@ -6336,8 +7051,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cf56a38544293e54dbe0aa7b6aed1e046bfc704b6fc3de7255897dca98ccb1" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "Inflector", "proc-macro-crate", @@ -6349,8 +7063,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643933e971979094c9d4b27b015c7250985a262e405bb9ad090336d8ceb5b2b9" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "serde", "serde_json", @@ -6359,8 +7072,7 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d138b1f548933003feaa967de49ed87066643073bcc41be45ef2daaa0991c133" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sp-api", @@ -6373,8 +7085,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b06f9839d8b4312486626bde31d6cd7763dd9b7d93ea9e70c01ca30f0998032" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -6384,8 +7095,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58335de98bca196683a8ef22195a8a43b457b8bc705dba3124138ffc2ee720" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "hash-db", "log", @@ -6393,7 +7103,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.10.2", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-core", "sp-externalities", "sp-panic-handler", @@ -6406,14 +7116,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2d6e166cead2d3b1d3d8fe0e787d076b7d0296b1760a0d7d340846d0ba42c5" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" [[package]] name = "sp-storage" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4625e6f8f40995939560f48f89028f658b7929657c68d01c571c81ab5619ff" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -6423,11 +7131,23 @@ dependencies = [ "sp-std", ] +[[package]] +name = "sp-tasks" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" +dependencies = [ + "log", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", +] + [[package]] name = "sp-timestamp" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb398f0a5d2798ad4e02450b3089534547b448d22ebe6f3b2c03f74170f58d1" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6441,8 +7161,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9a5c42c5450991ca3a28c190e75122f5ccedbcb024953e7c357e7aa2afd8534" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "log", "parity-scale-codec", @@ -6455,11 +7174,10 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b34ee48341c17c6e2f1e55f6076918f46b0c4505a99ad69ab1edda8b45bbd8" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "derive_more", - "futures 0.3.5", + "futures 0.3.8", "log", "parity-scale-codec", "serde", @@ -6471,8 +7189,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3aae57c8ae81ba978503137a8c625d2963eb425dd90dec0d96b4ed18d8bfd55" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "hash-db", "memory-db", @@ -6486,10 +7203,9 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84310a02e2ac89b5e288d7af980414fd88753e3caba92aab1983cd2819991150" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -6499,8 +7215,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21935199c8765f0d02facc718f9c83149a70ea684fb03612e5161c682b38a301" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -6512,8 +7227,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c28225e8b7ec7e260f8b46443f8731abda206334cb75c740d2407693f38167" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6550,20 +7264,12 @@ dependencies = [ [[package]] name = "stream-cipher" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" -dependencies = [ - "generic-array 0.12.3", -] - -[[package]] -name = "stream-cipher" -version = "0.4.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88" +checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" dependencies = [ - "generic-array 0.14.3", + "block-cipher", + "generic-array 0.14.4", ] [[package]] @@ -6583,9 +7289,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.15" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c" +checksum = "126d630294ec449fae0b16f964e35bf3c74f940da9dca17ee9b905f7b3112eb8" dependencies = [ "clap", "lazy_static", @@ -6594,9 +7300,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.8" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118" +checksum = "65e51c492f9e23a220534971ff5afc14037289de430e3c83f9daf6a1b6ae91e8" dependencies = [ "heck", "proc-macro-error", @@ -6642,8 +7348,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f14feab86fe31e7d0a485d53d7c1c634c426f7ae5b8ce4f705b2e49a35713fcb" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "platforms", ] @@ -6651,14 +7356,13 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e6202803178f25f71a3218a69341289d38c1369cc63e78dfe51577599163f7" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.5", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "futures 0.3.8", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client 15.1.0", + "jsonrpc-derive 15.1.0", "log", "parity-scale-codec", "sc-client-api", @@ -6675,16 +7379,15 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3e361741d066bfc29554b9f1bc8e4ac927eb4bd33dd8bb0486969edd8b0b5a" +source = "git+https://github.com/paritytech/substrate.git?branch=frontier#7865a34b17c5881e1c73eb7579faf5affd2365c4" dependencies = [ "async-std", "derive_more", "futures-util", - "hyper 0.13.7", + "hyper 0.13.9", "log", "prometheus", - "tokio 0.2.22", + "tokio 0.2.23", ] [[package]] @@ -6701,32 +7404,21 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.2.3" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1" +checksum = "343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd" [[package]] name = "syn" -version = "1.0.36" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250" +checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] -[[package]] -name = "syn-mid" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "synstructure" version = "0.12.4" @@ -6757,7 +7449,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand 0.7.3", "redox_syscall", @@ -6767,9 +7459,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ "winapi-util", ] @@ -6785,18 +7477,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" +checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" dependencies = [ "proc-macro2", "quote", @@ -6823,11 +7515,12 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi 0.3.9", ] @@ -6839,7 +7532,7 @@ checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" dependencies = [ "failure", "hmac", - "once_cell 1.4.0", + "once_cell 1.5.2", "pbkdf2", "rand 0.7.3", "rustc-hash", @@ -6858,9 +7551,18 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.3" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" @@ -6869,7 +7571,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "mio", "num_cpus", "tokio-codec", @@ -6888,9 +7590,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +checksum = "a6d7ad61edd59bfcc7e80dababf0f4aed2e6d5e0ba1659356ae889752dfc12ff" dependencies = [ "bytes 0.5.6", "fnv", @@ -6916,7 +7618,7 @@ checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" dependencies = [ "bytes 0.4.12", "either", - "futures 0.1.29", + "futures 0.1.30", ] [[package]] @@ -6926,7 +7628,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "tokio-io", ] @@ -6936,7 +7638,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "tokio-executor 0.1.10", ] @@ -6946,8 +7648,8 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", ] [[package]] @@ -6967,7 +7669,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "tokio-io", "tokio-threadpool", ] @@ -6979,7 +7681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "log", ] @@ -6990,7 +7692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "mio", "mio-named-pipes", "tokio 0.1.22", @@ -7002,8 +7704,8 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "lazy_static", "log", "mio", @@ -7017,13 +7719,13 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9" +checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", "rustls", - "tokio 0.2.22", + "tokio 0.2.23", "webpki", ] @@ -7033,7 +7735,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", ] [[package]] @@ -7043,7 +7745,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" dependencies = [ "fnv", - "futures 0.1.29", + "futures 0.1.30", ] [[package]] @@ -7064,7 +7766,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "iovec", "mio", "tokio-io", @@ -7077,10 +7779,10 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque", + "crossbeam-deque 0.7.3", "crossbeam-queue", - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "lazy_static", "log", "num_cpus", @@ -7094,8 +7796,8 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "slab", "tokio-executor 0.1.10", ] @@ -7107,7 +7809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "log", "mio", "tokio-codec", @@ -7122,7 +7824,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "iovec", "libc", "log", @@ -7144,14 +7846,14 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "tokio 0.2.22", + "tokio 0.2.23", ] [[package]] name = "toml" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645" dependencies = [ "serde", ] @@ -7164,12 +7866,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" [[package]] name = "tracing" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" +checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "log", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -7194,6 +7897,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "tracing-futures" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +dependencies = [ + "pin-project 0.4.27", + "tracing", +] + [[package]] name = "tracing-log" version = "0.1.1" @@ -7207,9 +7920,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ccba2f8f16e0ed268fc765d9b7ff22e965e7185d32f8f1ec8294fe17d86e79" +checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" dependencies = [ "serde", "tracing-core", @@ -7217,9 +7930,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abd165311cc4d7a555ad11cc77a37756df836182db0d81aac908c8184c584f40" +checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -7229,8 +7942,9 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.4.1", + "smallvec 1.4.2", "thread_local", + "tracing", "tracing-core", "tracing-log", "tracing-serde", @@ -7243,10 +7957,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0" dependencies = [ "hash-db", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "log", "rustc-hex", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -7258,6 +7972,16 @@ dependencies = [ "hash-db", ] +[[package]] +name = "triehash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f490aa7aa4e4d07edeba442c007e42e3e7f43aafb5112c5b047fff0b1aa5449c" +dependencies = [ + "hash-db", + "rlp", +] + [[package]] name = "try-lock" version = "0.2.3" @@ -7266,11 +7990,13 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "twox-hash" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" +checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59" dependencies = [ + "cfg-if 0.1.10", "rand 0.7.3", + "static_assertions", ] [[package]] @@ -7281,9 +8007,9 @@ checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" [[package]] name = "uint" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173cd16430c206dc1a430af8a89a0e9c076cf15cb42b4aedb10e8cc8fee73681" +checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" dependencies = [ "byteorder 1.3.4", "crunchy", @@ -7311,18 +8037,18 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" +checksum = "db8716a166f290ff49dabc18b44aa407cb7c6dbe1aa0971b44b8a24b0ca35aae" [[package]] name = "unicode-width" @@ -7342,16 +8068,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ - "generic-array 0.14.3", - "subtle 2.2.3", + "generic-array 0.14.4", + "subtle 2.3.0", ] -[[package]] -name = "unsigned-varint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f67332660eb59a6f1eb24ff1220c9e8d01738a8503c6002e30bcfe4bd9f2b4a9" - [[package]] name = "unsigned-varint" version = "0.4.0" @@ -7393,10 +8113,11 @@ dependencies = [ [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna 0.2.0", "matches", "percent-encoding 2.1.0", @@ -7408,6 +8129,12 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +[[package]] +name = "vec-arena" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" + [[package]] name = "vec_map" version = "0.8.2" @@ -7428,9 +8155,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "waker-fn" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9571542c2ce85ce642e6b58b3364da2fb53526360dfb7c211add4f5c23105ff7" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "want" @@ -7438,7 +8165,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "log", "try-lock", ] @@ -7459,21 +8186,27 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasm-bindgen" -version = "0.2.65" +version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d" +checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.65" +version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d" +checksum = "f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68" dependencies = [ "bumpalo", "lazy_static", @@ -7486,11 +8219,11 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.15" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ad6e4e8b2b7f8c90b6e09a9b590ea15cb0d1dbe28502b5a405cd95d1981671" +checksum = "b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "js-sys", "wasm-bindgen", "web-sys", @@ -7498,9 +8231,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.65" +version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e" +checksum = "6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7508,9 +8241,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.65" +version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6" +checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe" dependencies = [ "proc-macro2", "quote", @@ -7521,21 +8254,20 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.65" +version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87" +checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307" [[package]] name = "wasm-timer" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324c5e65a08699c9c4334ba136597ab22b85dccd4b65dd1e36ccf8f723a95b54" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "js-sys", - "parking_lot 0.9.0", + "parking_lot 0.11.1", "pin-utils", - "send_wrapper 0.2.0", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -7584,13 +8316,13 @@ checksum = "1cd3c4f449382779ef6e0a7c3ec6752ae614e20a42e4100000c3efdc973100e2" dependencies = [ "anyhow", "backtrace", - "cfg-if", + "cfg-if 0.1.10", "lazy_static", "libc", "log", "region", "rustc-demangle", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", "wasmparser 0.59.0", "wasmtime-environ", @@ -7626,7 +8358,7 @@ dependencies = [ "anyhow", "base64 0.12.3", "bincode", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", @@ -7655,7 +8387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", @@ -7698,7 +8430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "gimli 0.21.0", "lazy_static", "libc", @@ -7718,7 +8450,7 @@ checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 0.1.10", "indexmap", "lazy_static", "libc", @@ -7733,27 +8465,27 @@ dependencies = [ [[package]] name = "wast" -version = "21.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5" +checksum = "c2c3ef5f6a72dffa44c24d5811123f704e18a1dbc83637d347b1852b41d3835c" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.22" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c" +checksum = "835cf59c907f67e2bbc20f50157e08f35006fe2a8444d8ec9f5683e22f937045" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.42" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2" +checksum = "4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d" dependencies = [ "js-sys", "wasm-bindgen", @@ -7788,10 +8520,10 @@ dependencies = [ ] [[package]] -name = "wepoll-sys-stjepang" -version = "1.0.6" +name = "wepoll-sys" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd319e971980166b53e17b1026812ad66c6b54063be879eb182342b55284694" +checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" dependencies = [ "cc", ] @@ -7864,7 +8596,18 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 2.1.0", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "x25519-dalek" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" +dependencies = [ + "curve25519-dalek 3.0.0", "rand_core 0.5.1", "zeroize", ] @@ -7875,28 +8618,28 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c" dependencies = [ - "futures 0.3.5", + "futures 0.3.8", "log", "nohash-hasher", - "parking_lot 0.11.0", + "parking_lot 0.11.1", "rand 0.7.3", "static_assertions", ] [[package]] name = "zeroize" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" +checksum = "05f33972566adbd2d3588b0491eb94b98b43695c4ef897903470ede4f3f5a28a" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" +checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index f1ed3cc..af67b21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,14 @@ -[profile.release] -panic = 'unwind' +# [profile.release] +# panic = 'unwind' [workspace] members = [ 'node', - 'pallets/template', + # 'pallets/template', + 'consensus', + 'consensus/primitives', 'runtime', 'runtime/galois', 'runtime/mathchain', ] +exclude = ["vendor"] diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 0000000..a8af692 --- /dev/null +++ b/Cross.toml @@ -0,0 +1,27 @@ + +[target.x86_64-unknown-linux-gnu] +image = "x86_64-linux-gnu" + +[target.aarch64-unknown-linux-gnu] +image = "aarch64-linux-gnu" +[target.aarch64-unknown-linux-gnu.env] +passthrough = [ + "RUSTFLAGS", + "SKIP_WASM_BUILD", +] + +[target.arm-unknown-linux-gnueabihf] +image = "arm-linux-gnueabihf" +[target.arm-unknown-linux-gnueabihf.env] +passthrough = [ + "RUSTFLAGS", + "SKIP_WASM_BUILD", +] + +[target.armv7-unknown-linux-gnueabihf] +image = "armv7-linux-gnueabihf" +[target.armv7-unknown-linux-gnueabihf.env] +passthrough = [ + "RUSTFLAGS", + "SKIP_WASM_BUILD", +] \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..6ad0bb2 --- /dev/null +++ b/build.sh @@ -0,0 +1,65 @@ +#! /usr/bin/sh + +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . + +echo -e '\e[1;32m🔧 Building Docker Image(s)\e[0m' +docker build -f docker/Dockerfile.x86_64-linux-gnu -t x86_64-linux-gnu . #&> /dev/null +docker build -f docker/Dockerfile.aarch64-linux-gnu -t aarch64-linux-gnu . #&> /dev/null + +echo -e '\e[1;32m📥 Installing Cross Compile Toolchain(s)\e[0m' +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain nightly-2020-10-06 #&> /dev/null +source ~/.cargo/env +cargo install cross --git https://github.com/AurevoirXavier/cross --branch support-multi-sub-targets #&> /dev/null +rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu wasm32-unknown-unknown #&> /dev/null + +echo -e "\e[1;32m🧬 Building mathchain-$1-x86_64-linux-gnu-glibc-2.17-llvm-3.8 \e[0m" +cross build --release --target x86_64-unknown-linux-gnu --sub-targets wasm32-unknown-unknown #&> /dev/null + +# echo -e "\e[1;32m🧬 Building mathchain-$1-aarch64-linux-gnu-glibc-2.23-llvm-3.8 \e[0m" +# RUSTFLAGS='-C link-args=-latomic' SKIP_WASM_BUILD=1 cross build --locked --release --target aarch64-unknown-linux-gnu #&> /dev/null + +echo -e '\e[1;32m📦 Packing WASM(s)\e[0m' +rm -rf wasm +mkdir -p wasm +cp target/x86_64-unknown-linux-gnu/release/wbuild/mathchain-runtime/mathchain_runtime.compact.wasm wasm +cp target/x86_64-unknown-linux-gnu/release/wbuild/target/wasm32-unknown-unknown/release/mathchain_runtime.wasm wasm + +echo -e '\e[1;32m📦 Packing Executable(s)\e[0m' +rm -rf release +mkdir -p release +cd release +cp ../wasm/* . +cp ../target/x86_64-unknown-linux-gnu/release/mathchain . +tar cjSf mathchain-$1-x86_64-linux-gnu-glibc-2.17-llvm-3.8.tar.bz2 mathchain +rm mathchain +# cp ../target/x86_64-unknown-linux-gnu/release/mathchain . +# tar cjSf mathchain-$1-aarch64-linux-gnu-glibc-2.23-llvm-3.8.tar.bz2 mathchain +# rm mathchain + +echo -e '\e[1;32m🔑 Generating File(s) Hash\e[0m' +for f in * +do + md5sum $f >> ../md5sums.txt +done +for f in * +do + sha256sum $f >> ../sha256sums.txt +done +mv ../md5sums.txt . +mv ../sha256sums.txt . \ No newline at end of file diff --git a/consensus/Cargo.toml b/consensus/Cargo.toml new file mode 100644 index 0000000..9b2bde3 --- /dev/null +++ b/consensus/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "mathchain-consensus" +version = "0.1.0" +authors = ["Parity Technologies "] +description = "Frontier consensus for substrate" +edition = "2018" +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository = "https://github.com/mathwallet/MathChain" + +[dependencies] +codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] } +sp-core = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-blockchain = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-runtime = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-api = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-client-api = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-block-builder = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-inherents = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +mathchain-consensus-primitives = { version = "0.1.0", path = "primitives" } +sp-consensus = { version = "0.8.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +log = "0.4.8" +futures = { version = "0.3.1", features = ["compat"] } +sp-timestamp = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +derive_more = "0.99.2" +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate.git", branch = "frontier"} +ethereum = { version = "0.5", features = ["with-codec"] } \ No newline at end of file diff --git a/consensus/primitives/Cargo.toml b/consensus/primitives/Cargo.toml new file mode 100644 index 0000000..d9761d6 --- /dev/null +++ b/consensus/primitives/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "mathchain-consensus-primitives" +version = "0.1.0" +authors = ["Parity Technologies "] +description = "Primitives for Mathchain consensus" +edition = "2018" +license = "Apache-2.0" +homepage = "https://mathwallet.net/mathchain" +repository = "https://github.com/mathwallet/MathChain/" + +[dependencies] +sp-std = { version = "2.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-runtime = { version = "2.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-core = { version = "2.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] } + +[features] +default = ["std"] +std = [ + "sp-std/std", + "sp-runtime/std", + "sp-core/std", + "codec/std", +] diff --git a/consensus/primitives/src/lib.rs b/consensus/primitives/src/lib.rs new file mode 100644 index 0000000..08cd946 --- /dev/null +++ b/consensus/primitives/src/lib.rs @@ -0,0 +1,36 @@ +// This file is part of Mathchain. + +// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Encode, Decode}; +use sp_std::vec::Vec; +use sp_core::H256; +use sp_runtime::ConsensusEngineId; + +pub const MATHCHAIN_ENGINE_ID: ConsensusEngineId = [b'f', b'r', b'o', b'n']; + +#[derive(Decode, Encode, Clone, PartialEq, Eq)] +pub enum ConsensusLog { + #[codec(index = "1")] + EndBlock { + /// Ethereum block hash. + block_hash: H256, + /// Transaction hashes of the Ethereum block. + transaction_hashes: Vec, + }, +} diff --git a/consensus/src/aux_schema.rs b/consensus/src/aux_schema.rs new file mode 100644 index 0000000..7b4f7a3 --- /dev/null +++ b/consensus/src/aux_schema.rs @@ -0,0 +1,98 @@ +// This file is part of Frontier. + +// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use codec::{Encode, Decode}; +use sp_core::H256; +use sp_runtime::traits::Block as BlockT; +use sc_client_api::backend::AuxStore; +use sp_blockchain::{Result as ClientResult, Error as ClientError}; + +fn load_decode(backend: &B, key: &[u8]) -> ClientResult> { + let corrupt = |e: codec::Error| { + ClientError::Backend(format!("Frontier DB is corrupted. Decode error: {}", e.what())) + }; + match backend.get_aux(key)? { + None => Ok(None), + Some(t) => T::decode(&mut &t[..]).map(Some).map_err(corrupt) + } +} + +/// Map an Ethereum block hash into a Substrate block hash. +pub fn block_hash_key(ethereum_block_hash: H256) -> Vec { + let mut ret = b"ethereum_block_hash:".to_vec(); + ret.append(&mut ethereum_block_hash.as_ref().to_vec()); + ret +} + +/// Given an Ethereum block hash, get the corresponding Substrate block hash from AuxStore. +pub fn load_block_hash( + backend: &B, + hash: H256, +) -> ClientResult>> { + let key = block_hash_key(hash); + load_decode(backend, &key) +} + +/// Update Aux block hash. +pub fn write_block_hash( + client: &Backend, + ethereum_hash: H256, + block_hash: Hash, + write_aux: F, +) -> R where + F: FnOnce(&[(&[u8], &[u8])]) -> R, +{ + let key = block_hash_key(ethereum_hash); + + let mut data: Vec = match load_decode(client, &key) + { + Ok(Some(hashes)) => hashes, + _ => Vec::new(), + }; + data.push(block_hash); + + write_aux(&[(&key, &data.encode()[..])]) +} + +/// Map an Ethereum transaction hash into its corresponding Ethereum block hash and index. +pub fn transaction_metadata_key(ethereum_transaction_hash: H256) -> Vec { + let mut ret = b"ethereum_transaction_hash:".to_vec(); + ret.append(&mut ethereum_transaction_hash.as_ref().to_vec()); + ret +} + +/// Given an Ethereum transaction hash, get the corresponding Ethereum block hash and index. +pub fn load_transaction_metadata( + backend: &B, + hash: H256, +) -> ClientResult> { + let key = transaction_metadata_key(hash); + load_decode(backend, &key) +} + +/// Update Aux transaction metadata. +pub fn write_transaction_metadata( + hash: H256, + metadata: (H256, u32), + write_aux: F, +) -> R where + F: FnOnce(&[(&[u8], &[u8])]) -> R, +{ + let key = transaction_metadata_key(hash); + write_aux(&[(&key, &metadata.encode())]) +} diff --git a/consensus/src/lib.rs b/consensus/src/lib.rs new file mode 100644 index 0000000..c7f9f81 --- /dev/null +++ b/consensus/src/lib.rs @@ -0,0 +1,172 @@ +// This file is part of Mathchain. + +// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +mod aux_schema; + +pub use crate::aux_schema::{load_block_hash, load_transaction_metadata}; + +use std::sync::Arc; +use std::collections::HashMap; +use std::marker::PhantomData; +use mathchain_consensus_primitives::{MATHCHAIN_ENGINE_ID, ConsensusLog}; +use sc_client_api::{BlockOf, backend::AuxStore}; +use sp_blockchain::{HeaderBackend, ProvideCache, well_known_cache_keys::Id as CacheKeyId}; +use sp_block_builder::BlockBuilder as BlockBuilderApi; +use sp_runtime::generic::OpaqueDigestItemId; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; +use sp_api::ProvideRuntimeApi; +use sp_consensus::{ + BlockImportParams, Error as ConsensusError, BlockImport, + BlockCheckParams, ImportResult, +}; +use log::*; +use sc_client_api; + +#[derive(derive_more::Display, Debug)] +pub enum Error { + #[display(fmt = "Multiple post-runtime Ethereum blocks, rejecting!")] + MultiplePostRuntimeLogs, + #[display(fmt = "Post-runtime Ethereum block not found, rejecting!")] + NoPostRuntimeLog, +} + +impl From for String { + fn from(error: Error) -> String { + error.to_string() + } +} + +impl std::convert::From for ConsensusError { + fn from(error: Error) -> ConsensusError { + ConsensusError::ClientImport(error.to_string()) + } +} + +pub struct MathchainBlockImport { + inner: I, + client: Arc, + enabled: bool, + _marker: PhantomData, +} + +impl, C> Clone for MathchainBlockImport { + fn clone(&self) -> Self { + MathchainBlockImport { + inner: self.inner.clone(), + client: self.client.clone(), + enabled: self.enabled, + _marker: PhantomData, + } + } +} + +impl MathchainBlockImport where + B: BlockT, + I: BlockImport> + Send + Sync, + I::Error: Into, + C: ProvideRuntimeApi + Send + Sync + HeaderBackend + AuxStore + ProvideCache + BlockOf, + C::Api: BlockBuilderApi, +{ + pub fn new( + inner: I, + client: Arc, + enabled: bool, + ) -> Self { + Self { + inner, + client, + enabled, + _marker: PhantomData, + } + } +} + +impl BlockImport for MathchainBlockImport where + B: BlockT, + I: BlockImport> + Send + Sync, + I::Error: Into, + C: ProvideRuntimeApi + Send + Sync + HeaderBackend + AuxStore + ProvideCache + BlockOf, + C::Api: BlockBuilderApi, +{ + type Error = ConsensusError; + type Transaction = sp_api::TransactionFor; + + fn check_block( + &mut self, + block: BlockCheckParams, + ) -> Result { + self.inner.check_block(block).map_err(Into::into) + } + + fn import_block( + &mut self, + mut block: BlockImportParams, + new_cache: HashMap>, + ) -> Result { + macro_rules! insert_closure { + () => ( + |insert| block.auxiliary.extend( + insert.iter().map(|(k, v)| (k.to_vec(), Some(v.to_vec()))) + ) + ) + } + + let client = self.client.clone(); + + if self.enabled { + let log = find_mathchain_log::(&block.header)?; + let hash = block.post_hash(); + + match log { + ConsensusLog::EndBlock { + block_hash, transaction_hashes, + } => { + aux_schema::write_block_hash(client.as_ref(), block_hash, hash, insert_closure!()); + + for (index, transaction_hash) in transaction_hashes.into_iter().enumerate() { + aux_schema::write_transaction_metadata( + transaction_hash, + (block_hash, index as u32), + insert_closure!(), + ); + } + }, + } + } + + self.inner.import_block(block, new_cache).map_err(Into::into) + } +} + +fn find_mathchain_log( + header: &B::Header, +) -> Result { + let mut mathchain_log: Option<_> = None; + for log in header.digest().logs() { + trace!(target: "mathchain-consensus", "Checking log {:?}, looking for ethereum block.", log); + let log = log.try_to::(OpaqueDigestItemId::Consensus(&MATHCHAIN_ENGINE_ID)); + match (log, mathchain_log.is_some()) { + (Some(_), true) => + return Err(Error::MultiplePostRuntimeLogs), + (Some(log), false) => mathchain_log = Some(log), + _ => trace!(target: "mathchain-consensus", "Ignoring digest not meant for us"), + } + } + + Ok(mathchain_log.ok_or(Error::NoPostRuntimeLog)?) +} diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..69ab1a5 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,37 @@ +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . +FROM iteringops/darwinia-builder:latest as builder + +RUN rustup update && rustup default nightly + +COPY . /source +WORKDIR /source + +ENV TERM="xterm-256color" + +RUN cargo build --release + +FROM debian:stable-slim + +RUN apt-get update && apt-get -y install openssl && apt-get clean +COPY --from=builder /source/target/release/darwinia /usr/local/bin/. + +EXPOSE 30333 9933 9944 +VOLUME ["/data"] + +ENTRYPOINT [ "/usr/local/bin/darwinia" ] diff --git a/docker/Dockerfile.aarch64-linux-gnu b/docker/Dockerfile.aarch64-linux-gnu new file mode 100644 index 0000000..ca288a2 --- /dev/null +++ b/docker/Dockerfile.aarch64-linux-gnu @@ -0,0 +1,31 @@ +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . + +FROM rustembedded/cross:aarch64-unknown-linux-gnu + +# only for aarch64 + +# change mirrorlist +RUN curl https://raw.githubusercontent.com/oooldking/script/master/superupdate.sh | bash && \ + # update + apt update && apt upgrade -y && apt install -y \ + # lib + libc6-dev-i386 \ + # compiler + gcc-aarch64-linux-gnu gcc-5-aarch64-linux-gnu g++-aarch64-linux-gnu g++-5-aarch64-linux-gnu \ + clang llvm libclang-dev diff --git a/docker/Dockerfile.arm-linux-gnueabihf b/docker/Dockerfile.arm-linux-gnueabihf new file mode 100644 index 0000000..1618803 --- /dev/null +++ b/docker/Dockerfile.arm-linux-gnueabihf @@ -0,0 +1,29 @@ +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . + +FROM rustembedded/cross:arm-unknown-linux-gnueabihf + +# only for arm + +# change mirrorlist +RUN curl https://raw.githubusercontent.com/oooldking/script/master/superupdate.sh | bash && \ + # update + apt update && apt upgrade -y && apt install -y \ + # compiler + g++-multilib libc6-dev-i386 \ + clang llvm libclang-dev diff --git a/docker/Dockerfile.armv7-linux-gnueabihf b/docker/Dockerfile.armv7-linux-gnueabihf new file mode 100644 index 0000000..3dca7ce --- /dev/null +++ b/docker/Dockerfile.armv7-linux-gnueabihf @@ -0,0 +1,31 @@ +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . + +FROM rustembedded/cross:armv7-unknown-linux-gnueabihf + +# only for armv7 + +# change mirrorlist +RUN curl https://raw.githubusercontent.com/oooldking/script/master/superupdate.sh | bash && \ + # update + apt update && apt upgrade -y && apt install -y \ + # lib + libc6-dev-i386 \ + # compiler + gcc-arm-linux-gnueabihf gcc-5-arm-linux-gnueabihf g++-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf \ + clang llvm libclang-dev diff --git a/docker/Dockerfile.x86_64-linux-gnu b/docker/Dockerfile.x86_64-linux-gnu new file mode 100644 index 0000000..e2dac2c --- /dev/null +++ b/docker/Dockerfile.x86_64-linux-gnu @@ -0,0 +1,29 @@ +# This file is part of Darwinia. + +# Copyright (C) 2018-2020 Darwinia Networks +# SPDX-License-Identifier: GPL-3.0 + +# Darwinia is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Darwinia is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Darwinia. If not, see . + +FROM centos:7 + +# for gernal linux +# change mirrorlist +RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache \ + # update + yum -y update && yum -y upgrade && yum -y install \ + # tool + git make \ + # compiler + clang gcc gcc-c++ llvm diff --git a/node/Cargo.toml b/node/Cargo.toml index 0c59530..88c7ff0 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -7,7 +7,7 @@ homepage = 'https://mathwallet.net/mathchain' license = 'Unlicense' name = 'mathchain' repository = 'https://github.com/mathwallet/MathChain/' -version = '0.1.0' +version = '0.2.0' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -16,10 +16,13 @@ targets = ['x86_64-unknown-linux-gnu'] name = 'mathchain' [build-dependencies] -substrate-build-script-utils = '2.0.0' +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } [dependencies] +futures = "0.3.4" +log = "0.4.8" jsonrpc-core = '15.0.0' +jsonrpc-pubsub = "15.0.0" structopt = '0.3.8' # local dependencies @@ -28,32 +31,41 @@ galois-runtime-config = { path = '../runtime/galois', package = 'mathchain-runti mathchain-runtime-config = { path = '../runtime/mathchain', package = 'mathchain-runtime-mathchain'} # Substrate dependencies -frame-benchmarking = '2.0.0' -frame-benchmarking-cli = '2.0.0' -pallet-transaction-payment-rpc = '2.0.0' -sc-basic-authorship = '0.8.0' -sc-cli = { features = ['wasmtime'], version = '0.8.0' } -sc-client-api = '2.0.0' -sc-consensus = '0.8.0' -sc-consensus-aura = '0.8.0' -sc-executor = { features = ['wasmtime'], version = '0.8.0' } -sc-finality-grandpa = '0.8.0' -sc-rpc = '2.0.0' -sc-rpc-api = '0.8.0' -sc-service = { features = ['wasmtime'], version = '0.8.0' } -sc-transaction-pool = '2.0.0' -sp-api = '2.0.0' -sp-block-builder = '2.0.0' -sp-blockchain = '2.0.0' -sp-consensus = '0.8.0' -sp-consensus-aura = '0.8.0' -sp-core = '2.0.0' -sp-finality-grandpa = '2.0.0' -sp-inherents = '2.0.0' -sp-runtime = '2.0.0' -sp-transaction-pool = '2.0.0' -substrate-frame-rpc-system = '2.0.0' +frame-benchmarking = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-cli = { features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-client-api = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-consensus = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-executor = { features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-network = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-rpc = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-service = { features = ['wasmtime'], git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-api = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-block-builder = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-blockchain = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-consensus = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-inherents = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-timestamp = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate.git", branch = "frontier" } + +mathchain-consensus = { path = "../consensus" } +pallet-evm = { path = "../vendor/frontier/frame/evm" } +pallet-ethereum = { path = "../vendor/frontier/frame/ethereum" } +fc-consensus = { path = "../vendor/frontier/client/consensus" } +fc-rpc = { path = "../vendor/frontier/client/rpc" } +fp-rpc = { path = "../vendor/frontier/primitives/rpc" } [features] -default = [] runtime-benchmarks = ['mathchain-runtime/runtime-benchmarks'] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 9092863..9c895d7 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,6 +1,6 @@ -use sp_core::{Pair, Public, sr25519}; +use sp_core::{Pair, Public, sr25519, U256, H160}; use mathchain_runtime::{ - AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, + AccountId, AuraConfig, BalancesConfig, EVMConfig, EthereumConfig, GenesisConfig, GrandpaConfig, SudoConfig, SystemConfig, WASM_BINARY, Signature }; use mathchain_runtime::constants::currency::MATHS as MATH; @@ -9,6 +9,8 @@ use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_finality_grandpa::AuthorityId as GrandpaId; use sp_runtime::traits::{Verify, IdentifyAccount}; use sc_service::{ChainType, Properties}; +use std::collections::BTreeMap; +use std::str::FromStr; const DEFAULT_PROTOCOL_ID: &str = "math"; @@ -147,6 +149,18 @@ fn testnet_genesis( endowed_accounts: Vec, _enable_println: bool, ) -> GenesisConfig { + // Alice evm address. private_key: 0xe5be9a5092b81bca64be81d212e7f2f9eba183bb7a90954f7b76361f6edb5c0a + let alice_evm_account_id = H160::from_str("8097c3C354652CB1EEed3E5B65fBa2576470678A").unwrap(); + let mut evm_accounts = BTreeMap::new(); + evm_accounts.insert( + alice_evm_account_id, + pallet_evm::GenesisAccount { + nonce: 0.into(), + balance: U256::from(123456_123_000_000_000_000_000u128), + storage: BTreeMap::new(), + code: vec![], + }, + ); GenesisConfig { frame_system: Some(SystemConfig { // Add Wasm runtime to storage. @@ -167,5 +181,9 @@ fn testnet_genesis( // Assign network admin rights. key: root_key, }), + pallet_evm: Some(EVMConfig { + accounts: evm_accounts, + }), + pallet_ethereum: Some(EthereumConfig {}), } } diff --git a/node/src/cli.rs b/node/src/cli.rs index f2faf17..9360ba4 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,5 +1,31 @@ -use structopt::StructOpt; -use sc_cli::RunCmd; +use structopt::{StructOpt, clap::arg_enum}; + +arg_enum! { + /// Available Sealing methods. + #[allow(missing_docs)] + #[derive(Debug, Copy, Clone, StructOpt)] + pub enum Sealing { + // Seal using rpc method. + Manual, + // Seal when transaction is executed. + Instant, + } +} + +#[allow(missing_docs)] +#[derive(Debug, StructOpt)] +pub struct RunCmd { + #[allow(missing_docs)] + #[structopt(flatten)] + pub base: sc_cli::RunCmd, + + /// Force using Kusama native runtime. + #[structopt(long = "sealing")] + pub sealing: Option, + + #[structopt(long = "enable-dev-signer")] + pub enable_dev_signer: bool, +} #[derive(Debug, StructOpt)] pub struct Cli { @@ -32,7 +58,7 @@ pub enum Subcommand { /// Revert the chain to a previous state. Revert(sc_cli::RevertCmd), - + /// The custom benchmark subcommmand benchmarking runtime pallets. #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")] Benchmark(frame_benchmarking_cli::BenchmarkCmd), diff --git a/node/src/command.rs b/node/src/command.rs index cde92af..34ef246 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -22,6 +22,7 @@ use sc_service::PartialComponents; use mathchain_runtime::Block; use sp_core::crypto::Ss58AddressFormat; use service::IdentifyVariant; +use crate::service::new_partial; use galois_runtime_config::CHAIN_ID as GaoloisChainId; use mathchain_runtime_config::CHAIN_ID as MathchainChainId; @@ -81,7 +82,7 @@ fn set_default_ss58_version(spec: &Box) { /// Parse and run command line arguments pub fn run() -> sc_cli::Result<()> { let cli = Cli::from_args(); - + match &cli.subcommand { Some(Subcommand::BuildSpec(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -91,7 +92,7 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { let PartialComponents { client, task_manager, import_queue, ..} - = service::new_partial(&config)?; + = new_partial(&config, cli.run.sealing)?; Ok((cmd.run(client, import_queue), task_manager)) }) }, @@ -99,7 +100,7 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { let PartialComponents { client, task_manager, ..} - = service::new_partial(&config)?; + = new_partial(&config, cli.run.sealing)?; Ok((cmd.run(client, config.database), task_manager)) }) }, @@ -107,7 +108,7 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { let PartialComponents { client, task_manager, ..} - = service::new_partial(&config)?; + = new_partial(&config, cli.run.sealing)?; Ok((cmd.run(client, config.chain_spec), task_manager)) }) }, @@ -115,7 +116,7 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { let PartialComponents { client, task_manager, import_queue, ..} - = service::new_partial(&config)?; + = new_partial(&config, cli.run.sealing)?; Ok((cmd.run(client, import_queue), task_manager)) }) }, @@ -127,7 +128,7 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { let PartialComponents { client, task_manager, backend, ..} - = service::new_partial(&config)?; + = new_partial(&config, cli.run.sealing)?; Ok((cmd.run(client, backend), task_manager)) }) }, @@ -142,13 +143,16 @@ pub fn run() -> sc_cli::Result<()> { } }, None => { - let runner = cli.create_runner(&cli.run)?; + let runner = cli.create_runner(&cli.run.base)?; set_default_ss58_version(&runner.config().chain_spec); - runner.run_node_until_exit(|config| match config.role { - Role::Light => service::new_light(config), - _ => service::new_full(config), + runner.run_node_until_exit(|config| async move { + match config.role { + Role::Light => service::new_light(config), + _ => service::new_full(config, cli.run.sealing, cli.run.enable_dev_signer), + } }) } } } + diff --git a/node/src/lib.rs b/node/src/lib.rs deleted file mode 100644 index 777c4f0..0000000 --- a/node/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod chain_spec; -pub mod service; -pub mod rpc; diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 1b3ddef..91f8fe2 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -3,17 +3,35 @@ //! used by Substrate nodes. This file extends those RPC definitions with //! capabilities that are specific to this project's runtime configuration. -#![warn(missing_docs)] +use std::{sync::Arc, fmt}; -use std::sync::Arc; - -use mathchain_runtime::{opaque::Block, AccountId, Balance, Index}; +use sc_consensus_manual_seal::rpc::{ManualSeal, ManualSealApi}; +use mathchain_runtime::{Hash, AccountId, Index, opaque::Block, Balance}; use sp_api::ProvideRuntimeApi; +use sp_transaction_pool::TransactionPool; use sp_blockchain::{Error as BlockChainError, HeaderMetadata, HeaderBackend}; +use sc_rpc_api::DenyUnsafe; +use sc_client_api::{ + backend::{StorageProvider, Backend, StateBackend, AuxStore}, + client::BlockchainEvents +}; +use sc_rpc::SubscriptionTaskExecutor; +use sp_runtime::traits::BlakeTwo256; use sp_block_builder::BlockBuilder; -pub use sc_rpc_api::DenyUnsafe; -use sp_transaction_pool::TransactionPool; +use sc_network::NetworkService; +use jsonrpc_pubsub::manager::SubscriptionManager; +/// Light client extra dependencies. +pub struct LightDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// Remote access to the blockchain (async). + pub remote_blockchain: Arc>, + /// Fetcher instance. + pub fetcher: Arc, +} /// Full client dependencies. pub struct FullDeps { @@ -23,42 +41,137 @@ pub struct FullDeps { pub pool: Arc

, /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, + // /// The Node authority flag + pub is_authority: bool, + /// Whether to enable dev signer + pub enable_dev_signer: bool, + // /// Network service + pub network: Arc>, + /// Manual seal command sink + pub command_sink: Option>>, } -/// Instantiate all full RPC extensions. -pub fn create_full( +/// Instantiate all Full RPC extensions. +pub fn create_full( deps: FullDeps, + subscription_task_executor: SubscriptionTaskExecutor ) -> jsonrpc_core::IoHandler where - C: ProvideRuntimeApi, - C: HeaderBackend + HeaderMetadata + 'static, + BE: Backend + 'static, + BE::State: StateBackend, + C: ProvideRuntimeApi + StorageProvider + AuxStore, + C: BlockchainEvents, + C: HeaderBackend + HeaderMetadata, C: Send + Sync + 'static, C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: BlockBuilder, - P: TransactionPool + 'static, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: fp_rpc::EthereumRuntimeRPCApi, + ::Error: fmt::Debug, + P: TransactionPool + 'static, { use substrate_frame_rpc_system::{FullSystem, SystemApi}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi}; + use fc_rpc::{ + EthApi, EthApiServer, NetApi, NetApiServer, EthPubSubApi, EthPubSubApiServer, + Web3Api, Web3ApiServer, EthDevSigner, EthSigner, HexEncodedIdProvider + }; let mut io = jsonrpc_core::IoHandler::default(); let FullDeps { client, pool, deny_unsafe, + is_authority, + network, + command_sink, + enable_dev_signer, } = deps; io.extend_with( - SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe)) + SystemApi::to_delegate(FullSystem::new(client.clone(), pool.clone(), deny_unsafe)) ); - io.extend_with( TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone())) ); - // Extend this RPC with a custom API by using the following syntax. - // `YourRpcStruct` should have a reference to a client, which is needed - // to call into the runtime. - // `io.extend_with(YourRpcTrait::to_delegate(YourRpcStruct::new(ReferenceToClient, ...)));` + let mut signers = Vec::new(); + if enable_dev_signer { + signers.push(Box::new(EthDevSigner::new()) as Box); + } + io.extend_with( + EthApiServer::to_delegate(EthApi::new( + client.clone(), + pool.clone(), + mathchain_runtime::TransactionConverter, + network.clone(), + signers, + is_authority, + )) + ); + + io.extend_with( + NetApiServer::to_delegate(NetApi::new( + client.clone(), + network.clone(), + )) + ); + + io.extend_with( + Web3ApiServer::to_delegate(Web3Api::new( + client.clone(), + )) + ); + + io.extend_with( + EthPubSubApiServer::to_delegate(EthPubSubApi::new( + pool.clone(), + client.clone(), + network.clone(), + SubscriptionManager::::with_id_provider( + HexEncodedIdProvider::default(), + Arc::new(subscription_task_executor) + ), + )) + ); + + match command_sink { + Some(command_sink) => { + io.extend_with( + // We provide the rpc handler with the sending end of the channel to allow the rpc + // send EngineCommands to the background block authorship task. + ManualSealApi::to_delegate(ManualSeal::new(command_sink)), + ); + } + _ => {} + } + + io +} + +/// Instantiate all Light RPC extensions. +pub fn create_light( + deps: LightDeps, +) -> jsonrpc_core::IoHandler where + C: sp_blockchain::HeaderBackend, + C: Send + Sync + 'static, + F: sc_client_api::light::Fetcher + 'static, + P: TransactionPool + 'static, + M: jsonrpc_core::Metadata + Default, +{ + use substrate_frame_rpc_system::{LightSystem, SystemApi}; + + let LightDeps { + client, + pool, + remote_blockchain, + fetcher + } = deps; + let mut io = jsonrpc_core::IoHandler::default(); + io.extend_with( + SystemApi::::to_delegate( + LightSystem::new(client, remote_blockchain, fetcher, pool) + ) + ); io } diff --git a/node/src/service.rs b/node/src/service.rs index 326dfd9..cd50f4d 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,15 +1,20 @@ //! Service and ServiceFactory implementation. Specialized wrapper over substrate service. -use std::sync::Arc; -use std::time::Duration; +use std::{sync::Arc, cell::RefCell, time::Duration}; use sc_client_api::{ExecutorProvider, RemoteBackend}; -use mathchain_runtime::{self, opaque::Block, RuntimeApi}; +use mathchain_consensus::MathchainBlockImport; +use mathchain_runtime::{self, opaque::Block, RuntimeApi, SLOT_DURATION}; use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; -use sp_inherents::InherentDataProviders; +use sc_consensus_manual_seal::{self as manual_seal}; + +use sp_inherents::{InherentDataProviders, ProvideInherentData, InherentIdentifier, InherentData}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair}; use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState}; +use crate::cli::Sealing; +// use sp_runtime::traits::{Block as BlockT}; +use sp_timestamp::InherentError; // Our native executor instance. native_executor_instance!( @@ -23,6 +28,51 @@ type FullClient = sc_service::TFullClient; type FullBackend = sc_service::TFullBackend; type FullSelectChain = sc_consensus::LongestChain; +pub enum ConsensusResult { + Aura( + sc_consensus_aura::AuraBlockImport< + Block, + FullClient, + MathchainBlockImport< + Block, + sc_finality_grandpa::GrandpaBlockImport, + FullClient + >, + AuraPair + >, + sc_finality_grandpa::LinkHalf + ), + ManualSeal(MathchainBlockImport, FullClient>, Sealing) +} + +/// Provide a mock duration starting at 0 in millisecond for timestamp inherent. +/// Each call will increment timestamp by slot_duration making Aura think time has passed. +pub struct MockTimestampInherentDataProvider; + +pub const INHERENT_IDENTIFIER: InherentIdentifier = *b"timstap0"; + +thread_local!(static TIMESTAMP: RefCell = RefCell::new(0)); + +impl ProvideInherentData for MockTimestampInherentDataProvider { + fn inherent_identifier(&self) -> &'static InherentIdentifier { + &INHERENT_IDENTIFIER + } + + fn provide_inherent_data( + &self, + inherent_data: &mut InherentData, + ) -> Result<(), sp_inherents::Error> { + TIMESTAMP.with(|x| { + *x.borrow_mut() += SLOT_DURATION; + inherent_data.put_data(INHERENT_IDENTIFIER, &*x.borrow()) + }) + } + + fn error_to_string(&self, error: &[u8]) -> Option { + InherentError::try_from(&INHERENT_IDENTIFIER, error).map(|e| format!("{:?}", e)) + } +} + /// Can be called for a `Configuration` to check if it is a configuration for the `Crab` network. pub trait IdentifyVariant { /// Returns if this is a configuration for the `Crab` network. @@ -42,23 +92,15 @@ impl IdentifyVariant for Box { } } -pub fn new_partial(config: &Configuration) -> Result) -> Result, + sp_consensus::import_queue::BasicQueue>, sc_transaction_pool::FullPool, - ( - sc_consensus_aura::AuraBlockImport< - Block, - FullClient, - sc_finality_grandpa::GrandpaBlockImport, - AuraPair - >, - sc_finality_grandpa::LinkHalf - ) ->, ServiceError> { + ConsensusResult, + >, ServiceError> { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore, task_manager) = + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(&config)?; let client = Arc::new(client); @@ -71,12 +113,43 @@ pub fn new_partial(config: &Configuration) -> Result), select_chain.clone(), )?; + let mathchain_block_import = MathchainBlockImport::new( + grandpa_block_import.clone(), + client.clone(), + true + ); + let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new( - grandpa_block_import.clone(), client.clone(), + mathchain_block_import, client.clone(), ); let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>( @@ -92,35 +165,54 @@ pub fn new_partial(config: &Configuration) -> Result Result { +pub fn new_full( + config: Configuration, + sealing: Option, + enable_dev_signer: bool, +) -> Result { let sc_service::PartialComponents { - client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool, - inherent_data_providers, - other: (block_import, grandpa_link), - } = new_partial(&config)?; + client, backend, mut task_manager, import_queue, keystore_container, + select_chain, transaction_pool, inherent_data_providers, other: consensus_result, + } = new_partial(&config, sealing)?; + + let (network, network_status_sinks, system_rpc_tx, network_starter) = match consensus_result { + ConsensusResult::ManualSeal(_, _) => { + sc_service::build_network(sc_service::BuildNetworkParams { + config: &config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + on_demand: None, + block_announce_validator_builder: None, + finality_proof_request_builder: Some(Box::new(sc_network::config::DummyFinalityProofRequestBuilder)), + finality_proof_provider: None, + })? + }, + ConsensusResult::Aura(_, _) => { + sc_service::build_network(sc_service::BuildNetworkParams { + config: &config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + on_demand: None, + block_announce_validator_builder: None, + finality_proof_request_builder: None, + finality_proof_provider: Some(GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone())), + })? + } + }; - let finality_proof_provider = - GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone()); - - let (network, network_status_sinks, system_rpc_tx, network_starter) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: &config, - client: client.clone(), - transaction_pool: transaction_pool.clone(), - spawn_handle: task_manager.spawn_handle(), - import_queue, - on_demand: None, - block_announce_validator_builder: None, - finality_proof_request_builder: None, - finality_proof_provider: Some(finality_proof_provider.clone()), - })?; + // Channel for the rpc handler to communicate with the authorship task. + let (command_sink, commands_stream) = futures::channel::mpsc::channel(1000); if config.offchain_worker.enabled { sc_service::build_offchain_workers( @@ -134,26 +226,34 @@ pub fn new_full(config: Configuration) -> Result { let enable_grandpa = !config.disable_grandpa; let prometheus_registry = config.prometheus_registry().cloned(); let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default(); + let is_authority = role.is_authority(); + let subscription_task_executor = sc_rpc::SubscriptionTaskExecutor::new(task_manager.spawn_handle()); let rpc_extensions_builder = { let client = client.clone(); let pool = transaction_pool.clone(); - + let network = network.clone(); Box::new(move |deny_unsafe, _| { let deps = crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), deny_unsafe, + is_authority, + enable_dev_signer, + network: network.clone(), + command_sink: Some(command_sink.clone()) }; - - crate::rpc::create_full(deps) + crate::rpc::create_full( + deps, + subscription_task_executor.clone() + ) }) }; sc_service::spawn_tasks(sc_service::SpawnTasksParams { network: network.clone(), client: client.clone(), - keystore: keystore.clone(), + keystore: keystore_container.sync_keystore(), task_manager: &mut task_manager, transaction_pool: transaction_pool.clone(), telemetry_connection_sinks: telemetry_connection_sinks.clone(), @@ -163,82 +263,128 @@ pub fn new_full(config: Configuration) -> Result { backend, network_status_sinks, system_rpc_tx, config, })?; - if role.is_authority() { - let proposer = sc_basic_authorship::ProposerFactory::new( - client.clone(), - transaction_pool, - prometheus_registry.as_ref(), - ); - - let can_author_with = - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); - - let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>( - sc_consensus_aura::slot_duration(&*client)?, - client.clone(), - select_chain, - block_import, - proposer, - network.clone(), - inherent_data_providers.clone(), - force_authoring, - keystore.clone(), - can_author_with, - )?; - - // the AURA authoring task is considered essential, i.e. if it - // fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking("aura", aura); - } - - // if the node isn't actively participating in consensus then it doesn't - // need a keystore, regardless of which protocol we use below. - let keystore = if role.is_authority() { - Some(keystore as sp_core::traits::BareCryptoStorePtr) - } else { - None - }; - - let grandpa_config = sc_finality_grandpa::Config { - // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), - justification_period: 512, - name: Some(name), - observer_enabled: false, - keystore, - is_authority: role.is_network_authority(), - }; - - if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. - let grandpa_config = sc_finality_grandpa::GrandpaParams { - config: grandpa_config, - link: grandpa_link, - network, - inherent_data_providers, - telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()), - voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(), - prometheus_registry, - shared_voter_state: SharedVoterState::empty(), - }; - - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking( - "grandpa-voter", - sc_finality_grandpa::run_grandpa_voter(grandpa_config)? - ); - } else { - sc_finality_grandpa::setup_disabled_grandpa( - client, - &inherent_data_providers, - network, - )?; + match consensus_result { + ConsensusResult::ManualSeal(block_import, sealing) => { + if role.is_authority() { + let env = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry.as_ref(), + ); + + // Background authorship future + match sealing { + Sealing::Manual => { + let authorship_future = manual_seal::run_manual_seal( + manual_seal::ManualSealParams { + block_import, + env, + client, + pool: transaction_pool.pool().clone(), + commands_stream, + select_chain, + consensus_data_provider: None, + inherent_data_providers, + } + ); + // we spawn the future on a background thread managed by service. + task_manager.spawn_essential_handle().spawn_blocking("manual-seal", authorship_future); + }, + Sealing::Instant => { + let authorship_future = manual_seal::run_instant_seal( + manual_seal::InstantSealParams { + block_import, + env, + client: client.clone(), + pool: transaction_pool.pool().clone(), + select_chain, + consensus_data_provider: None, + inherent_data_providers, + } + ); + // we spawn the future on a background thread managed by service. + task_manager.spawn_essential_handle().spawn_blocking("instant-seal", authorship_future); + } + }; + + } + log::info!("Manual Seal Ready"); + }, + ConsensusResult::Aura(aura_block_import, grandpa_link) => { + if role.is_authority() { + let proposer = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry.as_ref(), + ); + + let can_author_with = + sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); + let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>( + sc_consensus_aura::slot_duration(&*client)?, + client.clone(), + select_chain, + aura_block_import, + proposer, + network.clone(), + inherent_data_providers.clone(), + force_authoring, + keystore_container.sync_keystore(), + can_author_with, + )?; + + // the AURA authoring task is considered essential, i.e. if it + // fails we take down the service with it. + task_manager.spawn_essential_handle().spawn_blocking("aura", aura); + + // if the node isn't actively participating in consensus then it doesn't + // need a keystore, regardless of which protocol we use below. + let keystore = if role.is_authority() { + Some(keystore_container.sync_keystore()) + } else { + None + }; + + let grandpa_config = sc_finality_grandpa::Config { + // FIXME #1578 make this available through chainspec + gossip_duration: Duration::from_millis(333), + justification_period: 512, + name: Some(name), + observer_enabled: false, + keystore, + is_authority: role.is_network_authority(), + }; + + if enable_grandpa { + // start the full GRANDPA voter + // NOTE: non-authorities could run the GRANDPA observer protocol, but at + // this point the full voter should provide better guarantees of block + // and vote data availability than the observer. The observer has not + // been tested extensively yet and having most nodes in a network run it + // could lead to finality stalls. + let grandpa_config = sc_finality_grandpa::GrandpaParams { + config: grandpa_config, + link: grandpa_link, + network, + telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()), + voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(), + prometheus_registry, + shared_voter_state: SharedVoterState::empty(), + }; + + // the GRANDPA voter task is considered infallible, i.e. + // if it fails we take down the service with it. + task_manager.spawn_essential_handle().spawn_blocking( + "grandpa-voter", + sc_finality_grandpa::run_grandpa_voter(grandpa_config)? + ); + } else { + sc_finality_grandpa::setup_disabled_grandpa(network)?; + } + } + } } network_starter.start_network(); @@ -247,7 +393,7 @@ pub fn new_full(config: Configuration) -> Result { /// Builds a new service for a light client. pub fn new_light(config: Configuration) -> Result { - let (client, backend, keystore, mut task_manager, on_demand) = + let (client, backend, keystore_container, mut task_manager, on_demand) = sc_service::new_light_parts::(&config)?; let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light( @@ -262,6 +408,7 @@ pub fn new_light(config: Configuration) -> Result { client.clone(), backend.clone(), &(client.clone() as Arc<_>), Arc::new(on_demand.checker().clone()) as Arc<_>, )?; + let finality_proof_import = grandpa_block_import.clone(); let finality_proof_request_builder = finality_proof_import.create_finality_proof_request_builder(); @@ -278,8 +425,17 @@ pub fn new_light(config: Configuration) -> Result { sp_consensus::NeverCanAuthor, )?; + let light_deps = crate::rpc::LightDeps { + remote_blockchain: backend.remote_blockchain(), + fetcher: on_demand.clone(), + client: client.clone(), + pool: transaction_pool.clone(), + }; + + let rpc_extensions = crate::rpc::create_light(light_deps); + let finality_proof_provider = - GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone()); + Arc::new(GrandpaFinalityProofProvider::new(backend.clone(), client.clone() as Arc<_>)); let (network, network_status_sinks, system_rpc_tx, network_starter) = sc_service::build_network(sc_service::BuildNetworkParams { @@ -305,18 +461,18 @@ pub fn new_light(config: Configuration) -> Result { transaction_pool, task_manager: &mut task_manager, on_demand: Some(on_demand), - rpc_extensions_builder: Box::new(|_, _| ()), + rpc_extensions_builder: Box::new(sc_service::NoopRpcExtensionBuilder(rpc_extensions)), telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(), config, client, - keystore, + keystore: keystore_container.sync_keystore(), backend, network, network_status_sinks, system_rpc_tx, - })?; + })?; - network_starter.start_network(); + network_starter.start_network(); - Ok(task_manager) -} + Ok(task_manager) +} \ No newline at end of file diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 5369597..108dbc3 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -19,13 +19,13 @@ package = 'parity-scale-codec' version = '1.3.4' [dependencies] -frame-support = { default-features = false, version = '2.0.0' } -frame-system = { default-features = false, version = '2.0.0' } +frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } [dev-dependencies] -sp-core = { default-features = false, version = '2.0.0' } -sp-io = { default-features = false, version = '2.0.0' } -sp-runtime = { default-features = false, version = '2.0.0' } +sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 90bdef6..0dc7583 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -19,42 +19,47 @@ wasm-builder-runner = { package = 'substrate-wasm-builder-runner', version = '1. default-features = false features = ['derive'] package = 'parity-scale-codec' -version = '1.3.4' +version = '1.3.0' [dependencies] hex-literal = { optional = true, version = '0.3.1' } serde = { features = ['derive'], optional = true, version = '1.0.101' } # local dependencies -pallet-template = { path = '../pallets/template', default-features = false, version = '0.0.1' } +# pallet-template = { path = '../pallets/template', default-features = false, version = '0.0.1' } # Substrate dependencies -frame-benchmarking = { default-features = false, optional = true, version = '2.0.0' } -frame-executive = { default-features = false, version = '2.0.0' } -frame-support = { default-features = false, version = '2.0.0' } -frame-system = { default-features = false, version = '2.0.0' } -frame-system-benchmarking = { default-features = false, optional = true, version = '2.0.0' } -frame-system-rpc-runtime-api = { default-features = false, version = '2.0.0' } -pallet-aura = { default-features = false, version = '2.0.0' } -pallet-balances = { default-features = false, version = '2.0.0' } -pallet-grandpa = { default-features = false, version = '2.0.0' } -pallet-randomness-collective-flip = { default-features = false, version = '2.0.0' } -pallet-recovery = { default-features = false, version = '2.0.0' } -pallet-sudo = { default-features = false, version = '2.0.0' } -pallet-timestamp = { default-features = false, version = '2.0.0' } -pallet-transaction-payment = { default-features = false, version = '2.0.0' } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = '2.0.0' } -sp-api = { default-features = false, version = '2.0.0' } -sp-block-builder = { default-features = false, version = '2.0.0' } -sp-consensus-aura = { default-features = false, version = '0.8.0' } -sp-core = { default-features = false, version = '2.0.0' } -sp-inherents = { default-features = false, version = '2.0.0' } -sp-offchain = { default-features = false, version = '2.0.0' } -sp-runtime = { default-features = false, version = '2.0.0' } -sp-session = { default-features = false, version = '2.0.0' } -sp-std = { default-features = false, version = '2.0.0' } -sp-transaction-pool = { default-features = false, version = '2.0.0' } -sp-version = { default-features = false, version = '2.0.0' } +frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-system-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-aura = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-ethereum = { default-features = false, path = "../vendor/frontier/frame/ethereum" } +pallet-evm = { default-features = false, path = "../vendor/frontier/frame/evm" } +pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-recovery = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-session = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-std = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } +sp-version = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "frontier" } + +fp-rpc = { default-features = false, path = "../vendor/frontier/primitives/rpc" } [features] default = ['std'] @@ -81,7 +86,7 @@ std = [ 'pallet-randomness-collective-flip/std', 'pallet-recovery/std', 'pallet-sudo/std', - 'pallet-template/std', + # 'pallet-template/std', 'pallet-timestamp/std', 'pallet-transaction-payment/std', 'pallet-transaction-payment-rpc-runtime-api/std', @@ -90,6 +95,7 @@ std = [ 'sp-consensus-aura/std', 'sp-core/std', 'sp-inherents/std', + "sp-io/std", 'sp-offchain/std', 'sp-runtime/std', 'sp-session/std', diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 857af6a..785c821 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1,13 +1,14 @@ #![cfg_attr(not(feature = "std"), no_std)] // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit="256"] +#![recursion_limit = "256"] // Make the WASM binary available. #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -use sp_std::prelude::*; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_std::{prelude::*, marker::PhantomData}; +use codec::{Encode, Decode}; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata, U256, H160, H256}; use sp_runtime::{ ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature, transaction_validity::{TransactionValidity, TransactionSource}, @@ -22,6 +23,8 @@ use pallet_grandpa::fg_primitives; use sp_version::RuntimeVersion; #[cfg(feature = "std")] use sp_version::NativeVersion; +use sp_core::crypto::Public; + // A few exports that help ease life for downstream crates. #[cfg(any(feature = "std", test))] @@ -33,18 +36,24 @@ pub use pallet_recovery::Call as RecoveryCall; pub use frame_support::{ construct_runtime, parameter_types, StorageValue, - traits::{KeyOwnerProofSystem, Randomness}, + traits::{KeyOwnerProofSystem, Randomness, FindAuthor}, weights::{ Weight, IdentityFee, constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, }, + ConsensusEngineId, +}; +use pallet_evm::{ + Account as EVMAccount, FeeCalculator, HashedAddressMapping, + EnsureAddressTruncated, Runner, }; +use fp_rpc::{TransactionStatus}; pub mod constants; use constants::{currency::*}; /// Import the template pallet. -pub use pallet_template; +// pub use pallet_template; /// An index to a block. pub type BlockNumber = u32; @@ -100,7 +109,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("mathchain"), impl_name: create_runtime_str!("mathchain"), authoring_version: 1, - spec_version: 2, + spec_version: 3, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -282,9 +291,60 @@ impl pallet_sudo::Trait for Runtime { type Call = Call; } -/// Configure the pallet template in pallets/template. -impl pallet_template::Trait for Runtime { +// /// Configure the pallet template in pallets/template. +// impl pallet_template::Trait for Runtime { +// type Event = Event; +// } + +/// Fixed gas price of `1`. +pub struct FixedGasPrice; + +impl FeeCalculator for FixedGasPrice { + fn min_gas_price() -> U256 { + // Gas price is always one token per gas. + 1.into() + } +} + +parameter_types! { + pub const ChainId: u64 = 1140; +} + +impl pallet_evm::Trait for Runtime { + type FeeCalculator = FixedGasPrice; + type GasToWeight = (); + type CallOrigin = EnsureAddressTruncated; + type WithdrawOrigin = EnsureAddressTruncated; + type AddressMapping = HashedAddressMapping; + type Currency = Balances; type Event = Event; + type Runner = pallet_evm::runner::stack::Runner; + type Precompiles = ( + pallet_evm::precompiles::ECRecover, + pallet_evm::precompiles::Sha256, + pallet_evm::precompiles::Ripemd160, + pallet_evm::precompiles::Identity, + ); + type ChainId = ChainId; +} + +pub struct EthereumFindAuthor(PhantomData); +impl> FindAuthor for EthereumFindAuthor +{ + fn find_author<'a, I>(digests: I) -> Option where + I: 'a + IntoIterator + { + if let Some(author_index) = F::find_author(digests) { + let authority_id = Aura::authorities()[author_index as usize].clone(); + return Some(H160::from_slice(&authority_id.to_raw_vec()[4..24])); + } + None + } +} + +impl pallet_ethereum::Trait for Runtime { + type Event = Event; + type FindAuthor = EthereumFindAuthor; } // Create the runtime by composing the FRAME pallets that were previously configured. @@ -304,10 +364,28 @@ construct_runtime!( Sudo: pallet_sudo::{Module, Call, Config, Storage, Event}, Recovery: pallet_recovery::{Module, Call, Storage, Event}, // Include the custom logic from the template pallet in the runtime. - TemplateModule: pallet_template::{Module, Call, Storage, Event}, + // TemplateModule: pallet_template::{Module, Call, Storage, Event}, + Ethereum: pallet_ethereum::{Module, Call, Storage, Event, Config, ValidateUnsigned}, + EVM: pallet_evm::{Module, Config, Call, Storage, Event}, } ); +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned(pallet_ethereum::Call::::transact(transaction).into()) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned(pallet_ethereum::Call::::transact(transaction).into()); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]).expect("Encoded extrinsic is always valid") + } +} + /// The address format for describing accounts. pub type Address = AccountId; /// Block header type as expected by this runtime. @@ -423,7 +501,6 @@ impl_runtime_apis! { opaque::SessionKeys::decode_into_raw_public_keys(&encoded) } } - impl fg_primitives::GrandpaApi for Runtime { fn grandpa_authorities() -> GrandpaAuthorityList { Grandpa::grandpa_authorities() @@ -464,4 +541,95 @@ impl_runtime_apis! { TransactionPayment::query_info(uxt, len) } } + + impl fp_rpc::EthereumRuntimeRPCApi for Runtime { + fn chain_id() -> u64 { + ::ChainId::get() + } + + fn account_basic(address: H160) -> EVMAccount { + EVM::account_basic(&address) + } + + fn gas_price() -> U256 { + ::FeeCalculator::min_gas_price() + } + + fn account_code_at(address: H160) -> Vec { + EVM::account_codes(address) + } + + fn author() -> H160 { + >::find_author() + } + + fn storage_at(address: H160, index: U256) -> H256 { + let mut tmp = [0u8; 32]; + index.to_big_endian(&mut tmp); + EVM::account_storages(address, H256::from_slice(&tmp[..])) + } + + fn call( + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + gas_price: Option, + nonce: Option, + ) -> Result { + ::Runner::call( + from, + to, + data, + value, + gas_limit.low_u32(), + gas_price, + nonce, + ).map_err(|err| err.into()) + } + + fn create( + from: H160, + data: Vec, + value: U256, + gas_limit: U256, + gas_price: Option, + nonce: Option, + ) -> Result { + ::Runner::create( + from, + data, + value, + gas_limit.low_u32(), + gas_price, + nonce, + ).map_err(|err| err.into()) + } + + fn current_transaction_statuses() -> Option> { + Ethereum::current_transaction_statuses() + } + + fn current_block() -> Option { + Ethereum::current_block() + } + + fn current_receipts() -> Option> { + Ethereum::current_receipts() + } + + fn current_all() -> ( + Option, + Option>, + Option> + ) { + ( + Ethereum::current_block(), + Ethereum::current_receipts(), + Ethereum::current_transaction_statuses() + ) + } + } + } diff --git a/vendor/frontier b/vendor/frontier new file mode 160000 index 0000000..d438171 --- /dev/null +++ b/vendor/frontier @@ -0,0 +1 @@ +Subproject commit d43817123f773854405b3c14bb037b026215f1e3