diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index afac83afca..20109d3dd1 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -170,10 +170,10 @@ jobs: with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: ci.yml - name: integritee-node-dev-6b3f13932775f71c414d02bed8abac808cb75f73 + name: integritee-node-dev-cdd2ce5a3938b1a41cb0578d034f742d368bd963 # in fact this action should download the latest artifact, but sometimes fails. Then we need to # set the `run_id` to force a download of an updated binary. - run_id: 1384450796 + run_id: 1444153636 path: node repo: integritee-network/integritee-node diff --git a/Cargo.lock b/Cargo.lock index 6ead53b387..3830cf5063 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,135 +147,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" -[[package]] -name = "async-channel" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core 0.3.17", -] - -[[package]] -name = "async-executor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "once_cell 1.8.0", - "slab 0.4.4", -] - -[[package]] -name = "async-global-executor" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-mutex", - "blocking", - "futures-lite", - "num_cpus", - "once_cell 1.8.0", -] - -[[package]] -name = "async-io" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" -dependencies = [ - "concurrent-queue", - "futures-lite", - "libc", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.8.0", - "parking", - "polling", - "slab 0.4.4", - "socket2", - "waker-fn", - "winapi 0.3.9", -] - -[[package]] -name = "async-lock" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" -dependencies = [ - "event-listener", -] - -[[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-process" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692" -dependencies = [ - "async-io", - "blocking", - "cfg-if 1.0.0", - "event-listener", - "futures-lite", - "libc", - "once_cell 1.8.0", - "signal-hook", - "winapi 0.3.9", -] - -[[package]] -name = "async-std" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952" -dependencies = [ - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "crossbeam-utils", - "futures-channel 0.3.17", - "futures-core 0.3.17", - "futures-io 0.3.17", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.4.1", - "num_cpus", - "once_cell 1.8.0", - "pin-project-lite 0.2.7", - "pin-utils", - "slab 0.4.4", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" - [[package]] name = "async-trait" version = "0.1.51" @@ -287,12 +158,6 @@ dependencies = [ "syn 1.0.75", ] -[[package]] -name = "atomic-waker" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" - [[package]] name = "atty" version = "0.2.14" @@ -349,6 +214,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.0" @@ -490,20 +361,6 @@ dependencies = [ "byte-tools 0.3.1", ] -[[package]] -name = "blocking" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" -dependencies = [ - "async-channel", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "once_cell 1.8.0", -] - [[package]] name = "bs58" version = "0.4.0" @@ -576,12 +433,6 @@ dependencies = [ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.0.1" @@ -596,12 +447,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" -[[package]] -name = "cache-padded" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" - [[package]] name = "camino" version = "1.0.5" @@ -757,15 +602,6 @@ dependencies = [ "thiserror 1.0.29", ] -[[package]] -name = "concurrent-queue" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -858,16 +694,6 @@ dependencies = [ "sct 0.6.1", ] -[[package]] -name = "ctor" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" -dependencies = [ - "quote 1.0.9", - "syn 1.0.75", -] - [[package]] name = "curve25519-dalek" version = "2.1.3" @@ -1108,12 +934,6 @@ dependencies = [ "serde 1.0.130", ] -[[package]] -name = "event-listener" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" - [[package]] name = "failure" version = "0.1.8" @@ -1142,15 +962,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -[[package]] -name = "fastrand" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" -dependencies = [ - "instant", -] - [[package]] name = "finality-grandpa" version = "0.14.4" @@ -1236,7 +1047,7 @@ checksum = "69a039c3498dc930fe810151a34ba0c1c70b02b8625035592e74432f678591f2" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -1255,7 +1066,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -1270,7 +1081,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "14.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "serde 1.0.130", @@ -1292,7 +1103,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "bitflags", "frame-metadata 14.0.0-dev", @@ -1318,7 +1129,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1330,7 +1141,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1342,7 +1153,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "proc-macro2", "quote 1.0.9", @@ -1352,10 +1163,9 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", - "impl-trait-for-tuples", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec", "serde 1.0.130", @@ -1369,7 +1179,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "sp-api", @@ -1504,21 +1314,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core 0.3.17", - "futures-io 0.3.17", - "memchr 2.4.1", - "parking", - "pin-project-lite 0.2.7", - "waker-fn", -] - [[package]] name = "futures-macro" version = "0.3.8" @@ -1587,7 +1382,7 @@ dependencies = [ "futures-sink 0.3.8", "futures-task 0.3.8", "memchr 2.2.1", - "pin-project-lite 0.2.7", + "pin-project-lite", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1609,7 +1404,7 @@ dependencies = [ "futures-sink 0.3.17", "futures-task 0.3.17", "memchr 2.4.1", - "pin-project-lite 0.2.7", + "pin-project-lite", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1628,7 +1423,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d00328cedcac5e81c683e5620ca6a30756fc23027ebf9bff405c0e8da1fbb7e" dependencies = [ - "typenum", + "typenum 1.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1637,7 +1432,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" dependencies = [ - "typenum", + "typenum 1.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1646,7 +1441,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ - "typenum", + "typenum 1.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "version_check", ] @@ -1719,39 +1514,6 @@ dependencies = [ "regex 1.5.4", ] -[[package]] -name = "gloo-timers" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" -dependencies = [ - "futures-channel 0.3.17", - "futures-core 0.3.17", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "h2" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" -dependencies = [ - "bytes 0.5.6", - "fnv 1.0.7", - "futures-core 0.3.17", - "futures-sink 0.3.17", - "futures-util 0.3.17", - "http 0.2.4", - "indexmap", - "slab 0.4.4", - "tokio 0.2.25", - "tokio-util 0.3.1", - "tracing", - "tracing-futures", -] - [[package]] name = "h2" version = "0.3.4" @@ -1766,8 +1528,8 @@ dependencies = [ "http 0.2.4", "indexmap", "slab 0.4.4", - "tokio 1.11.0", - "tokio-util 0.6.7", + "tokio", + "tokio-util", "tracing", ] @@ -1840,6 +1602,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" + [[package]] name = "hmac" version = "0.7.1" @@ -1872,13 +1640,13 @@ dependencies = [ [[package]] name = "hmac-drbg" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ - "digest 0.8.1", - "generic-array 0.12.4", - "hmac 0.7.1", + "digest 0.9.0", + "generic-array 0.14.4", + "hmac 0.8.1", ] [[package]] @@ -1903,16 +1671,6 @@ dependencies = [ "itoa 0.4.8", ] -[[package]] -name = "http-body" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.6", - "http 0.2.4", -] - [[package]] name = "http-body" version = "0.4.3" @@ -1921,7 +1679,7 @@ checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" dependencies = [ "bytes 1.1.0", "http 0.2.4", - "pin-project-lite 0.2.7", + "pin-project-lite", ] [[package]] @@ -1962,12 +1720,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" -[[package]] -name = "httpdate" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" - [[package]] name = "httpdate" version = "1.0.1" @@ -1998,29 +1750,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.13.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" -dependencies = [ - "bytes 0.5.6", - "futures-channel 0.3.17", - "futures-core 0.3.17", - "futures-util 0.3.17", - "h2 0.2.7", - "http 0.2.4", - "http-body 0.3.1", - "httparse 1.5.1", - "httpdate 0.3.2", - "itoa 0.4.8", - "pin-project", - "tokio 0.2.25", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "0.14.12" @@ -2031,15 +1760,15 @@ dependencies = [ "futures-channel 0.3.17", "futures-core 0.3.17", "futures-util 0.3.17", - "h2 0.3.4", + "h2", "http 0.2.4", - "http-body 0.4.3", + "http-body", "httparse 1.5.1", - "httpdate 1.0.1", + "httpdate", "itoa 0.4.8", - "pin-project-lite 0.2.7", + "pin-project-lite", "socket2", - "tokio 1.11.0", + "tokio", "tower-service", "tracing", "want", @@ -2055,7 +1784,7 @@ dependencies = [ "common-multipart-rfc7578", "futures 0.3.17", "http 0.2.4", - "hyper 0.14.12", + "hyper", ] [[package]] @@ -2066,11 +1795,11 @@ checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ "ct-logs", "futures-util 0.3.17", - "hyper 0.14.12", + "hyper", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "rustls 0.19.1", "rustls-native-certs", - "tokio 1.11.0", + "tokio", "tokio-rustls", "webpki 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2082,16 +1811,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes 1.1.0", - "hyper 0.14.12", + "hyper", "native-tls", - "tokio 1.11.0", + "tokio", "tokio-native-tls", ] [[package]] name = "ias-verify" version = "0.1.4" -source = "git+https://github.com/integritee-network/pallet-teerex.git?branch=master#9b97b5ab25f743e5359d2d0e9d23e273f1bbe5dc" +source = "git+https://github.com/integritee-network/pallets.git?branch=master#2dbe761f0bb09fcb731e5ce16b25d6fff1b9e85b" dependencies = [ "base64 0.11.0", "chrono", @@ -2233,8 +1962,8 @@ dependencies = [ [[package]] name = "integritee-node-runtime" -version = "0.9.0" -source = "git+https://github.com/integritee-network/integritee-node?branch=master#46df9077543a2958b6ea7eeb8789c0427892430e" +version = "0.9.3" +source = "git+https://github.com/integritee-network/integritee-node?branch=master#cdd2ce5a3938b1a41cb0578d034f742d368bd963" dependencies = [ "frame-executive", "frame-support", @@ -2242,13 +1971,21 @@ dependencies = [ "frame-system-rpc-runtime-api", "pallet-aura", "pallet-balances", + "pallet-claims", "pallet-grandpa", + "pallet-multisig", + "pallet-proxy", "pallet-randomness-collective-flip", + "pallet-scheduler", "pallet-sudo", + "pallet-teeracle", "pallet-teerex", "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", "parity-scale-codec", "sp-api", "sp-block-builder", @@ -2314,7 +2051,7 @@ dependencies = [ "sp-runtime", "substrate-api-client", "thiserror 1.0.29", - "tokio 1.11.0", + "tokio", "ws", ] @@ -2346,15 +2083,15 @@ dependencies = [ "failure", "futures 0.3.17", "http 0.2.4", - "hyper 0.14.12", + "hyper", "hyper-multipart-rfc7578", "hyper-tls", "parity-multiaddr", "serde 1.0.130", "serde_json 1.0.67", "serde_urlencoded", - "tokio 1.11.0", - "tokio-util 0.6.7", + "tokio", + "tokio-util", "tracing", "typed-builder", "walkdir", @@ -2488,7 +2225,7 @@ dependencies = [ "parity-scale-codec", "serde_json 1.0.67", "sp-core", - "tokio 1.11.0", + "tokio", ] [[package]] @@ -3036,7 +2773,7 @@ checksum = "e7275601ba6f9f6feaa82d3c66b51e34d190e75f1cf23d5c40f7801f3a7610a6" dependencies = [ "async-trait", "fnv 1.0.7", - "hyper 0.14.12", + "hyper", "hyper-rustls", "jsonrpsee-types", "jsonrpsee-utils", @@ -3056,7 +2793,7 @@ dependencies = [ "futures-channel 0.3.17", "futures-util 0.3.17", "globset", - "hyper 0.14.12", + "hyper", "jsonrpsee-types", "jsonrpsee-utils", "lazy_static", @@ -3065,7 +2802,7 @@ dependencies = [ "serde_json 1.0.67", "socket2", "thiserror 1.0.29", - "tokio 1.11.0", + "tokio", "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3092,7 +2829,7 @@ dependencies = [ "beef", "futures-channel 0.3.17", "futures-util 0.3.17", - "hyper 0.14.12", + "hyper", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.130", "serde_json 1.0.67", @@ -3108,7 +2845,7 @@ checksum = "47554ecaacb479285da68799d9b6afc258c32b332cc8b85829c6a9304ee98776" dependencies = [ "futures-channel 0.3.17", "futures-util 0.3.17", - "hyper 0.14.12", + "hyper", "jsonrpsee-types", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.11.2", @@ -3137,9 +2874,9 @@ dependencies = [ "serde_json 1.0.67", "soketto", "thiserror 1.0.29", - "tokio 1.11.0", + "tokio", "tokio-rustls", - "tokio-util 0.6.7", + "tokio-util", "url 2.2.2", ] @@ -3159,9 +2896,9 @@ dependencies = [ "serde_json 1.0.67", "soketto", "thiserror 1.0.29", - "tokio 1.11.0", + "tokio", "tokio-stream", - "tokio-util 0.6.7", + "tokio-util", ] [[package]] @@ -3180,15 +2917,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -3240,18 +2968,50 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.3.5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" +checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" dependencies = [ "arrayref", - "crunchy", - "digest 0.8.1", + "base64 0.12.3", + "digest 0.9.0", "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.2", + "serde 1.0.130", + "sha2 0.9.6", + "typenum 1.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" +dependencies = [ + "crunchy", + "digest 0.9.0", "subtle 2.4.1", - "typenum", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core", ] [[package]] @@ -3312,7 +3072,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ "cfg-if 1.0.0", - "value-bag", ] [[package]] @@ -3605,7 +3364,7 @@ dependencies = [ "rand 0.8.4", "rand_distr", "simba", - "typenum", + "typenum 1.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3968,11 +3727,10 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", - "pallet-session", "pallet-timestamp", "parity-scale-codec", "sp-application-crypto", @@ -3984,7 +3742,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -3998,7 +3756,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-benchmarking", "frame-support", @@ -4009,10 +3767,27 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-claims" +version = "0.9.12" +source = "git+https://github.com/integritee-network/pallets.git?branch=master#2dbe761f0bb09fcb731e5ce16b25d6fff1b9e85b" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "rustc-hex", + "scale-info", + "serde 1.0.130", + "serde_derive 1.0.130", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-benchmarking", "frame-support", @@ -4031,10 +3806,36 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-multisig" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-proxy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -4044,10 +3845,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-scheduler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-scale-codec", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -4067,20 +3883,41 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-teeracle" +version = "0.1.0" +source = "git+https://github.com/integritee-network/pallets.git?branch=master#2dbe761f0bb09fcb731e5ce16b25d6fff1b9e85b" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", + "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "pallet-balances", + "pallet-teerex", + "pallet-timestamp", "parity-scale-codec", + "sp-core", "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", "sp-runtime", "sp-std", + "substrate-fixed", + "test-utils", ] [[package]] name = "pallet-teerex" version = "0.9.0" -source = "git+https://github.com/integritee-network/pallet-teerex.git?branch=master#9b97b5ab25f743e5359d2d0e9d23e273f1bbe5dc" +source = "git+https://github.com/integritee-network/pallets.git?branch=master#2dbe761f0bb09fcb731e5ce16b25d6fff1b9e85b" dependencies = [ "frame-benchmarking", "frame-support", @@ -4095,17 +3932,17 @@ dependencies = [ "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", "sp-runtime", "sp-std", + "test-utils", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec", "sp-inherents", @@ -4117,7 +3954,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "frame-support", "frame-system", @@ -4133,7 +3970,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4141,6 +3978,48 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-treasury" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "pallet-balances", + "parity-scale-codec", + "serde 1.0.130", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-utility" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-core", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=master)", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-vesting" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" +dependencies = [ + "frame-support", + "frame-system", + "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-scale-codec", + "sp-runtime", + "sp-std", +] + [[package]] name = "parity-multiaddr" version = "0.11.2" @@ -4161,9 +4040,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8975095a2a03bbbdc70a74ab11a4f76a6d0b84680d87c68d722531b0ac28e8a9" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" dependencies = [ "arrayvec 0.7.1", "bitvec 0.20.4", @@ -4175,9 +4054,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40dbbfef7f0a1143c5b06e0d76a6278e25dac0bc1af4be51a0fbb73f07e7ad09" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4226,12 +4105,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - [[package]] name = "parking_lot" version = "0.7.1" @@ -4384,12 +4257,6 @@ dependencies = [ "syn 1.0.75", ] -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - [[package]] name = "pin-project-lite" version = "0.2.7" @@ -4408,19 +4275,6 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" -[[package]] -name = "polling" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "wepoll-ffi", - "winapi 0.3.9", -] - [[package]] name = "ppv-lite86" version = "0.2.6" @@ -4528,20 +4382,6 @@ dependencies = [ "unicode-xid 0.2.2", ] -[[package]] -name = "prometheus" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d" -dependencies = [ - "cfg-if 1.0.0", - "fnv 1.0.7", - "lazy_static", - "parking_lot 0.11.2", - "regex 1.5.4", - "thiserror 1.0.29", -] - [[package]] name = "quick-error" version = "1.2.2" @@ -5203,21 +5043,16 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", - "futures-util 0.3.17", "hex", - "merlin", "parking_lot 0.11.2", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.67", "sp-application-crypto", "sp-core", "sp-keystore", - "subtle 2.4.1", ] [[package]] @@ -5800,16 +5635,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" -[[package]] -name = "signal-hook" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -5911,7 +5736,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "hash-db", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5928,7 +5753,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -5940,7 +5765,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "serde 1.0.130", @@ -5952,7 +5777,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "integer-sqrt", "num-traits 0.2.14", @@ -5966,7 +5791,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "parity-scale-codec", @@ -5978,7 +5803,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "sp-api", @@ -5990,33 +5815,26 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "futures 0.3.17", "futures-timer", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec", - "parking_lot 0.11.2", - "serde 1.0.130", - "sp-api", "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", "sp-std", - "sp-trie", - "sp-utils", "sp-version", - "substrate-prometheus-endpoint", "thiserror 1.0.29", - "wasm-timer", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "parity-scale-codec", @@ -6033,7 +5851,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -6043,7 +5861,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "base58", "blake2-rfc", @@ -6087,7 +5905,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "proc-macro2", "quote 1.0.9", @@ -6097,7 +5915,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "environmental", "parity-scale-codec", @@ -6108,7 +5926,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "finality-grandpa", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -6125,7 +5943,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -6160,7 +5978,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "futures 0.3.17", "hash-db", @@ -6185,7 +6003,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "lazy_static", "sp-core", @@ -6196,7 +6014,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "derive_more", @@ -6213,7 +6031,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "ruzstd", "zstd", @@ -6222,7 +6040,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "sp-api", "sp-core", @@ -6232,7 +6050,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "backtrace", ] @@ -6240,18 +6058,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "rustc-hash", "serde 1.0.130", "sp-core", - "tracing-core", ] [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "either", "hash256-std-hasher", @@ -6272,7 +6089,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6289,7 +6106,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "Inflector", "proc-macro-crate", @@ -6301,7 +6118,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "sp-api", @@ -6314,7 +6131,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -6324,7 +6141,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "hash-db", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -6347,12 +6164,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "impl-serde", "parity-scale-codec", @@ -6365,7 +6182,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "async-trait", "futures-timer", @@ -6376,13 +6193,12 @@ dependencies = [ "sp-runtime", "sp-std", "thiserror 1.0.29", - "wasm-timer", ] [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "erased-serde", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -6400,7 +6216,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "sp-api", "sp-runtime", @@ -6409,7 +6225,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "hash-db", "memory-db", @@ -6420,22 +6236,10 @@ dependencies = [ "trie-root", ] -[[package]] -name = "sp-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" -dependencies = [ - "futures 0.3.17", - "futures-core 0.3.17", - "futures-timer", - "lazy_static", - "prometheus", -] - [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "impl-serde", "parity-scale-codec", @@ -6450,10 +6254,9 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "parity-scale-codec", - "proc-macro-crate", "proc-macro2", "quote 1.0.9", "syn 1.0.75", @@ -6462,7 +6265,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6578,26 +6381,22 @@ dependencies = [ ] [[package]] -name = "substrate-prometheus-endpoint" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +name = "substrate-fixed" +version = "0.5.7" +source = "git+https://github.com/encointer/substrate-fixed.git#2f353acee3c7cf7a386863a89fc6cb805048561f" dependencies = [ - "async-std", - "derive_more", - "futures-util 0.3.17", - "hyper 0.13.10", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "prometheus", - "tokio 0.2.25", + "parity-scale-codec", + "scale-info", + "serde 1.0.130", + "typenum 1.14.0 (git+https://github.com/encointer/typenum)", ] [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=master#f651d45ce5742bc60fe8ae518c035d1638ae83d2" +source = "git+https://github.com/paritytech/substrate.git?branch=master#b391b82954ad95a927a921035e3017c4a0aad516" dependencies = [ "ansi_term 0.12.1", - "atty", "build-helper", "cargo_metadata", "sp-maybe-compressed-blob", @@ -6699,6 +6498,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "test-utils" +version = "0.1.0" +source = "git+https://github.com/integritee-network/pallets.git?branch=master#2dbe761f0bb09fcb731e5ce16b25d6fff1b9e85b" +dependencies = [ + "hex-literal", + "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "textwrap" version = "0.11.0" @@ -6841,19 +6649,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" -[[package]] -name = "tokio" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" -dependencies = [ - "bytes 0.5.6", - "fnv 1.0.7", - "futures-core 0.3.17", - "memchr 2.4.1", - "pin-project-lite 0.1.12", -] - [[package]] name = "tokio" version = "1.11.0" @@ -6868,7 +6663,7 @@ dependencies = [ "num_cpus", "once_cell 1.8.0", "parking_lot 0.11.2", - "pin-project-lite 0.2.7", + "pin-project-lite", "signal-hook-registry", "tokio-macros", "winapi 0.3.9", @@ -6892,7 +6687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.11.0", + "tokio", ] [[package]] @@ -6902,7 +6697,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls 0.19.1", - "tokio 1.11.0", + "tokio", "webpki 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -6913,22 +6708,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f" dependencies = [ "futures-core 0.3.17", - "pin-project-lite 0.2.7", - "tokio 1.11.0", -] - -[[package]] -name = "tokio-util" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" -dependencies = [ - "bytes 0.5.6", - "futures-core 0.3.17", - "futures-sink 0.3.17", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.12", - "tokio 0.2.25", + "pin-project-lite", + "tokio", ] [[package]] @@ -6942,8 +6723,8 @@ dependencies = [ "futures-io 0.3.17", "futures-sink 0.3.17", "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.2.7", - "tokio 1.11.0", + "pin-project-lite", + "tokio", ] [[package]] @@ -6968,8 +6749,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ "cfg-if 1.0.0", - "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.2.7", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -6994,16 +6774,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.1.2" @@ -7129,7 +6899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78e" dependencies = [ "cfg-if 1.0.0", - "rand 0.8.4", + "rand 0.6.5", "static_assertions", ] @@ -7150,6 +6920,14 @@ version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" +[[package]] +name = "typenum" +version = "1.14.0" +source = "git+https://github.com/encointer/typenum#ec35bb80fcfb495de2e1f6966381c3f85e8a6509" +dependencies = [ + "scale-info", +] + [[package]] name = "ucd-trie" version = "0.1.3" @@ -7297,16 +7075,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "value-bag" -version = "1.0.0-alpha.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae" -dependencies = [ - "ctor", - "version_check", -] - [[package]] name = "vcpkg" version = "0.2.15" @@ -7325,12 +7093,6 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - [[package]] name = "walkdir" version = "2.3.2" @@ -7389,18 +7151,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fded345a6559c2cfee778d562300c581f7d4ff3edb9b0d230d69800d213972" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.76" @@ -7441,21 +7191,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" -dependencies = [ - "futures 0.3.17", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wasmi" version = "0.9.0" @@ -7547,15 +7282,6 @@ dependencies = [ "webpki 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "which" version = "3.1.1" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 787271d200..681d6c776b 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -42,4 +42,4 @@ sp-core = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrat itp-types = { path = "../core-primitives/types" } itp-api-client-extensions = { path = "../core-primitives/api-client-extensions" } ita-stf = { path = "../app-libs/stf" } -itc-rpc-client = { path = "../core/rpc-client" } \ No newline at end of file +itc-rpc-client = { path = "../core/rpc-client" } diff --git a/cli/src/main.rs b/cli/src/main.rs index f5809218df..fa79242f4d 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -541,15 +541,15 @@ fn send_request(matches: &ArgMatches<'_>, call: TrustedCallSigned) -> Option("H256").unwrap(); loop { - let ret: BlockConfirmedArgs = _chain_api - .wait_for_event::( + let ret: ProposedSidechainBlockArgs = _chain_api + .wait_for_event::( TEEREX, - "BlockConfirmed", + "ProposedSidechainBlock", Some(decoder.clone()), &events_out, ) .unwrap(); - info!("BlockConfirmed event received"); + info!("ProposedSidechainBlock event received"); debug!("Expected stf block Hash: {:?}", block_hash); debug!("Confirmed stf block Hash: {:?}", ret.payload); if ret.payload == block_hash { @@ -661,7 +661,7 @@ fn send_direct_request( #[allow(dead_code)] #[derive(Decode)] -struct BlockConfirmedArgs { +struct ProposedSidechainBlockArgs { signer: AccountId, payload: H256, } @@ -728,39 +728,28 @@ fn listen(matches: &ArgMatches<'_>) { ) => { println!("RemovedEnclave: {:?}", accountid); }, - my_node_runtime::pallet_teerex::RawEvent::UpdatedIpfsHash( - shard, - idx, - ipfs_hash, - ) => { - println!( - "UpdatedIpfsHash for shard {}, worker index {}, ipfs# {:?}", - shard.encode().to_base58(), - idx, - ipfs_hash - ); - }, my_node_runtime::pallet_teerex::RawEvent::Forwarded(shard) => { println!( "Forwarded request for shard {}", shard.encode().to_base58() ); }, - my_node_runtime::pallet_teerex::RawEvent::CallConfirmed( + my_node_runtime::pallet_teerex::RawEvent::ProcessedParentchainBlock( accountid, - call_hash, + block_hash, + merkle_root, ) => { println!( - "CallConfirmed from {} with hash {:?}", - accountid, call_hash + "ProcessedParentchainBlock from {} with hash {:?} and merkle root {:?}", + accountid, block_hash, merkle_root ); }, - my_node_runtime::pallet_teerex::RawEvent::BlockConfirmed( + my_node_runtime::pallet_teerex::RawEvent::ProposedSidechainBlock( accountid, block_hash, ) => { println!( - "BlockConfirmed from {} with hash {:?}", + "ProposedSidechainBlock from {} with hash {:?}", accountid, block_hash ); }, @@ -785,8 +774,10 @@ fn listen(matches: &ArgMatches<'_>) { } } -// subscribes to he pallet_teerex events of type CallConfirmed -pub fn subscribe_to_call_confirmed(api: Api) -> H256 +// Subscribes to the pallet_teerex events of type ProcessedParentchainBlock. +pub fn subscribe_to_processed_parentchain_block( + api: Api, +) -> H256 where MultiSignature: From, Client: RpcClient + Subscriber + Send, @@ -811,13 +802,14 @@ where for evr in &evts { info!("received event {:?}", evr.event); if let Event::Teerex(pe) = &evr.event { - if let my_node_runtime::pallet_teerex::RawEvent::CallConfirmed( + if let my_node_runtime::pallet_teerex::RawEvent::ProcessedParentchainBlock( sender, - payload, + block_hash, + _merkle_root, ) = &pe { - println!("[+] Received confirm call from {}", sender); - return payload.clone().to_owned() + println!("[+] Received processed parentchain block event from {}", sender); + return block_hash.clone().to_owned() } else { debug!("received unknown event from Teerex: {:?}", evr.event) } diff --git a/core-primitives/settings/src/lib.rs b/core-primitives/settings/src/lib.rs index 71073080dc..8e8134e389 100644 --- a/core-primitives/settings/src/lib.rs +++ b/core-primitives/settings/src/lib.rs @@ -97,8 +97,8 @@ pub mod node { pub static REGISTER_ENCLAVE: u8 = 0u8; //pub static UNREGISTER_ENCLAVE: u8 = 1u8; pub static CALL_WORKER: u8 = 2u8; - pub static CALL_CONFIRMED: u8 = 3u8; - pub static BLOCK_CONFIRMED: u8 = 4u8; + pub static PROCESSED_PARENTCHAIN_BLOCK: u8 = 3u8; + pub static PROPOSED_SIDECHAIN_BLOCK: u8 = 4u8; pub static SHIELD_FUNDS: u8 = 5u8; // bump this to be consistent with integritee-node runtime pub static RUNTIME_SPEC_VERSION: u32 = 3; diff --git a/core-primitives/stf-executor/src/executor.rs b/core-primitives/stf-executor/src/executor.rs index 1e0debe17c..20f74e3164 100644 --- a/core-primitives/stf-executor/src/executor.rs +++ b/core-primitives/stf-executor/src/executor.rs @@ -188,7 +188,6 @@ where account: AccountId, amount: Amount, shard: &ShardIdentifier, - calls: &mut Vec, ) -> Result { let (state_lock, mut state) = self.state_handler.load_for_mutation(shard)?; @@ -201,7 +200,8 @@ where Default::default(), //don't care about signature here ); - Stf::execute(&mut state, trusted_call, calls).map_err::(|e| e.into())?; + Stf::execute(&mut state, trusted_call, &mut Vec::::new()) + .map_err::(|e| e.into())?; self.state_handler.write(state, state_lock, shard).map_err(|e| e.into()) } diff --git a/core-primitives/stf-executor/src/traits.rs b/core-primitives/stf-executor/src/traits.rs index f8ee15d539..c479b3a71b 100644 --- a/core-primitives/stf-executor/src/traits.rs +++ b/core-primitives/stf-executor/src/traits.rs @@ -36,7 +36,6 @@ pub trait StfExecuteShieldFunds { account: AccountId, amount: Amount, shard: &ShardIdentifier, - calls: &mut Vec, ) -> Result; } diff --git a/enclave-runtime/Cargo.lock b/enclave-runtime/Cargo.lock index 1ff899ffcb..1dbe85807a 100644 --- a/enclave-runtime/Cargo.lock +++ b/enclave-runtime/Cargo.lock @@ -522,6 +522,7 @@ dependencies = [ "sp-utils", "sp-version", "substrate-api-client", + "tiny-keccak", "webpki", "webpki-roots 0.21.0 (git+https://github.com/mesalock-linux/webpki-roots?branch=mesalock_sgx)", "yasna", diff --git a/enclave-runtime/Cargo.toml b/enclave-runtime/Cargo.toml index a0b5e0be3e..d3b4c6d191 100644 --- a/enclave-runtime/Cargo.toml +++ b/enclave-runtime/Cargo.toml @@ -106,6 +106,9 @@ sp-std = { version = "4.0.0-dev", default-features = false, git = "https://githu sp-utils = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "master" } sp-version = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "master" } sp-application-crypto = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "master" } +#beefy-merkle-tree = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "master", features = "keccak" } +#remove as soon as we can import beefy-merkle-tree: +tiny-keccak = { version = "2.0.2", features = ["keccak"] } [patch.crates-io] log = { git = "https://github.com/mesalock-linux/log-sgx" } diff --git a/enclave-runtime/src/beefy_merkle_tree.rs b/enclave-runtime/src/beefy_merkle_tree.rs new file mode 100644 index 0000000000..534cff84a2 --- /dev/null +++ b/enclave-runtime/src/beefy_merkle_tree.rs @@ -0,0 +1,229 @@ +// This file is part of Substrate. + +// Copyright (C) 2021 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/// FIXME: Remove this once we reach substrate commit +/// https://github.com/paritytech/substrate/commit/65ac6f39c72e77fd98f337f1a5beddd539ee8d6f#diff-ffd4062a9fd23035055cc0ccdb7611783f3e17e55eaf25917f5482c2893ca766 +/// (on 23th september) and import directly from substrate.. +extern crate alloc; +use alloc::vec::Vec; + +/// Supported hashing output size. +/// +/// The size is restricted to 32 bytes to allow for a more optimised implementation. +pub type Hash = [u8; 32]; + +/// Generic hasher trait. +/// +/// Implement the function to support custom way of hashing data. +/// The implementation must return a [Hash] type, so only 32-byte output hashes are supported. +pub trait Hasher { + /// Hash given arbitrary-length piece of data. + fn hash(data: &[u8]) -> Hash; +} + +mod keccak256 { + use tiny_keccak::{Hasher as _, Keccak}; + + /// Keccak256 hasher implementation. + pub struct Keccak256; + impl Keccak256 { + /// Hash given data. + #[allow(unused)] + pub fn hash(data: &[u8]) -> super::Hash { + ::hash(data) + } + } + impl super::Hasher for Keccak256 { + fn hash(data: &[u8]) -> super::Hash { + let mut keccak = Keccak::v256(); + keccak.update(data); + let mut output = [0_u8; 32]; + keccak.finalize(&mut output); + output + } + } +} +pub use keccak256::Keccak256; + +/// Construct a root hash of a Binary Merkle Tree created from given leaves. +/// +/// See crate-level docs for details about Merkle Tree construction. +/// +/// In case an empty list of leaves is passed the function returns a 0-filled hash. +pub fn merkle_root(leaves: I) -> Hash +where + H: Hasher, + I: IntoIterator, + T: AsRef<[u8]>, +{ + let iter = leaves.into_iter().map(|l| H::hash(l.as_ref())); + merkelize::(iter, &mut ()) +} + +fn merkelize(leaves: I, visitor: &mut V) -> Hash +where + H: Hasher, + V: Visitor, + I: Iterator, +{ + let upper = Vec::with_capacity(leaves.size_hint().0); + let mut next = match merkelize_row::(leaves, upper, visitor) { + Ok(root) => return root, + Err(next) if next.is_empty() => return Hash::default(), + Err(next) => next, + }; + + let mut upper = Vec::with_capacity((next.len() + 1) / 2); + loop { + visitor.move_up(); + + match merkelize_row::(next.drain(..), upper, visitor) { + Ok(root) => return root, + Err(t) => { + // swap collections to avoid allocations + upper = next; + next = t; + }, + }; + } +} + +/// A generated merkle proof. +/// +/// The structure contains all necessary data to later on verify the proof and the leaf itself. +#[derive(Debug, PartialEq, Eq)] +pub struct MerkleProof { + /// Root hash of generated merkle tree. + pub root: Hash, + /// Proof items (does not contain the leaf hash, nor the root obviously). + /// + /// This vec contains all inner node hashes necessary to reconstruct the root hash given the + /// leaf hash. + pub proof: Vec, + /// Number of leaves in the original tree. + /// + /// This is needed to detect a case where we have an odd number of leaves that "get promoted" + /// to upper layers. + pub number_of_leaves: usize, + /// Index of the leaf the proof is for (0-based). + pub leaf_index: usize, + /// Leaf content. + pub leaf: T, +} + +/// A trait of object inspecting merkle root creation. +/// +/// It can be passed to [`merkelize_row`] or [`merkelize`] functions and will be notified +/// about tree traversal. +trait Visitor { + /// We are moving one level up in the tree. + fn move_up(&mut self); + + /// We are creating an inner node from given `left` and `right` nodes. + /// + /// Note that in case of last odd node in the row `right` might be empty. + /// The method will also visit the `root` hash (level 0). + /// + /// The `index` is an index of `left` item. + fn visit(&mut self, index: usize, left: &Option, right: &Option); +} + +/// No-op implementation of the visitor. +impl Visitor for () { + fn move_up(&mut self) {} + fn visit(&mut self, _index: usize, _left: &Option, _right: &Option) {} +} + +/// Leaf node for proof verification. +/// +/// Can be either a value that needs to be hashed first, +/// or the hash itself. +#[derive(Debug, PartialEq, Eq)] +pub enum Leaf<'a> { + /// Leaf content. + Value(&'a [u8]), + /// Hash of the leaf content. + Hash(Hash), +} + +impl<'a, T: AsRef<[u8]>> From<&'a T> for Leaf<'a> { + fn from(v: &'a T) -> Self { + Leaf::Value(v.as_ref()) + } +} + +impl<'a> From for Leaf<'a> { + fn from(v: Hash) -> Self { + Leaf::Hash(v) + } +} + +/// Processes a single row (layer) of a tree by taking pairs of elements, +/// concatenating them, hashing and placing into resulting vector. +/// +/// In case only one element is provided it is returned via `Ok` result, in any other case (also an +/// empty iterator) an `Err` with the inner nodes of upper layer is returned. +fn merkelize_row( + mut iter: I, + mut next: Vec, + visitor: &mut V, +) -> Result> +where + H: Hasher, + V: Visitor, + I: Iterator, +{ + #[cfg(feature = "debug")] + log::debug!("[merkelize_row]"); + next.clear(); + + let mut index = 0; + let mut combined = [0_u8; 64]; + loop { + let a = iter.next(); + let b = iter.next(); + visitor.visit(index, &a, &b); + + #[cfg(feature = "debug")] + log::debug!(" {:?}\n {:?}", a.as_ref().map(hex::encode), b.as_ref().map(hex::encode)); + + index += 2; + match (a, b) { + (Some(a), Some(b)) => { + combined[0..32].copy_from_slice(&a); + combined[32..64].copy_from_slice(&b); + + next.push(H::hash(&combined)); + }, + // Odd number of items. Promote the item to the upper layer. + (Some(a), None) if !next.is_empty() => { + next.push(a); + }, + // Last item = root. + (Some(a), None) => return Ok(a), + // Finish up, no more items. + _ => { + #[cfg(feature = "debug")] + log::debug!( + "[merkelize_row] Next: {:?}", + next.iter().map(hex::encode).collect::>() + ); + return Err(next) + }, + } + } +} diff --git a/enclave-runtime/src/lib.rs b/enclave-runtime/src/lib.rs index 452d0232fd..fe9199da29 100644 --- a/enclave-runtime/src/lib.rs +++ b/enclave-runtime/src/lib.rs @@ -44,6 +44,7 @@ use crate::{ }, }; use base58::ToBase58; +use beefy_merkle_tree::{merkle_root, Keccak256}; use codec::{alloc::string::String, Decode, Encode}; use ita_stf::{ hash::TrustedOperationOrHash, AccountId, Getter, ShardIdentifier, StatePayload, Stf, @@ -62,8 +63,8 @@ use itp_nonce_cache::{MutateNonce, Nonce, GLOBAL_NONCE_CACHE}; use itp_ocall_api::{EnclaveAttestationOCallApi, EnclaveOnChainOCallApi}; use itp_settings::{ node::{ - BLOCK_CONFIRMED, CALL_CONFIRMED, CALL_WORKER, REGISTER_ENCLAVE, RUNTIME_SPEC_VERSION, - RUNTIME_TRANSACTION_VERSION, SHIELD_FUNDS, TEEREX_MODULE, + CALL_WORKER, PROCESSED_PARENTCHAIN_BLOCK, PROPOSED_SIDECHAIN_BLOCK, REGISTER_ENCLAVE, + RUNTIME_SPEC_VERSION, RUNTIME_TRANSACTION_VERSION, SHIELD_FUNDS, TEEREX_MODULE, }, sidechain::SLOT_DURATION, }; @@ -124,6 +125,8 @@ mod sidechain_impl; mod sync; pub mod tls_ra; +mod beefy_merkle_tree; + #[cfg(feature = "test")] pub mod test; @@ -681,46 +684,39 @@ where ExtrinsicsFactory: CreateExtrinsics, { let mut calls = Vec::::new(); - let mrenclave: ShardIdentifier = on_chain_ocall_api.get_mrenclave_of_self()?.m.into(); debug!("Syncing light client!"); for signed_block in blocks_to_sync.into_iter() { - validator - .check_xt_inclusion(validator.num_relays(), &signed_block.block) - .unwrap(); // panic can only happen if relay_id does not exist + let block = signed_block.block; + validator.check_xt_inclusion(validator.num_relays(), &block).unwrap(); // panic can only happen if relay_id does not exist if let Err(e) = validator.submit_simple_header( validator.num_relays(), - signed_block.block.header().clone(), + block.header().clone(), signed_block.justifications.clone(), ) { error!("Block verification failed. Error : {:?}", e); return Err(e.into()) } - if let Err(e) = stf_executor.update_states::(&signed_block.block.header()) { + if let Err(e) = stf_executor.update_states::(&block.header()) { error!("Error performing state updates upon block import"); return Err(e.into()) } // execute indirect calls, incl. shielding and unshielding - match scan_block_for_relevant_xt(&signed_block.block, stf_executor) { - // push shield funds to opaque calls - Ok(c) => calls.extend(c.into_iter()), + match scan_block_for_relevant_xt(&block, stf_executor) { + Ok((unshielding_call_confirmations, executed_shielding_calls)) => { + // Include all unshieldung confirmations that need to be executed on the parentchain. + calls.extend(unshielding_call_confirmations.into_iter()); + // Include a processed parentchain block confirmation for each block. + calls.push(create_processed_parentchain_block_call( + block.hash(), + executed_shielding_calls, + )); + }, Err(_) => error!("Error executing relevant extrinsics"), }; - - // compose indirect block confirmation - // should be changed to ParentchainBlockProcessed, see worker issue #457 - let xt_block = [TEEREX_MODULE, BLOCK_CONFIRMED]; - let block_hash = signed_block.block.header().hash(); - let prev_state_hash = signed_block.block.header().parent_hash(); - calls.push(OpaqueCall::from_tuple(&( - xt_block, - mrenclave, // 'block_confirmed' only accepts shard == mrenclave. Overall 'block_confirmed' construct will be adjusted with #457 - block_hash, - prev_state_hash.encode(), - ))); } let xts = extrinsics_factory.create_extrinsics(calls.as_slice())?; @@ -730,6 +726,14 @@ where Ok(()) } +/// Creates a processed_parentchain_block extrinsic for a given parentchain block hash and the merkle executed extrinsics. +/// +/// Calculates the merkle root of the extrinsics. In case no extrinsics are supplied, the root will be a hash filled with zeros. +fn create_processed_parentchain_block_call(block_hash: H256, extrinsics: Vec) -> OpaqueCall { + let root: H256 = merkle_root::(extrinsics).into(); + OpaqueCall::from_tuple(&([TEEREX_MODULE, PROCESSED_PARENTCHAIN_BLOCK], block_hash, root)) +} + /// Execute pending trusted operations for all shards until the [`max_exec_duration`] is reached. /// /// For fairness, the [`max_exec_duration`] is split equally among all shards. Leftover time from @@ -982,7 +986,7 @@ where Signer::Public: Encode, { let author_public = signer.public(); - let (block, state_hash_new) = stf_executor.execute_update(&shard, |state| { + let (block, _state_hash_new) = stf_executor.execute_update(&shard, |state| { let mut db = SidechainDB::::new(state); let state_hash_new = db.state_hash(); @@ -1026,39 +1030,45 @@ where let block_hash = block.hash(); debug!("Block hash {}", block_hash); - let xt_block = [TEEREX_MODULE, BLOCK_CONFIRMED]; - let opaque_call = - OpaqueCall::from_tuple(&(xt_block, shard, block_hash, state_hash_new.encode())); + let opaque_call = create_proposed_sidechain_block_call(shard, block_hash); Ok((opaque_call, block.sign_block(&signer))) } +/// Creates a proposed_sidechain_block extrinsic for a given shard id and sidechain block hash. +fn create_proposed_sidechain_block_call(shard_id: ShardIdentifier, block_hash: H256) -> OpaqueCall { + OpaqueCall::from_tuple(&([TEEREX_MODULE, PROPOSED_SIDECHAIN_BLOCK], shard_id, block_hash)) +} + /// Scans blocks for extrinsics that ask the enclave to execute some actions. -/// Executes indirect invocation calls, as well as shielding and unshielding calls -/// Returns all unshielding call confirmations as opaque calls +/// Executes indirect invocation calls, including shielding and unshielding calls. +/// Returns all unshielding call confirmations as opaque calls and the hashes of executed shielding calls. fn scan_block_for_relevant_xt( block: &PB, stf_executor: &StfExecutor, -) -> Result> +) -> Result<(Vec, Vec)> where PB: BlockT, StfExecutor: StfUpdateState + StfExecuteTrustedCall + StfExecuteShieldFunds, { debug!("Scanning block {:?} for relevant xt", block.header().number()); let mut opaque_calls = Vec::::new(); + let mut executed_shielding_calls = Vec::::new(); for xt_opaque in block.extrinsics().iter() { - // shield funds XT + // Found ShieldFunds extrinsic in block. if let Ok(xt) = UncheckedExtrinsicV4::::decode(&mut xt_opaque.encode().as_slice()) { - // confirm call decodes successfully as well if xt.function.0 == [TEEREX_MODULE, SHIELD_FUNDS] { - if let Err(e) = handle_shield_funds_xt(&mut opaque_calls, xt, stf_executor) { + if let Err(e) = handle_shield_funds_xt(&xt, stf_executor) { error!("Error performing shield funds. Error: {:?}", e); + } else { + // Cache successfully executed shielding call. + executed_shielding_calls.push(hash_of(xt)) } } }; - // call worker XT + // Found CallWorker extrinsic in block. if let Ok(xt) = UncheckedExtrinsicV4::::decode(&mut xt_opaque.encode().as_slice()) { @@ -1077,44 +1087,32 @@ where } } } + Ok((opaque_calls, executed_shielding_calls)) +} - Ok(opaque_calls) +fn hash_of(xt: T) -> H256 { + blake2_256(&xt.encode()).into() } fn handle_shield_funds_xt( - calls: &mut Vec, - xt: UncheckedExtrinsicV4, + xt: &UncheckedExtrinsicV4, stf_executor: &StfExecutor, ) -> Result<()> where StfExecutor: StfUpdateState + StfExecuteTrustedCall + StfExecuteShieldFunds, { - let (call, account_encrypted, amount, shard) = xt.function.clone(); + let (call, account_encrypted, amount, shard) = &xt.function; info!("Found ShieldFunds extrinsic in block: \nCall: {:?} \nAccount Encrypted {:?} \nAmount: {} \nShard: {}", call, account_encrypted, amount, shard.encode().to_base58(), ); debug!("decrypt the call"); - //let account_vec = Rsa3072KeyPair::decrypt(&account_encrypted)?; let account_vec = Rsa3072Seal::unseal().map(|key| key.decrypt(&account_encrypted))??; let account = AccountId::decode(&mut account_vec.as_slice()) .sgx_error_with_log("[ShieldFunds] Could not decode account")?; - let state_hash = match stf_executor.execute_shield_funds(account, amount, &shard, calls) { - Ok(h) => h, - Err(e) => { - error!("Error executing shield funds. Error: {:?}", e); - return Ok(()) - }, - }; - - let xt_call = [TEEREX_MODULE, CALL_CONFIRMED]; - let xt_hash = blake2_256(&xt.encode()); - debug!("Extrinsic hash {:?}", xt_hash); - - calls.push(OpaqueCall::from_tuple(&(xt_call, shard, xt_hash, state_hash.encode()))); - + stf_executor.execute_shield_funds(account, *amount, shard)?; Ok(()) } diff --git a/enclave-runtime/src/tests.rs b/enclave-runtime/src/tests.rs index 5784a990f5..a86461d7c3 100644 --- a/enclave-runtime/src/tests.rs +++ b/enclave-runtime/src/tests.rs @@ -30,7 +30,7 @@ use ita_stf::{ use itp_ocall_api::EnclaveAttestationOCallApi; use itp_settings::{ enclave::MAX_TRUSTED_OPS_EXEC_DURATION, - node::{BLOCK_CONFIRMED, TEEREX_MODULE}, + node::{PROCESSED_PARENTCHAIN_BLOCK, PROPOSED_SIDECHAIN_BLOCK, TEEREX_MODULE}, }; use itp_sgx_crypto::{AesSeal, StateCrypto}; use itp_sgx_io::SealedIO; @@ -81,6 +81,8 @@ pub extern "C" fn test_main_entrance() -> size_t { test_submit_trusted_getter_to_top_pool, test_differentiate_getter_and_call_works, test_create_block_and_confirmation_works, + ensure_empty_extrinsic_vec_triggers_zero_filled_merkle_root, + ensure_non_empty_extrinsic_vec_triggers_non_zero_merkle_root, // needs node to be running.. unit tests? // test_ocall_worker_request, test_create_state_diff, @@ -144,7 +146,7 @@ fn test_compose_block_and_confirmation() { // then let expected_call = OpaqueCall::from_tuple(&( - [TEEREX_MODULE, BLOCK_CONFIRMED], + [TEEREX_MODULE, PROPOSED_SIDECHAIN_BLOCK], shard, blake2_256(&signed_block.block().encode()), )); @@ -255,7 +257,7 @@ fn test_create_block_and_confirmation_works() { let opaque_call = confirm_calls[index].clone(); let expected_call = OpaqueCall::from_tuple(&( - [TEEREX_MODULE, BLOCK_CONFIRMED], + [TEEREX_MODULE, PROPOSED_SIDECHAIN_BLOCK], shard, blake2_256(&signed_block.block().encode()), )); @@ -421,6 +423,34 @@ fn test_non_root_shielding_call_is_not_executed() { assert_eq!(funds_new, funds_old); } +fn ensure_empty_extrinsic_vec_triggers_zero_filled_merkle_root() { + // given + let block_hash = H256::from([1; 32]); + let extrinsics = Vec::new(); + let expected_call = + ([TEEREX_MODULE, PROCESSED_PARENTCHAIN_BLOCK], block_hash, H256::default()).encode(); + + // when + let call = crate::create_processed_parentchain_block_call(block_hash, extrinsics); + + // then + assert_eq!(call.0, expected_call); +} + +fn ensure_non_empty_extrinsic_vec_triggers_non_zero_merkle_root() { + // given + let block_hash = H256::from([1; 32]); + let extrinsics = vec![H256::from([4; 32]), H256::from([9; 32])]; + let zero_root_call = + ([TEEREX_MODULE, PROCESSED_PARENTCHAIN_BLOCK], block_hash, H256::default()).encode(); + + // when + let call = crate::create_processed_parentchain_block_call(block_hash, extrinsics); + + // then + assert_ne!(call.0, zero_root_call); +} + fn get_current_shard_index( shard: &ShardIdentifier, state_handler: &StateHandler, diff --git a/service/src/main.rs b/service/src/main.rs index a1de25d17b..f9e3254acf 100644 --- a/service/src/main.rs +++ b/service/src/main.rs @@ -534,13 +534,21 @@ fn print_events(events: Events, _sender: Sender) { shard.encode().to_base58() ); }, - my_node_runtime::pallet_teerex::RawEvent::CallConfirmed(sender, payload) => { - info!("[+] Received CallConfirmed event"); + my_node_runtime::pallet_teerex::RawEvent::ProcessedParentchainBlock( + sender, + block_hash, + merkle_root, + ) => { + info!("[+] Received ProcessedParentchainBlock event"); debug!(" From: {:?}", sender); - debug!(" Payload: {:?}", hex::encode(payload)); + debug!(" Block Hash: {:?}", hex::encode(block_hash)); + debug!(" Merkle Root: {:?}", hex::encode(merkle_root)); }, - my_node_runtime::pallet_teerex::RawEvent::BlockConfirmed(sender, payload) => { - info!("[+] Received BlockConfirmed event"); + my_node_runtime::pallet_teerex::RawEvent::ProposedSidechainBlock( + sender, + payload, + ) => { + info!("[+] Received ProposedSidechainBlock event"); debug!(" From: {:?}", sender); debug!(" Payload: {:?}", hex::encode(payload)); },