From 93280015c21a43cd11d080d262cddb87157fa7cf Mon Sep 17 00:00:00 2001 From: quake Date: Thu, 26 Oct 2023 16:04:09 +0900 Subject: [PATCH] chore: support ckb2023 load_extension syscall --- Cargo.lock | 1443 ++++++++--------- Cargo.toml | 40 +- src/protocols/light_client/components/mod.rs | 2 +- .../components/send_blocks_proof.rs | 71 +- .../components/send_transactions_proof.rs | 37 +- src/protocols/light_client/mod.rs | 18 +- src/protocols/light_client/peers.rs | 10 +- src/service.rs | 9 +- src/storage.rs | 65 +- src/tests/service.rs | 19 +- 10 files changed, 920 insertions(+), 794 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a8a652..0408fcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.17.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -19,12 +19,12 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.5", + "generic-array 0.14.7", ] [[package]] @@ -35,32 +35,34 @@ checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.10", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e6e951cfbb2db8de1828d49073a113a29fd7117b1596caa781a258c7e38d72" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if 1.0.0", - "getrandom 0.2.6", + "const-random", + "getrandom 0.2.10", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -76,30 +78,29 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] @@ -115,9 +116,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -125,25 +126,25 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arc-swap" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] @@ -186,9 +187,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -235,9 +236,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "blake2b-ref" @@ -269,11 +270,11 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.7", ] [[package]] @@ -302,18 +303,19 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.17" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" dependencies = [ "memchr", + "serde", ] [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-tools" @@ -323,9 +325,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -339,20 +341,21 @@ dependencies = [ [[package]] name = "bytes" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] [[package]] name = "cc" -version = "1.0.73" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -378,9 +381,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chacha20" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.0", "cipher", @@ -402,9 +405,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", @@ -413,9 +416,8 @@ dependencies = [ [[package]] name = "ckb-app-config" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8449e6aad62e9278fb922950b8719c65c25304dc032456fb66f3bdb46b6f02a5" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-build-info", "ckb-chain-spec", @@ -427,8 +429,7 @@ dependencies = [ "ckb-resource", "ckb-systemtime", "ckb-types", - "clap 4.3.24", - "clap_lex", + "clap 4.4.7", "path-clean", "rand 0.7.3", "serde", @@ -443,9 +444,8 @@ dependencies = [ [[package]] name = "ckb-async-runtime" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f1f2ed242c2f04016bbe05891b37b1b6fe37df499610fa43beb70a03226852" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-logger", "ckb-spawn", @@ -454,9 +454,8 @@ dependencies = [ [[package]] name = "ckb-block-filter" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3835c46ed0f3035623204ad2c6cb24815c075aa87ebcdac526c0cbdf2acf06b" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-async-runtime", "ckb-logger", @@ -468,15 +467,13 @@ dependencies = [ [[package]] name = "ckb-build-info" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0deeece2631414e4fbc8e3a46ca332ee3dacde13878ff4b699c55e33adf81299" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" [[package]] name = "ckb-chain" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "846e68fc0ff0be2dd588de15b04b40ea94dc2ff29adec6e59ab0c8cff2d73656" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-chain-spec", @@ -500,9 +497,8 @@ dependencies = [ [[package]] name = "ckb-chain-spec" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd58081d4ac4f08d068b52c5a07f0b379d93aad0dfa8344c6890429a9b73c2b" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-constant", "ckb-crypto", @@ -522,24 +518,21 @@ dependencies = [ [[package]] name = "ckb-channel" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "701e6829c3dcbae46dd2442de63d080046480a6c2bb4951dbf419ad092459402" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "crossbeam-channel", ] [[package]] name = "ckb-constant" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5c980d4724770f72a37bceffa26ea64dd914891e45e856e2a3792fdb4a5a18" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" [[package]] name = "ckb-crypto" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df80db694e42b64a5774ae551daff3c8310cd99bb528643dbe0dd409abb298e7" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-fixed-hash", "faster-hex", @@ -551,9 +544,8 @@ dependencies = [ [[package]] name = "ckb-dao" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cb0dd4d284d6908595fa809668555ad36bc89538ea9440d11208090481c240" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "byteorder", "ckb-chain-spec", @@ -564,9 +556,8 @@ dependencies = [ [[package]] name = "ckb-dao-utils" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e158ce5a4e9d1fcd08d9dee87332474572c629c6273cca0aea80ba24892a403" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "byteorder", "ckb-error", @@ -575,9 +566,8 @@ dependencies = [ [[package]] name = "ckb-db" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99dfd763487859ff4390ee81928b1c639691308e21fcbd296054fe7d374d69f" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-db-schema", @@ -589,9 +579,8 @@ dependencies = [ [[package]] name = "ckb-db-migration" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1a0d18f763fdf6cf7016bb5da67927ce45f3399352f46f15b1df159a38fc59" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-db", "ckb-db-schema", @@ -603,15 +592,13 @@ dependencies = [ [[package]] name = "ckb-db-schema" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2edeebd964adce165a6293ec93be381a675ce512b2152be1bbf49589a51fed" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" [[package]] name = "ckb-error" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cfd733cabcb4262ee679c02733864b13c8fa879e3aabc078fe0ec727cd95d6" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "anyhow", "ckb-occupied-capacity", @@ -621,9 +608,8 @@ dependencies = [ [[package]] name = "ckb-fixed-hash" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1dfab045fffa31cae9680d73e1f09833ca1abfb807dc4b9544739c94c23fd0" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-fixed-hash-core", "ckb-fixed-hash-macros", @@ -631,9 +617,8 @@ dependencies = [ [[package]] name = "ckb-fixed-hash-core" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd1727a6ecd4d0bcab604cb1ef707fe92e939fa6e9a438f9f25bf05208cb080" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "faster-hex", "serde", @@ -642,9 +627,8 @@ dependencies = [ [[package]] name = "ckb-fixed-hash-macros" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5da34c32585c35715fcde4e3a1dd3b0346d7af43506c5e51c613f01483e4f9" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-fixed-hash-core", "proc-macro2", @@ -654,9 +638,8 @@ dependencies = [ [[package]] name = "ckb-freezer" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ea4082d37c599f7935082b04dbf86a111425346109134b4c6c656cdfeedd77" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-error", "ckb-logger", @@ -671,9 +654,8 @@ dependencies = [ [[package]] name = "ckb-gen-types" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3bc54ca99b09e1eb5fc6c49bb1156644ce57fce9c6f52b5c13110b9a3143f7e" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "cfg-if 1.0.0", "ckb-error", @@ -686,9 +668,8 @@ dependencies = [ [[package]] name = "ckb-hash" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c88e5e2d6454be488fa5cf8b49175879353c6af969ff210dd6416f315b53120" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "blake2b-ref", "blake2b-rs", @@ -696,9 +677,8 @@ dependencies = [ [[package]] name = "ckb-indexer" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb21afaa9457f49e028c4ec9f786e1918a46e903594093f47db902d36042de9" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-async-runtime", @@ -718,9 +698,8 @@ dependencies = [ [[package]] name = "ckb-jsonrpc-types" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d789a71538da07871c11aecbd28d6c632bb426bdfeed5fc2fa1b455e31152468" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-types", "faster-hex", @@ -730,9 +709,8 @@ dependencies = [ [[package]] name = "ckb-launcher" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43dd565bf555e3ca5c00cc083a5857956f6b682f1fdf9521d8e3669b8b9c4c96" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-async-runtime", @@ -813,8 +791,8 @@ dependencies = [ "ckb-verification", "clap 2.34.0", "ctrlc", - "dashmap 5.3.4", - "env_logger 0.9.0", + "dashmap 5.5.3", + "env_logger 0.9.3", "golomb-coded-set", "jsonrpc-core", "jsonrpc-derive", @@ -837,9 +815,8 @@ dependencies = [ [[package]] name = "ckb-light-client-protocol-server" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0ca11aeac04d2708f82581345bed8df4bbd6aacd1dc6969b0db78743640f4e" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-logger", "ckb-merkle-mountain-range", @@ -852,27 +829,24 @@ dependencies = [ [[package]] name = "ckb-logger" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939fa09ca3534248d3d452552546f016fc7e11346644fbc5b55d2ad38d3e80e7" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "log", ] [[package]] name = "ckb-logger-config" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "032d68580ad2ea9ebaf5430fcc1be23a4cac42be8e27ed6c08bcd3740860422b" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "serde", ] [[package]] name = "ckb-logger-service" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f978c3447ea226623306c20561a113e8455b6f8c023dd774671aa737b4030871" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "backtrace", "ckb-channel", @@ -888,9 +862,8 @@ dependencies = [ [[package]] name = "ckb-memory-tracker" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4632d1c69cc434eb99b14418f6e22c624d6174b5f5f7145e9fe37b2e847000" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-db", "ckb-logger", @@ -912,9 +885,8 @@ dependencies = [ [[package]] name = "ckb-metrics" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16323e6d742c500de6225adfa89c90543011216710842aa6950a2a1b498542e4" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "once_cell", "prometheus", @@ -923,18 +895,16 @@ dependencies = [ [[package]] name = "ckb-metrics-config" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb69b78fc3285d85b802a49d1bca881741cae03fb5c5d061bf4736605e38aefd" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "serde", ] [[package]] name = "ckb-migration-template" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897f868456d8723820ba156068b4f54fd367f4b4d9b59a839d16d0089e1da7fd" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "quote", "syn 1.0.109", @@ -942,9 +912,8 @@ dependencies = [ [[package]] name = "ckb-multisig" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "700d66df79e35bac1c0017072aa4aef760458f45b269f7dafea89dc6bd7d356e" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-crypto", "ckb-error", @@ -953,9 +922,8 @@ dependencies = [ [[package]] name = "ckb-network" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535b4101fb8b14e25499765f38e1c79a94ea421c9dbbd07219ecbaf551ad02e6" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "bitflags 1.3.2", "bloom-filters", @@ -974,17 +942,16 @@ dependencies = [ "serde", "serde_json", "snap", - "socket2 0.4.4", + "socket2 0.4.10", "tentacle", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", ] [[package]] name = "ckb-network-alert" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74a759310a98c7417a77adfeee5f8e3bbcd1324deb446f3c7e7e2b731f57d04" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-error", @@ -1002,9 +969,8 @@ dependencies = [ [[package]] name = "ckb-notify" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2545be01e545319b1ed5b2bff521badbf359ae02a1991676fd4c7bfb5e36ac" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-async-runtime", @@ -1016,9 +982,8 @@ dependencies = [ [[package]] name = "ckb-occupied-capacity" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358ad364465a5a359575642c12952ba8735a148382789d65ddd5231cd21899fc" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-occupied-capacity-core", "ckb-occupied-capacity-macros", @@ -1026,18 +991,16 @@ dependencies = [ [[package]] name = "ckb-occupied-capacity-core" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de2dc06db98f8a995cb7145bc56dbd17bb0c8ab2e59a07aaa40f2c956c2451dd" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "serde", ] [[package]] name = "ckb-occupied-capacity-macros" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1709e0f101026c4ef29b1593692e480b03cdb4e0dace1e348494c6554d50d35" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-occupied-capacity-core", "quote", @@ -1046,9 +1009,8 @@ dependencies = [ [[package]] name = "ckb-pow" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "481e76388993d7e6e0dd797e8532c60398901787e28d0638ca114254257b8813" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "byteorder", "ckb-hash", @@ -1060,9 +1022,8 @@ dependencies = [ [[package]] name = "ckb-proposal-table" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5705d29fad922c4866840eca31f595d7527c17d507d3abc1643e1399a28b3e0" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-chain-spec", "ckb-logger", @@ -1071,9 +1032,8 @@ dependencies = [ [[package]] name = "ckb-rational" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd3959391a4fb05d6a2578aa8db75732ada1ce381fb34d6eeaf09d395702e63c" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "numext-fixed-uint", "serde", @@ -1081,9 +1041,8 @@ dependencies = [ [[package]] name = "ckb-resource" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03222b0613cf3f55cb181471d7a84879b6fba5e920e2e1c7ba2c2315614bd387" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-system-scripts", "ckb-types", @@ -1096,9 +1055,8 @@ dependencies = [ [[package]] name = "ckb-reward-calculator" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58777c730fa7450404933ac2a95bc515d123d3b14acdd7984fd0dbae534dfbe" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-chain-spec", "ckb-dao", @@ -1121,9 +1079,8 @@ dependencies = [ [[package]] name = "ckb-rpc" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9123e33eff7e7b19ef39a5281d89d56bae25b5a07c9d279d8244120ffa188722" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-chain", @@ -1165,18 +1122,16 @@ dependencies = [ [[package]] name = "ckb-rust-unstable-port" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1679751f3d75ff2f554db9766ad7ae1349da029f9b227a8a868ea69c805b1be5" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "is_sorted", ] [[package]] name = "ckb-script" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9075ad901eae97925f491b6be675d7b19bf7b10eaa94a88f6e8070c0cd00ba" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "byteorder", "ckb-chain-spec", @@ -1192,9 +1147,8 @@ dependencies = [ [[package]] name = "ckb-shared" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac837f770ea4d84f66112fbe101337b6b86dc5a7220de2d4a9857dd3e6a3779" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "arc-swap", "ckb-async-runtime", @@ -1217,9 +1171,8 @@ dependencies = [ [[package]] name = "ckb-snapshot" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa3aadac07ed982361cdea491e198e3caf31c53aad08092653f6dc11c3c7e46" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "arc-swap", "ckb-chain-spec", @@ -1235,15 +1188,13 @@ dependencies = [ [[package]] name = "ckb-spawn" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d24f7bb210a41e7a57c62fbdca924bfd2f4d1cca4ff41d06599c951d91c7c5" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" [[package]] name = "ckb-stop-handler" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14a61f2166d53ebccbf695608f7e8d0fe512f5413571c79959dc501621b8244e" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-async-runtime", "ckb-channel", @@ -1251,14 +1202,13 @@ dependencies = [ "ckb-util", "once_cell", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", ] [[package]] name = "ckb-store" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ca3198b293f1976277fe51cc8212a0eb433a0885afcb66313558b30c244771a" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-chain-spec", @@ -1275,9 +1225,8 @@ dependencies = [ [[package]] name = "ckb-sync" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b52660b483fc095047369853d43d38ff75517c55633a16bbcaab10acf86a60" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "bitflags 1.3.2", "ckb-app-config", @@ -1326,24 +1275,21 @@ dependencies = [ [[package]] name = "ckb-systemtime" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5c03dd01263a66eaf171fb1bbadd12d80a0b54abe19aa55a2c53c5ae3300cda" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" [[package]] name = "ckb-traits" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca049aba2cb2d1208c6044accb497b17290ad56de629f6a4b95eded67a43fd40" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-types", ] [[package]] name = "ckb-tx-pool" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae8f28157cd37210278cfc27335f5d8fe23312e7652f58d9b2bd0ff293975a8" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-app-config", "ckb-async-runtime", @@ -1372,17 +1318,16 @@ dependencies = [ "serde_json", "slab", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", ] [[package]] name = "ckb-types" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ec737e4957418bbd0f4091e8565a89bbd8f6fc37a20360820e44d1f1e44e58" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "bit-vec", - "bytes 1.1.0", + "bytes 1.5.0", "ckb-channel", "ckb-constant", "ckb-error", @@ -1403,9 +1348,8 @@ dependencies = [ [[package]] name = "ckb-util" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "011b907b18aa706fc224a1309f14eadd9cc14c42cf2258ca3010d1324bc20f10" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "linked-hash-map", "once_cell", @@ -1415,9 +1359,8 @@ dependencies = [ [[package]] name = "ckb-verification" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe3338bb8cf49c5a21de636eeb448deeba1e379491d34b67f2201fc77a08e215" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-chain-spec", "ckb-dao", @@ -1435,9 +1378,8 @@ dependencies = [ [[package]] name = "ckb-verification-contextual" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0f58e95f26b6f715fca951bb634c97c73db321da9c137ae4c866d8d16bbb57" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "ckb-async-runtime", "ckb-chain-spec", @@ -1459,9 +1401,8 @@ dependencies = [ [[package]] name = "ckb-verification-traits" -version = "0.111.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1bbfdeff1f930f26c60103b59442494dba83493254bb255f1ba318be2f27fe" +version = "0.112.0-pre" +source = "git+https://github.com/quake/ckb?branch=quake/light-client-extension#c42e6ea1dae4a8930638c0d3594c57f3194a3e6c" dependencies = [ "bitflags 1.3.2", "ckb-error", @@ -1474,7 +1415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc004a826b9bc9319ffae0b8415690e1b5f1482266d55fbd43843aa40ddcd63" dependencies = [ "byteorder", - "bytes 1.1.0", + "bytes 1.5.0", "cc", "ckb-vm-definitions", "derive_more", @@ -1496,9 +1437,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -1523,18 +1464,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.24" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487" +checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.3.24" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e" +checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" dependencies = [ "anstream", "anstyle", @@ -1544,9 +1485,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "cloudabi" @@ -1565,16 +1506,35 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "console" -version = "0.15.1" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode", + "lazy_static", "libc", - "once_cell", - "terminal_size", "unicode-width", - "winapi 0.3.9", + "windows-sys 0.45.0", +] + +[[package]] +name = "const-random" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11df32a13d7892ec42d51d3d175faba5211ffe13ed25d4fb348ac9e9ce835593" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.10", + "once_cell", + "tiny-keccak", ] [[package]] @@ -1594,9 +1554,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "3fbc60abd742b35f2492f808e1abbb83d45f72db402e14c55057edc9c7b1e9e4" dependencies = [ "libc", ] @@ -1612,9 +1572,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1622,9 +1582,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -1633,47 +1593,51 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.10" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", "crossbeam-utils", "memoffset", - "once_cell", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if 1.0.0", - "lazy_static", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.5", - "rand_core 0.6.3", + "generic-array 0.14.7", + "rand_core 0.6.4", "typenum", ] [[package]] name = "ctrlc" -version = "3.2.2" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865" +checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf" dependencies = [ "nix", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] @@ -1707,14 +1671,24 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.3.4" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.12.1", + "hashbrown 0.14.2", "lock_api", - "parking_lot_core 0.9.3", + "once_cell", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", ] [[package]] @@ -1745,16 +1719,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.7", ] [[package]] name = "digest" -version = "0.10.3" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1773,9 +1747,9 @@ checksum = "8d978bd5d343e8ab9b5c0fc8d93ff9c602fdc96616ffff9c05ac7a155419b824" [[package]] name = "either" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encode_unicode" @@ -1798,9 +1772,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime 2.1.0", @@ -1811,25 +1785,14 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys 0.48.0", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "fail" version = "0.4.0" @@ -1855,18 +1818,15 @@ checksum = "51e2ce894d53b295cf97b05685aa077950ff3e8541af83217fc720a6437169f8" [[package]] name = "fastrand" -version = "1.7.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "miniz_oxide", @@ -1895,11 +1855,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "matches", "percent-encoding", ] @@ -1913,12 +1872,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - [[package]] name = "fuchsia-cprng" version = "0.1.1" @@ -1943,9 +1896,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1958,9 +1911,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -1968,15 +1921,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -1986,32 +1939,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -2021,9 +1974,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -2057,9 +2010,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -2080,32 +2033,32 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "gimli" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ "aho-corasick", "bstr", @@ -2174,18 +2127,18 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" -dependencies = [ - "ahash 0.7.6", -] +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" [[package]] name = "heapsize" @@ -2217,16 +2170,25 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.3", + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", ] [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "fnv", "itoa", ] @@ -2237,22 +2199,22 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "http", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -2271,11 +2233,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.19" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "futures-channel", "futures-core", "futures-util", @@ -2285,7 +2247,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.4", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -2294,20 +2256,19 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "igd" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4e7ee8b51e541486d7040883fe1f00e2a9954bcc24fd155b7e4f03ed4b93dd" +checksum = "556b5a75cd4adb7c4ea21c64af1c48cefb2ce7d43dc4352c720a1fe47c21f355" dependencies = [ "attohttpc", "log", @@ -2339,12 +2300,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg 1.1.0", - "hashbrown 0.11.2", + "hashbrown 0.12.3", ] [[package]] @@ -2365,7 +2326,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.7", ] [[package]] @@ -2395,17 +2356,6 @@ dependencies = [ "serde", ] -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi 0.3.3", - "rustix", - "windows-sys 0.48.0", -] - [[package]] name = "is_sorted" version = "0.1.1" @@ -2423,24 +2373,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -2509,7 +2459,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "futures", "globset", "jsonrpc-core", @@ -2582,15 +2532,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libloading" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", @@ -2607,15 +2557,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2623,12 +2573,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lru" @@ -2636,26 +2583,20 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.12.1", + "hashbrown 0.12.3", ] -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" -version = "0.6.5" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg 1.1.0", ] @@ -2677,9 +2618,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] @@ -2705,9 +2646,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2744,31 +2685,40 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd9767ab5e5f2ea40f71ff4c8bdb633c50509052e093c2fdd0e390a749dfa3" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "cfg-if 1.0.0", "faster-hex", ] [[package]] name = "multi_index_map" -version = "0.5.0" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403d9206ea9dc4c5c66d549539cbafb551a73148fa0e25208c95f3f86d6c88d1" +dependencies = [ + "multi_index_map_derive", + "rustc-hash", + "slab", +] + +[[package]] +name = "multi_index_map_derive" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a58eea8dbf91e7420e0e843535f585491046d6017e669d36cb8342cfa4861e2" +checksum = "7683a7716b8144281c7208a328c1afd40b779f86700697a0dc25e81e444255cb" dependencies = [ "convert_case 0.6.0", "proc-macro-error", "proc-macro2", "quote", - "rustc-hash", - "slab", "syn 1.0.109", ] [[package]] name = "net2" -version = "0.2.37" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", @@ -2777,11 +2727,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.1" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f17df307904acd05aa8e32e97bb20f2a0df1728bbc2d771ae8f9a90463441e9" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "cfg-if 1.0.0", "libc", ] @@ -2803,9 +2753,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", @@ -2819,29 +2769,20 @@ checksum = "44a1290799eababa63ea60af0cbc3f03363e328e58f32fb0294798ed3e85f444" [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg 1.1.0", ] [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi 0.1.19", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ + "hermit-abi 0.3.3", "libc", ] @@ -2899,18 +2840,18 @@ dependencies = [ [[package]] name = "object" -version = "0.29.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2926,11 +2867,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.48" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "cfg-if 1.0.0", "foreign-types", "libc", @@ -2941,22 +2882,21 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "openssl-sys" -version = "0.9.83" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ - "autocfg 1.1.0", "cc", "libc", "pkg-config", @@ -2970,7 +2910,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ "dlv-list", - "hashbrown 0.12.1", + "hashbrown 0.12.3", ] [[package]] @@ -2999,7 +2939,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.5", + "parking_lot_core 0.8.6", ] [[package]] @@ -3009,41 +2949,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.3", + "parking_lot_core 0.9.9", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "smallvec", - "windows-sys 0.36.1", + "windows-targets 0.48.5", ] [[package]] name = "paste" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-clean" @@ -3059,9 +2999,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "phf" @@ -3115,9 +3055,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plain" @@ -3136,11 +3076,17 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" @@ -3177,9 +3123,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1106fec09662ec6dd98ccac0f81cef56984d0b49f75c92d8cbad76e20c005c" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -3283,7 +3229,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3313,7 +3259,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3342,11 +3288,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.10", ] [[package]] @@ -3431,26 +3377,22 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.3" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ - "autocfg 1.1.0", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -3464,49 +3406,71 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.5.6" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.26" +name = "regex-automata" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "regex-syntax" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rhai" -version = "1.10.1" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eec3a3db30f591ece18c66b3db4c9fa26f3bce20bc821c50550968361f84333" +checksum = "206cee941730eaf90a22c84235b25193df661393688162e15551164f92f09eca" dependencies = [ - "ahash 0.8.0", - "bitflags 1.3.2", + "ahash 0.8.6", + "bitflags 2.4.1", "instant", "num-traits", + "once_cell", "rhai_codegen", "smallvec", "smartstring", @@ -3514,13 +3478,13 @@ dependencies = [ [[package]] name = "rhai_codegen" -version = "1.4.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36791b0b801159db25130fd46ac726d2751c070260bba3a4a0a3eeb6231bb82a" +checksum = "853977598f084a492323fe2f7896b4100a86284ee8473612de60021ea341310f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] @@ -3550,9 +3514,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -3571,11 +3535,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.14" +version = "0.38.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" +checksum = "67ce50cb2e16c2903e30d1cbccfd8387a74b9d4c938b6a4c5ec6cc7556f7a8a0" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -3584,9 +3548,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -3599,9 +3563,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" @@ -3625,9 +3589,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ "secp256k1-sys", ] @@ -3643,35 +3607,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.10" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -3701,41 +3665,44 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.7", ] [[package]] name = "shlex" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg 1.1.0", +] [[package]] name = "sled" @@ -3755,9 +3722,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.8.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smartstring" @@ -3772,15 +3739,15 @@ dependencies = [ [[package]] name = "snap" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi 0.3.9", @@ -3788,9 +3755,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys 0.48.0", @@ -3822,9 +3789,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" @@ -3848,40 +3815,27 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "tempfile" -version = "3.3.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if 1.0.0", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.48.0", ] [[package]] name = "tentacle" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5dce982ed9b672847c08a1feb56e8976586189d1ee617856a7e97fe3d748a26" +checksum = "6ffbbdb4f54a9605ceda168884efcf5fb24ef655103362af211e6cfe61eff832" dependencies = [ "async-trait", - "bytes 1.1.0", + "bytes 1.5.0", "futures", "igd", "js-sys", @@ -3892,12 +3846,12 @@ dependencies = [ "once_cell", "parking_lot 0.12.1", "rand 0.8.5", - "socket2 0.4.4", + "socket2 0.4.10", "tentacle-multiaddr", "tentacle-secio", "thiserror", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", "tokio-yamux", "wasm-bindgen", "wasm-bindgen-futures", @@ -3906,12 +3860,12 @@ dependencies = [ [[package]] name = "tentacle-multiaddr" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faafcea0d508fc5296ca846ca1f2fcb60d740f53b02e771b407c06ae13e23c90" +checksum = "895b25a7de42f7bba27b011495a4a48ea7f0591c079f59c8fdb07936ca8aa3d1" dependencies = [ "bs58", - "bytes 1.1.0", + "bytes 1.5.0", "serde", "sha2", "unsigned-varint", @@ -3924,7 +3878,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78a41abd9ae459d1f744f59670d8f4e9a25c4597b12b9060740fbd17bf9687fc" dependencies = [ "bs58", - "bytes 1.1.0", + "bytes 1.5.0", "chacha20poly1305", "futures", "hmac", @@ -3939,30 +3893,20 @@ dependencies = [ "secp256k1", "sha2", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", "unsigned-varint", "x25519-dalek", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" -dependencies = [ - "libc", - "winapi 0.3.9", -] - [[package]] name = "textwrap" version = "0.11.0" @@ -3974,29 +3918,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "tikv-jemalloc-ctl" -version = "0.5.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1" +checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" dependencies = [ "libc", "paste", @@ -4005,24 +3949,50 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.2+5.3.0-patched" +version = "0.5.4+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" dependencies = [ "cc", - "fs_extra", "libc", ] [[package]] name = "time" -version = "0.3.14" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ + "deranged", "itoa", - "libc", - "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", ] [[package]] @@ -4036,25 +4006,25 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", - "bytes 1.1.0", + "bytes 1.5.0", "libc", - "mio 0.8.8", + "mio 0.8.9", "num_cpus", "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.4", + "socket2 0.5.5", "tokio-macros", "windows-sys 0.48.0", ] @@ -4072,9 +4042,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.9" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", @@ -4087,7 +4057,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "futures-core", "futures-sink", "log", @@ -4097,11 +4067,11 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "futures-core", "futures-sink", "pin-project-lite", @@ -4111,100 +4081,99 @@ dependencies = [ [[package]] name = "tokio-yamux" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "129b802888b976c5b14aefc5f11d563ed25eaceb74a9e6e03d1d1de50d994cc7" +checksum = "f2ed88a04bfbf9e70343a5748a423200ee0591c55e7e487d784a55ee8af17db9" dependencies = [ - "bytes 1.1.0", + "bytes 1.5.0", "futures", "log", "nohash-hasher", "tokio", - "tokio-util 0.7.9", + "tokio-util 0.7.10", ] [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if 1.0.0", "pin-project-lite", "tracing-core", ] [[package]] name = "tracing-core" -version = "0.1.27" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ubyte" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e29f263341a29bb79e14ad7fda5f63b1c7e48929bad4c685d7876b1d04e94" +checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea" dependencies = [ "serde", ] [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] @@ -4217,21 +4186,15 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" - -[[package]] -name = "unicode-xid" -version = "0.2.3" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", @@ -4239,9 +4202,9 @@ dependencies = [ [[package]] name = "unsigned-varint" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" [[package]] name = "untrusted" @@ -4251,13 +4214,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.2" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", "serde", ] @@ -4288,22 +4250,20 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", - "winapi 0.3.9", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -4313,12 +4273,6 @@ 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.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -4327,9 +4281,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4337,24 +4291,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4364,9 +4318,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4374,28 +4328,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -4403,13 +4357,14 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", ] [[package]] @@ -4448,9 +4403,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi 0.3.9", ] @@ -4463,15 +4418,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows-targets 0.42.2", ] [[package]] @@ -4480,7 +4431,22 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -4489,15 +4455,21 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", + "windows_aarch64_gnullvm 0.48.5", "windows_aarch64_msvc 0.48.5", "windows_i686_gnu 0.48.5", "windows_i686_msvc 0.48.5", "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm", + "windows_x86_64_gnullvm 0.48.5", "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -4506,9 +4478,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" @@ -4518,9 +4490,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" @@ -4530,9 +4502,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" @@ -4542,9 +4514,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" @@ -4552,6 +4524,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -4560,9 +4538,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" @@ -4593,9 +4571,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.4" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "xmltree" @@ -4618,23 +4596,42 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "zerocopy" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ba595b9f2772fbee2312de30eeb80ec773b4cb2f1e8098db024afadda6c06f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772666c41fb6dceaf520b564b962d738a8e1a83b41bd48945f50837aed78bb1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "synstructure", + "syn 2.0.38", ] diff --git a/Cargo.toml b/Cargo.toml index 697591b..1bc9166 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,21 +9,21 @@ homepage = "https://github.com/nervosnetwork/ckb-light-client" repository = "https://github.com/nervosnetwork/ckb-light-client" [dependencies] -ckb-app-config = "0.111.0" -ckb-async-runtime = "0.111.0" -ckb-stop-handler = "0.111.0" -ckb-constant = "0.111.0" -ckb-types = "0.111.0" -ckb-network = "0.111.0" -ckb-jsonrpc-types = "0.111.0" -ckb-error = "0.111.0" -ckb-script = "0.111.0" -ckb-chain-spec = "0.111.0" -ckb-traits = "0.111.0" -ckb-resource = "0.111.0" -ckb-verification = "0.111.0" -ckb-systemtime = "0.111.0" -ckb-hash = "0.111.0" +ckb-app-config = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-async-runtime = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-stop-handler = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-constant = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-types = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-network = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-jsonrpc-types = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-error = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-script = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-chain-spec = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-traits = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-resource = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-verification = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-systemtime = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-hash = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } ckb-merkle-mountain-range = "0.5.1" golomb-coded-set = "0.2.0" rocksdb = { package = "ckb-rocksdb", version ="=0.20.0", features = ["snappy"], default-features = false } @@ -46,11 +46,11 @@ jsonrpc-http-server = "18.0" jsonrpc-server-utils = "18.0" [dev-dependencies] -ckb-launcher = "0.111.0" -ckb-shared = "0.111.0" -ckb-chain = "0.111.0" -ckb-tx-pool = "0.111.0" -ckb-store = "0.111.0" +ckb-launcher = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-shared = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-chain = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-tx-pool = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } +ckb-store = { git = "https://github.com/quake/ckb", branch = "quake/light-client-extension" } tempfile = "3.0" rand = "0.6" serde_json = "1.0" diff --git a/src/protocols/light_client/components/mod.rs b/src/protocols/light_client/components/mod.rs index 361c0e3..f2179c5 100644 --- a/src/protocols/light_client/components/mod.rs +++ b/src/protocols/light_client/components/mod.rs @@ -6,7 +6,7 @@ mod send_transactions_proof; #[cfg(test)] mod tests; -pub(crate) use send_blocks_proof::SendBlocksProofProcess; +pub(crate) use send_blocks_proof::{verify_extra_hash, SendBlocksProofProcess}; pub(crate) use send_last_state::SendLastStateProcess; pub(crate) use send_last_state_proof::{verify_mmr_proof, SendLastStateProofProcess}; pub(crate) use send_transactions_proof::SendTransactionsProofProcess; diff --git a/src/protocols/light_client/components/send_blocks_proof.rs b/src/protocols/light_client/components/send_blocks_proof.rs index f5caae2..f58fa7d 100644 --- a/src/protocols/light_client/components/send_blocks_proof.rs +++ b/src/protocols/light_client/components/send_blocks_proof.rs @@ -1,8 +1,15 @@ use ckb_network::{CKBProtocolContext, PeerIndex, SupportProtocols}; -use ckb_types::{packed, prelude::*, utilities::merkle_mountain_range::VerifiableHeader}; +use ckb_types::{ + core::{ExtraHashView, HeaderView}, + packed, + prelude::*, + utilities::merkle_mountain_range::VerifiableHeader, +}; use log::{debug, error}; use rand::seq::SliceRandom; +use crate::storage::HeaderWithExtension; + use super::{ super::{LightClientProtocol, Status, StatusCode}, verify_mmr_proof, @@ -109,6 +116,29 @@ impl<'a> SendBlocksProofProcess<'a> { // Check PoW for blocks return_if_failed!(self.protocol.check_pow_for_headers(headers.iter())); + // Check extra hash for blocks + let is_v1 = self.message.has_extra_fields() && self.message.count_extra_fields() >= 2; + let extensions = if is_v1 { + let message_v1 = + packed::SendBlocksProofV1Reader::new_unchecked(self.message.as_slice()); + let uncle_hashes: Vec<_> = message_v1 + .blocks_uncles_hash() + .iter() + .map(|uncle_hashes| uncle_hashes.to_entity()) + .collect(); + + let extensions: Vec<_> = message_v1 + .blocks_extension() + .iter() + .map(|extension| extension.to_entity().to_opt()) + .collect(); + + return_if_failed!(verify_extra_hash(&headers, &uncle_hashes, &extensions)); + extensions + } else { + vec![None; headers.len()] + }; + // Verify the proof return_if_failed!(verify_mmr_proof( self.protocol.mmr_activated_epoch(), @@ -184,9 +214,14 @@ impl<'a> SendBlocksProofProcess<'a> { } } - for header in headers { - if self.protocol.peers().add_header(&header.hash()) { - self.protocol.storage().add_fetched_header(&header.data()); + for (header, extension) in headers.into_iter().zip(extensions.into_iter()) { + if self.protocol.peers().remove_fetching_header(&header.hash()) { + self.protocol + .storage() + .add_fetched_header(&HeaderWithExtension { + header: header.data(), + extension, + }); } } } @@ -196,3 +231,31 @@ impl<'a> SendBlocksProofProcess<'a> { Status::ok() } } + +pub(crate) fn verify_extra_hash( + headers: &[HeaderView], + uncle_hashes: &[packed::Byte32], + extensions: &[Option], +) -> Result<(), Status> { + if headers.len() != uncle_hashes.len() || headers.len() != extensions.len() { + return Err(StatusCode::InvalidProof.into()); + } + + for ((header, uncle_hash), extension) in headers + .iter() + .zip(uncle_hashes.iter()) + .zip(extensions.iter()) + { + let expected_extension_hash = extension + .as_ref() + .map(|extension| extension.calc_raw_data_hash()); + let extra_hash_view = ExtraHashView::new(uncle_hash.clone(), expected_extension_hash); + let expected_extra_hash = extra_hash_view.extra_hash(); + let actual_extra_hash = header.extra_hash(); + if expected_extra_hash != actual_extra_hash { + return Err(StatusCode::InvalidProof.into()); + } + } + + Ok(()) +} diff --git a/src/protocols/light_client/components/send_transactions_proof.rs b/src/protocols/light_client/components/send_transactions_proof.rs index 3b4b2ee..b3552ff 100644 --- a/src/protocols/light_client/components/send_transactions_proof.rs +++ b/src/protocols/light_client/components/send_transactions_proof.rs @@ -6,6 +6,8 @@ use ckb_types::{ }; use log::{debug, error}; +use crate::{protocols::light_client::components::verify_extra_hash, storage::HeaderWithExtension}; + use super::{ super::{LightClientProtocol, Status, StatusCode}, verify_mmr_proof, @@ -116,6 +118,29 @@ impl<'a> SendTransactionsProofProcess<'a> { // Check PoW for blocks return_if_failed!(self.protocol.check_pow_for_headers(headers.iter())); + // Check extra hash for blocks + let is_v1 = self.message.has_extra_fields() && self.message.count_extra_fields() >= 2; + let extensions = if is_v1 { + let message_v1 = + packed::SendTransactionsProofV1Reader::new_unchecked(self.message.as_slice()); + let uncle_hashes: Vec<_> = message_v1 + .blocks_uncles_hash() + .iter() + .map(|uncle_hashes| uncle_hashes.to_entity()) + .collect(); + + let extensions: Vec<_> = message_v1 + .blocks_extension() + .iter() + .map(|extension| extension.to_entity().to_opt()) + .collect(); + + return_if_failed!(verify_extra_hash(&headers, &uncle_hashes, &extensions)); + extensions + } else { + vec![None; headers.len()] + }; + // Verify the proof return_if_failed!(verify_mmr_proof( self.protocol.mmr_activated_epoch(), @@ -155,15 +180,21 @@ impl<'a> SendTransactionsProofProcess<'a> { } debug!("verify SendBlocksProof ok"); - for filtered_block in filtered_blocks { + for (filtered_block, extension) in filtered_blocks.into_iter().zip(extensions.iter()) { let header = filtered_block.header().into_view(); for tx in filtered_block.transactions() { if self .protocol .peers() - .add_transaction(&tx.calc_tx_hash(), &header.hash()) + .remove_fetching_transaction(&tx.calc_tx_hash(), &header.hash()) { - self.protocol.storage().add_fetched_tx(&tx, &header.data()); + self.protocol.storage().add_fetched_tx( + &tx, + &HeaderWithExtension { + header: header.data(), + extension: extension.as_ref().cloned(), + }, + ); } } } diff --git a/src/protocols/light_client/mod.rs b/src/protocols/light_client/mod.rs index 830b646..f2e84c0 100644 --- a/src/protocols/light_client/mod.rs +++ b/src/protocols/light_client/mod.rs @@ -108,7 +108,7 @@ impl CKBProtocolHandler for LightClientProtocol { peer_index: PeerIndex, data: Bytes, ) { - let msg = match packed::LightClientMessageReader::from_slice(&data) { + let msg = match packed::LightClientMessageReader::from_compatible_slice(&data) { Ok(msg) => msg.to_enum(), _ => { warn!( @@ -715,7 +715,7 @@ impl LightClientProtocol { let now = unix_time_as_millis(); let last_hash = tip_header.calc_header_hash(); - for block_hashes_all in self + for block_hashes in self .peers .get_headers_to_fetch() .chunks(GET_BLOCKS_PROOF_LIMIT) @@ -727,21 +727,9 @@ impl LightClientProtocol { .unwrap_or(false) }) { debug!("send block proof request to peer: {}", peer_index); - let mut block_hashes = Vec::with_capacity(block_hashes_all.len()); - for block_hash in block_hashes_all { - if block_hash == &last_hash { - debug!("remove tip hash from block proof request {:#x}", last_hash); - if self.peers().add_header(&last_hash) { - debug!("fetching tip header, immediately add tip header to storage"); - self.storage().add_fetched_header(&tip_header); - } - } else { - block_hashes.push(block_hash.clone()); - } - } if !block_hashes.is_empty() { let content = packed::GetBlocksProof::new_builder() - .block_hashes(block_hashes.clone().pack()) + .block_hashes(block_hashes.to_vec().pack()) .last_hash(last_hash.clone()) .build(); let message = packed::LightClientMessage::new_builder() diff --git a/src/protocols/light_client/peers.rs b/src/protocols/light_client/peers.rs index 8cc6072..ebe852a 100644 --- a/src/protocols/light_client/peers.rs +++ b/src/protocols/light_client/peers.rs @@ -1350,13 +1350,17 @@ impl Peers { }) } - pub(crate) fn add_header(&self, block_hash: &Byte32) -> bool { + pub(crate) fn remove_fetching_header(&self, block_hash: &Byte32) -> bool { self.fetching_headers.remove(block_hash).is_some() } - pub(crate) fn add_transaction(&self, tx_hash: &Byte32, block_hash: &Byte32) -> bool { + pub(crate) fn remove_fetching_transaction( + &self, + tx_hash: &Byte32, + block_hash: &Byte32, + ) -> bool { if self.fetching_txs.remove(tx_hash).is_some() { - self.add_header(block_hash); + self.remove_fetching_header(block_hash); true } else { false diff --git a/src/service.rs b/src/service.rs index 42f2321..f59a092 100644 --- a/src/service.rs +++ b/src/service.rs @@ -1267,13 +1267,8 @@ impl ChainRpc for ChainRpcImpl { } fn fetch_header(&self, block_hash: H256) -> Result> { - if let Some(value) = self.get_header(block_hash.clone())? { - if self.swc.storage().get_header(&block_hash.pack()).is_none() { - self.swc - .storage() - .add_fetched_header(&value.inner.clone().into()); - } - return Ok(FetchStatus::Fetched { data: value }); + if let Some(value) = self.swc.storage().get_header(&block_hash.pack()) { + return Ok(FetchStatus::Fetched { data: value.into() }); } let now = unix_time_as_millis(); if let Some((added_ts, first_sent, missing)) = self.swc.get_header_fetch_info(&block_hash) { diff --git a/src/storage.rs b/src/storage.rs index 19c1afb..ad4122f 100644 --- a/src/storage.rs +++ b/src/storage.rs @@ -33,6 +33,21 @@ const MIN_FILTERED_BLOCK_NUMBER: &str = "MIN_FILTERED_NUMBER"; const LAST_N_HEADERS_KEY: &str = "LAST_N_HEADERS"; const MAX_CHECK_POINT_INDEX: &str = "MAX_CHECK_POINT_INDEX"; +pub struct HeaderWithExtension { + pub header: Header, + pub extension: Option, +} + +impl HeaderWithExtension { + fn to_vec(&self) -> Vec { + let mut vec = self.header.as_slice().to_vec(); + if let Some(extension) = self.extension.as_ref() { + vec.extend_from_slice(extension.as_slice()); + } + vec + } +} + pub struct ScriptStatus { pub script: Script, pub script_type: ScriptType, @@ -508,26 +523,27 @@ impl Storage { self.get_matched_blocks(Direction::Reverse) } - pub fn add_fetched_header(&self, header: &Header) { + pub fn add_fetched_header(&self, hwe: &HeaderWithExtension) { let mut batch = self.batch(); - let block_hash = header.calc_header_hash(); + let block_hash = hwe.header.calc_header_hash(); batch - .put(Key::BlockHash(&block_hash).into_vec(), header.as_slice()) + .put(Key::BlockHash(&block_hash).into_vec(), hwe.to_vec()) .expect("batch put should be ok"); batch .put( - Key::BlockNumber(header.raw().number().unpack()).into_vec(), + Key::BlockNumber(hwe.header.raw().number().unpack()).into_vec(), block_hash.as_slice(), ) .expect("batch put should be ok"); batch.commit().expect("batch commit should be ok"); } - pub fn add_fetched_tx(&self, tx: &Transaction, header: &Header) { + + pub fn add_fetched_tx(&self, tx: &Transaction, hwe: &HeaderWithExtension) { let mut batch = self.batch(); - let block_hash = header.calc_header_hash(); - let block_number: u64 = header.raw().number().unpack(); + let block_hash = hwe.header.calc_header_hash(); + let block_number: u64 = hwe.header.raw().number().unpack(); batch - .put(Key::BlockHash(&block_hash).into_vec(), header.as_slice()) + .put(Key::BlockHash(&block_hash).into_vec(), hwe.to_vec()) .expect("batch put should be ok"); batch .put( @@ -1085,7 +1101,13 @@ impl CellDataProvider for Storage { impl HeaderProvider for Storage { fn get_header(&self, hash: &Byte32) -> Option { self.get(Key::BlockHash(hash).into_vec()) - .map(|v| v.map(|v| Header::from_slice(&v).expect("stored Header").into_view())) + .map(|v| { + v.map(|v| { + Header::from_slice(&v[..Header::TOTAL_SIZE]) + .expect("stored Header") + .into_view() + }) + }) .expect("db get should be ok") } } @@ -1167,8 +1189,23 @@ impl CellProvider for StorageWithChainData { } impl ExtensionProvider for StorageWithChainData { - fn get_block_extension(&self, _hash: &Byte32) -> Option { - todo!("New feature in CKB2023, introduced from \"RFC 0050: VM Syscalls 3\"") + fn get_block_extension(&self, hash: &Byte32) -> Option { + self.storage + .get(Key::BlockHash(hash).into_vec()) + .map(|v| { + v.map(|v| { + if v.len() > Header::TOTAL_SIZE { + Some( + packed::Bytes::from_slice(&v[Header::TOTAL_SIZE..]) + .expect("stored block extension"), + ) + } else { + None + } + }) + }) + .expect("db get should be ok") + .flatten() } } @@ -1216,7 +1253,7 @@ pub enum CellType { /// | 64 | CellTypeScript | TxHash | /// | 96 | TxLockScript | TxHash | /// | 128 | TxTypeScript | TxHash | -/// | 160 | BlockHash | Header | +/// | 160 | BlockHash | HeaderWithExtension | /// | 192 | BlockNumber | BlockHash | /// | 208 | CheckPointIndex | BlockFilterHash | /// | 224 | Meta | Meta | @@ -1238,7 +1275,7 @@ pub enum Key<'a> { pub enum Value<'a> { Transaction(BlockNumber, TxIndex, &'a Transaction), TxHash(&'a Byte32), - Header(&'a Header), + HeaderWithExtension(&'a HeaderWithExtension), BlockHash(&'a Byte32), BlockFilterHash(&'a Byte32), Meta(Vec), @@ -1328,7 +1365,7 @@ impl<'a> From> for Vec { encoded } Value::TxHash(tx_hash) => tx_hash.as_slice().into(), - Value::Header(header) => header.as_slice().into(), + Value::HeaderWithExtension(hwe) => hwe.to_vec(), Value::BlockHash(block_hash) => block_hash.as_slice().into(), Value::BlockFilterHash(block_filter_hash) => block_filter_hash.as_slice().into(), Value::Meta(meta_value) => meta_value, diff --git a/src/tests/service.rs b/src/tests/service.rs index 2217adb..533ac3f 100644 --- a/src/tests/service.rs +++ b/src/tests/service.rs @@ -20,7 +20,7 @@ use crate::{ ScriptStatus, ScriptType, SearchKey, SearchKeyFilter, SetScriptsCommand, Status, TransactionRpc, TransactionRpcImpl, TransactionWithStatus, TxStatus, }, - storage::{self, StorageWithChainData}, + storage::{self, HeaderWithExtension, StorageWithChainData}, tests::utils::{create_peers, new_storage}, }; @@ -726,8 +726,13 @@ fn rpc() { .into_iter() .map(|nonce| { let header = Header::new_builder().nonce(nonce.pack()).build(); - storage.add_fetched_header(&header); - header.calc_header_hash().unpack() + let hash = header.calc_header_hash().unpack(); + let extension = (nonce + 1).to_le_bytes().to_vec().pack(); + storage.add_fetched_header(&HeaderWithExtension { + header: header, + extension: Some(extension), + }); + hash }) .collect(); @@ -943,7 +948,13 @@ fn rpc() { let tx = TransactionBuilder::default() .header_dep(header_dep.pack()) .build(); - storage.add_fetched_tx(&tx.data(), &Header::default()); + storage.add_fetched_tx( + &tx.data(), + &&HeaderWithExtension { + header: Header::default(), + extension: None, + }, + ); tx.hash().unpack() }) .collect();