From f43928818135e42fd2d633591c91f6584f230808 Mon Sep 17 00:00:00 2001 From: Mitchell Turner Date: Wed, 20 Sep 2023 23:00:32 +0100 Subject: [PATCH 1/4] Add query and handling for `MessageStatus` (#1371) The bridge UI requires an client endpoint for querying the status of a specific `Message`, whether it has been spent or not. An additional variant is added for unknown messages, i.e. messages that can't be found in the DB. --------- Co-authored-by: Green Baneling (cherry picked from commit c6b0df7b6d6f4c5574a442639ed86865d63cb8f4) --- Cargo.lock | 856 +++++++++--------- Cargo.toml | 46 +- crates/client/assets/schema.sdl | 11 + crates/client/src/client.rs | 27 +- crates/client/src/client/schema/message.rs | 31 + crates/client/src/client/types/message.rs | 17 + crates/fuel-core/src/database/block.rs | 3 +- crates/fuel-core/src/database/message.rs | 8 +- crates/fuel-core/src/executor.rs | 10 +- crates/fuel-core/src/graphql_api/ports.rs | 4 + crates/fuel-core/src/query/message.rs | 15 + crates/fuel-core/src/schema/message.rs | 37 + .../src/service/adapters/graphql_api.rs | 8 + crates/types/src/entities/message.rs | 39 + deployment/charts/Chart.yaml | 2 +- tests/tests/messages.rs | 111 ++- 16 files changed, 770 insertions(+), 455 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73f324fe4b9..5804a0f5968 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -162,19 +162,13 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "anes" version = "0.1.6" @@ -183,24 +177,23 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" [[package]] name = "anstyle-parse" @@ -222,9 +215,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -232,9 +225,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arc-swap" @@ -342,7 +335,7 @@ dependencies = [ "anstyle", "bstr", "doc-comment", - "predicates 3.0.3", + "predicates 3.0.4", "predicates-core", "predicates-tree", "wait-timeout", @@ -375,7 +368,7 @@ dependencies = [ "multer", "num-traits", "once_cell", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "regex", "serde", "serde_json", @@ -449,9 +442,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", ] @@ -464,7 +457,7 @@ checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", ] [[package]] @@ -475,18 +468,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -510,7 +503,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", ] [[package]] @@ -577,7 +570,7 @@ dependencies = [ "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "serde", "serde_json", "serde_urlencoded", @@ -607,9 +600,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -668,9 +661,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64ct" @@ -711,13 +704,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.12", + "prettyplease 0.2.15", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -743,9 +736,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitvec" @@ -844,26 +837,33 @@ name = "bs58" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" dependencies = [ - "sha2 0.9.9", + "sha2 0.10.7", + "tinyvec", ] [[package]] name = "bstr" -version = "1.6.0" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a" dependencies = [ "memchr", - "regex-automata 0.3.6", + "regex-automata 0.3.8", "serde", ] [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -885,9 +885,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -943,9 +943,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", "libc", @@ -1004,11 +1004,10 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "android-tzdata", "num-traits", ] @@ -1080,20 +1079,19 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.21" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" +checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.3.21" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" +checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56" dependencies = [ "anstream", "anstyle", @@ -1103,21 +1101,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.3.12" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "cobs" @@ -1132,7 +1130,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "634c509653de24b439672164bbf56f5f582a2ab0e313d3b0f6af0b7345cf2560" dependencies = [ "bincode", - "bs58", + "bs58 0.4.0", "coins-core 0.7.0", "digest 0.10.7", "getrandom 0.2.10", @@ -1146,18 +1144,15 @@ dependencies = [ [[package]] name = "coins-bip32" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30a84aab436fcb256a2ab3c80663d8aec686e6bae12827bb05fef3e1e439c9f" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" dependencies = [ - "bincode", - "bs58", - "coins-core 0.8.3", + "bs58 0.5.0", + "coins-core 0.8.7", "digest 0.10.7", - "getrandom 0.2.10", "hmac 0.12.1", "k256 0.13.1", - "lazy_static", "serde", "sha2 0.10.7", "thiserror", @@ -1182,13 +1177,12 @@ dependencies = [ [[package]] name = "coins-bip39" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f4d04ee18e58356accd644896aeb2094ddeafb6a713e056cef0c0a8e468c15" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ - "bitvec 0.17.4", - "coins-bip32 0.8.3", - "getrandom 0.2.10", + "bitvec 1.0.1", + "coins-bip32 0.8.7", "hmac 0.12.1", "once_cell", "pbkdf2 0.12.2", @@ -1220,13 +1214,13 @@ dependencies = [ [[package]] name = "coins-core" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b949a1c63fb7eb591eb7ba438746326aedf0ae843e51ec92ba6bec5bb382c4f" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "base64 0.21.2", - "bech32 0.7.3", - "bs58", + "base64 0.21.4", + "bech32 0.9.1", + "bs58 0.5.0", "digest 0.10.7", "generic-array 0.14.7", "hex", @@ -1427,7 +1421,7 @@ dependencies = [ "criterion-plot", "futures", "is-terminal", - "itertools", + "itertools 0.10.5", "num-traits", "once_cell", "oorandom", @@ -1449,7 +1443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] @@ -1521,9 +1515,9 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", @@ -1601,11 +1595,11 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" +checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf" dependencies = [ - "nix 0.26.2", + "nix 0.27.1", "windows-sys 0.48.0", ] @@ -1624,18 +1618,32 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.1" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", "fiat-crypto", - "packed_simd_2", "platforms", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "cynic" version = "2.2.8" @@ -1823,9 +1831,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" [[package]] name = "derivative" @@ -1946,7 +1954,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2008,6 +2016,16 @@ dependencies = [ "signature 1.6.4", ] +[[package]] +name = "ed25519" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +dependencies = [ + "pkcs8 0.10.2", + "signature 2.1.0", +] + [[package]] name = "ed25519-dalek" version = "1.0.1" @@ -2015,13 +2033,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ "curve25519-dalek 3.2.0", - "ed25519", + "ed25519 1.5.3", "rand 0.7.3", "serde", "sha2 0.9.9", "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek 4.1.1", + "ed25519 2.2.2", + "rand_core 0.6.4", + "serde", + "sha2 0.10.7", + "zeroize", +] + [[package]] name = "either" version = "1.9.0" @@ -2057,7 +2089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct 0.2.0", - "crypto-bigint 0.5.2", + "crypto-bigint 0.5.3", "digest 0.10.7", "ff 0.13.0", "generic-array 0.14.7", @@ -2077,9 +2109,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] @@ -2113,7 +2145,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2124,9 +2156,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", @@ -2430,9 +2462,9 @@ dependencies = [ [[package]] name = "ethnum" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" +checksum = "6c8ff382b2fa527fb7fb06eeebfc5bbb3f17e3cc6b9d70b006c41daa8824adac" [[package]] name = "event-listener" @@ -2508,9 +2540,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.20" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" +checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" [[package]] name = "fixed-hash" @@ -2532,9 +2564,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "libz-sys", @@ -2573,9 +2605,9 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "fuel-asm" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963759585e53c7d61414192640b2f9273d5f0251182206a80a78e3a136779a01" +checksum = "77ac38b692cf1d259c4576e96969ddc1b21880f3059744a730d1677b6f9fd4df" dependencies = [ "bitflags 1.3.2", "serde", @@ -2584,7 +2616,7 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "assert_matches", @@ -2613,7 +2645,7 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", "mockall", "parking_lot 0.12.1", "postcard", @@ -2657,7 +2689,7 @@ dependencies = [ [[package]] name = "fuel-core-bft" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "parking_lot 0.12.1", @@ -2666,7 +2698,7 @@ dependencies = [ [[package]] name = "fuel-core-bin" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "clap", @@ -2686,7 +2718,7 @@ dependencies = [ [[package]] name = "fuel-core-chain-config" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "bech32 0.9.1", @@ -2694,7 +2726,7 @@ dependencies = [ "fuel-core-types", "hex", "insta", - "itertools", + "itertools 0.10.5", "postcard", "rand 0.8.5", "serde", @@ -2705,7 +2737,7 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "cynic", @@ -2716,7 +2748,7 @@ dependencies = [ "hex", "hyper-rustls 0.24.1", "insta", - "itertools", + "itertools 0.10.5", "reqwest", "schemafy_lib", "serde", @@ -2728,7 +2760,7 @@ dependencies = [ [[package]] name = "fuel-core-client-bin" -version = "0.20.4" +version = "0.20.5" dependencies = [ "clap", "fuel-core-client", @@ -2739,7 +2771,7 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -2751,7 +2783,7 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "fuel-core-storage", @@ -2762,7 +2794,7 @@ dependencies = [ [[package]] name = "fuel-core-e2e-client" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "assert_cmd", @@ -2787,7 +2819,7 @@ dependencies = [ [[package]] name = "fuel-core-executor" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -2798,7 +2830,7 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "fuel-core-storage", @@ -2813,7 +2845,7 @@ dependencies = [ [[package]] name = "fuel-core-keygen" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "clap", @@ -2824,12 +2856,12 @@ dependencies = [ [[package]] name = "fuel-core-metrics" -version = "0.20.4" +version = "0.20.5" dependencies = [ "axum", "lazy_static", "once_cell", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "prometheus-client 0.18.1", "prometheus-client 0.20.0", "tokio", @@ -2838,7 +2870,7 @@ dependencies = [ [[package]] name = "fuel-core-p2p" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -2881,7 +2913,7 @@ dependencies = [ [[package]] name = "fuel-core-poa" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -2899,7 +2931,7 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -2916,7 +2948,7 @@ dependencies = [ [[package]] name = "fuel-core-relayer" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -2944,7 +2976,7 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -2958,7 +2990,7 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "fuel-core-types", @@ -2969,7 +3001,7 @@ dependencies = [ [[package]] name = "fuel-core-sync" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -3003,7 +3035,7 @@ dependencies = [ "futures", "hyper", "insta", - "itertools", + "itertools 0.10.5", "rand 0.8.5", "reqwest", "rstest", @@ -3015,7 +3047,7 @@ dependencies = [ [[package]] name = "fuel-core-trace" -version = "0.20.4" +version = "0.20.5" dependencies = [ "ctor", "tracing", @@ -3025,7 +3057,7 @@ dependencies = [ [[package]] name = "fuel-core-txpool" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "async-trait", @@ -3037,7 +3069,7 @@ dependencies = [ "fuel-core-txpool", "fuel-core-types", "futures", - "itertools", + "itertools 0.10.5", "mockall", "parking_lot 0.12.1", "proptest", @@ -3051,7 +3083,7 @@ dependencies = [ [[package]] name = "fuel-core-types" -version = "0.20.4" +version = "0.20.5" dependencies = [ "anyhow", "derive_more", @@ -3065,15 +3097,15 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6df23e90c199a1f9065c3eccf3ff728a350aa1315463e64f333c2d09eebe93d" +checksum = "d2b934310e10a975ae3698c54e973125345c5f77a246bb8700e1658d8c4d12cf" dependencies = [ "borrown", - "coins-bip32 0.8.3", - "coins-bip39 0.8.6", + "coins-bip32 0.8.7", + "coins-bip39 0.8.7", "ecdsa 0.16.8", - "ed25519-dalek", + "ed25519-dalek 2.0.0", "fuel-types", "lazy_static", "p256 0.13.2", @@ -3086,9 +3118,9 @@ dependencies = [ [[package]] name = "fuel-merkle" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe8ab03692e51c450a47626dadc67bca661d30a8352b5b7dc5aa9581ba9d086" +checksum = "8d9ccc8b3db24d152e88b84709c151f0b647bb213ec8fa10303ab6d55bc6e39b" dependencies = [ "digest 0.10.7", "fuel-storage", @@ -3100,22 +3132,22 @@ dependencies = [ [[package]] name = "fuel-storage" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69052611a71461e5bdd185fafb0de742bdf89ddc593171d5205bd3b573eff204" +checksum = "ae188b019be59dea7f6a036c46daca5de8414906df1bfb0009dd379810d1976d" [[package]] name = "fuel-tx" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba629775e5208ac4fffd038c946e3062ba5101fdd15c8d8aece0572b99db0d5d" +checksum = "c55b1cdcad2b54eefed5c695b8408cfc82002ea3a7529114bf6917164f757a00" dependencies = [ "derivative", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", + "itertools 0.10.5", "num-integer", "rand 0.8.5", "serde", @@ -3126,9 +3158,9 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4630e5964cd81014fb62546841dea960e638430f1bd9ae4a15a352b340e89a6b" +checksum = "3d467a3b9deae49d7b4272b4a191b0e4b87c6ed9030a846c2d0d2c6394772832" dependencies = [ "hex", "rand 0.8.5", @@ -3137,9 +3169,9 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.35.3" +version = "0.35.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f395d19685463847192c174089766e89d9c279005d44adebf85f5586986c2904" +checksum = "781255b35b145fc39a136abfaeec15bc4556b8dbee37610d6b3eb8abe29d378b" dependencies = [ "anyhow", "async-trait", @@ -3152,7 +3184,7 @@ dependencies = [ "fuel-storage", "fuel-tx", "fuel-types", - "itertools", + "itertools 0.10.5", "paste", "primitive-types", "rand 0.8.5", @@ -3228,7 +3260,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "waker-fn", ] @@ -3250,7 +3282,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -3260,8 +3292,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", - "rustls 0.20.8", - "webpki 0.22.0", + "rustls 0.20.9", + "webpki 0.22.1", ] [[package]] @@ -3295,7 +3327,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "pin-utils", "slab", ] @@ -3375,9 +3407,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" @@ -3419,9 +3451,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -3506,9 +3538,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -3574,6 +3606,15 @@ dependencies = [ "hmac 0.8.1", ] +[[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 = "hostname" version = "0.3.1" @@ -3604,7 +3645,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", ] [[package]] @@ -3621,9 +3662,9 @@ 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" @@ -3657,7 +3698,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "socket2 0.4.9", "tokio", "tower-service", @@ -3692,7 +3733,7 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.21.6", + "rustls 0.21.7", "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", @@ -3706,7 +3747,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ "hyper", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tokio", "tokio-io-timeout", ] @@ -3853,9 +3894,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.31.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0770b0a3d4c70567f0d58331f3088b0e4c4f56c9b8d764efe654b4a5d46de3a" +checksum = "a3e02c584f4595792d09509a94cdb92a3cef7592b1eb2d9877ee6f527062d0ea" dependencies = [ "console", "lazy_static", @@ -3918,10 +3959,10 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.3", + "socket2 0.5.4", "widestring", "windows-sys 0.48.0", - "winreg 0.50.0", + "winreg", ] [[package]] @@ -3937,7 +3978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.7", + "rustix 0.38.14", "windows-sys 0.48.0", ] @@ -3950,6 +3991,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -4024,9 +4074,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libloading" @@ -4038,12 +4088,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - [[package]] name = "libm" version = "0.2.7" @@ -4090,8 +4134,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" dependencies = [ "asn1_der", - "bs58", - "ed25519-dalek", + "bs58 0.4.0", + "ed25519-dalek 1.0.1", "either", "fnv", "futures", @@ -4213,12 +4257,12 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" +checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ - "bs58", - "ed25519-dalek", + "bs58 0.4.0", + "ed25519-dalek 2.0.0", "log", "multiaddr 0.17.1", "multihash 0.17.0", @@ -4372,7 +4416,7 @@ dependencies = [ "parking_lot 0.12.1", "quinn-proto", "rand 0.8.5", - "rustls 0.20.8", + "rustls 0.20.9", "thiserror", "tokio", ] @@ -4456,9 +4500,9 @@ dependencies = [ "libp2p-identity", "rcgen 0.10.0", "ring", - "rustls 0.20.8", + "rustls 0.20.9", "thiserror", - "webpki 0.22.0", + "webpki 0.22.1", "x509-parser 0.14.0", "yasna", ] @@ -4627,9 +4671,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" [[package]] name = "lock_api" @@ -4643,9 +4687,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lru" @@ -4713,9 +4757,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memoffset" @@ -5000,14 +5044,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "cfg-if", "libc", - "static_assertions", ] [[package]] @@ -5044,9 +5087,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -5070,7 +5113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", - "libm 0.2.7", + "libm", ] [[package]] @@ -5085,9 +5128,9 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -5205,21 +5248,11 @@ dependencies = [ "sha2 0.10.7", ] -[[package]] -name = "packed_simd_2" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" -dependencies = [ - "cfg-if", - "libm 0.1.4", -] - [[package]] name = "parity-scale-codec" -version = "3.6.4" +version = "3.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8e946cc0cc711189c0b0249fb8b599cbeeab9784d83c415719368bb8d4ac64" +checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" dependencies = [ "arrayvec", "bitvec 1.0.1", @@ -5231,9 +5264,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.4" +version = "3.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a296c3079b5fefbc499e1de58dc26c09b1b9a5952d26694ee89f04a43ebbb3e" +checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5292,7 +5325,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -5366,22 +5399,23 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.2" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 1.9.3", + "indexmap 2.0.0", ] [[package]] @@ -5411,7 +5445,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -5422,9 +5456,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -5460,9 +5494,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "platforms" -version = "3.0.2" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" +checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" [[package]] name = "plotters" @@ -5504,7 +5538,7 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "windows-sys 0.48.0", ] @@ -5545,9 +5579,9 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ee729232311d3cd113749948b689627618133b1c5012b77342c1950b25eaeb" +checksum = "d534c6e61df1c7166e636ca612d9820d486fe96ddad37f7abc671517b297488e" dependencies = [ "cobs", "heapless", @@ -5568,7 +5602,7 @@ checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ "difflib", "float-cmp", - "itertools", + "itertools 0.10.5", "normalize-line-endings", "predicates-core", "regex", @@ -5576,13 +5610,13 @@ dependencies = [ [[package]] name = "predicates" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" +checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" dependencies = [ "anstyle", "difflib", - "itertools", + "itertools 0.11.0", "predicates-core", ] @@ -5614,12 +5648,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -5681,9 +5715,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] @@ -5714,13 +5748,13 @@ dependencies = [ [[package]] name = "prometheus-client-derive-encode" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] @@ -5772,7 +5806,7 @@ checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", - "itertools", + "itertools 0.10.5", "lazy_static", "log", "multimap", @@ -5806,7 +5840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", @@ -5878,27 +5912,27 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31999cfc7927c4e212e60fd50934ab40e8e8bfd2d493d6095d2d306bc0764d9" +checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989" dependencies = [ "bytes", "rand 0.8.5", "ring", "rustc-hash", - "rustls 0.20.8", + "rustls 0.20.9", "slab", "thiserror", "tinyvec", "tracing", - "webpki 0.22.0", + "webpki 0.22.1", ] [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -5997,9 +6031,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -6007,14 +6041,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -6073,14 +6105,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.3" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.6", - "regex-syntax 0.7.4", + "regex-automata 0.3.8", + "regex-syntax 0.7.5", ] [[package]] @@ -6094,13 +6126,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", ] [[package]] @@ -6111,17 +6143,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "bytes", "cookie", "cookie_store", @@ -6139,8 +6171,8 @@ dependencies = [ "mime", "once_cell", "percent-encoding", - "pin-project-lite 0.2.12", - "rustls 0.21.6", + "pin-project-lite 0.2.13", + "rustls 0.21.7", "rustls-pemfile", "serde", "serde_json", @@ -6152,8 +6184,8 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.22.6", - "winreg 0.10.1", + "webpki-roots 0.25.2", + "winreg", ] [[package]] @@ -6359,14 +6391,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.7" +version = "0.38.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.5", + "linux-raw-sys 0.4.7", "windows-sys 0.48.0", ] @@ -6385,25 +6417,25 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", "ring", "sct 0.7.0", - "webpki 0.22.0", + "webpki 0.22.1", ] [[package]] name = "rustls" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", - "rustls-webpki 0.101.3", + "rustls-webpki 0.101.5", "sct 0.7.0", ] @@ -6437,14 +6469,14 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", ] [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.100.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" dependencies = [ "ring", "untrusted", @@ -6452,9 +6484,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.3" +version = "0.101.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0" +checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" dependencies = [ "ring", "untrusted", @@ -6718,9 +6750,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.183" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] @@ -6737,20 +6769,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -6896,9 +6928,9 @@ dependencies = [ [[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" @@ -6937,29 +6969,29 @@ checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "snow" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" +checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-rc.1", + "curve25519-dalek 4.1.1", "rand_core 0.6.4", "ring", "rustc_version", @@ -6979,9 +7011,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" dependencies = [ "libc", "windows-sys 0.48.0", @@ -7065,7 +7097,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -7076,7 +7108,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -7148,9 +7180,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -7213,22 +7245,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.7", + "rustix 0.38.14", "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] @@ -7270,27 +7302,27 @@ dependencies = [ "proc-macro2", "quote", "structmeta", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -7334,9 +7366,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" dependencies = [ "deranged", "itoa", @@ -7353,9 +7385,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" dependencies = [ "time-core", ] @@ -7396,9 +7428,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.30.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3ce25f50619af8b0aec2eb23deebe84249e19e2ddd393a6e16e3300a6dadfd" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ "backtrace", "bytes", @@ -7406,9 +7438,9 @@ dependencies = [ "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.4", "tokio-macros", "windows-sys 0.48.0", ] @@ -7419,7 +7451,7 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tokio", ] @@ -7431,7 +7463,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -7461,9 +7493,9 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.8", + "rustls 0.20.9", "tokio", - "webpki 0.22.0", + "webpki 0.22.1", ] [[package]] @@ -7472,7 +7504,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.6", + "rustls 0.21.7", "tokio", ] @@ -7483,7 +7515,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tokio", "tokio-util", ] @@ -7496,25 +7528,25 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "rustls 0.20.8", + "rustls 0.20.9", "tokio", "tokio-rustls 0.23.4", "tungstenite", - "webpki 0.22.0", + "webpki 0.22.1", "webpki-roots 0.22.6", ] [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tokio", "tracing", ] @@ -7537,7 +7569,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tokio", "tower-layer", "tower-service", @@ -7557,7 +7589,7 @@ dependencies = [ "http", "http-body", "http-range-header", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tower", "tower-layer", "tower-service", @@ -7584,7 +7616,7 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", - "pin-project-lite 0.2.12", + "pin-project-lite 0.2.13", "tracing-attributes", "tracing-core", ] @@ -7608,7 +7640,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -7740,12 +7772,12 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.20.8", + "rustls 0.20.9", "sha-1 0.10.1", "thiserror", "url", "utf-8", - "webpki 0.22.0", + "webpki 0.22.1", ] [[package]] @@ -7769,9 +7801,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -7805,9 +7837,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -7867,9 +7899,9 @@ checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" [[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" dependencies = [ "asynchronous-codec", "bytes", @@ -7885,9 +7917,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna 0.4.0", @@ -7975,9 +8007,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -8025,7 +8057,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-shared", ] @@ -8059,7 +8091,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8107,9 +8139,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e" dependencies = [ "ring", "untrusted", @@ -8121,7 +8153,7 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki 0.22.0", + "webpki 0.22.1", ] [[package]] @@ -8130,9 +8162,15 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "rustls-webpki 0.100.1", + "rustls-webpki 0.100.3", ] +[[package]] +name = "webpki-roots" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" + [[package]] name = "webrtc" version = "0.6.0" @@ -8191,9 +8229,9 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" +checksum = "c4a00f4242f2db33307347bd5be53263c52a0331c96c14292118c9a6bb48d267" dependencies = [ "aes 0.6.0", "aes-gcm 0.10.2", @@ -8208,12 +8246,11 @@ dependencies = [ "hkdf", "hmac 0.12.1", "log", - "oid-registry 0.6.1", "p256 0.11.1", "p384", "rand 0.8.5", "rand_core 0.6.4", - "rcgen 0.9.3", + "rcgen 0.10.0", "ring", "rustls 0.19.1", "sec1 0.3.0", @@ -8226,7 +8263,7 @@ dependencies = [ "tokio", "webpki 0.21.4", "webrtc-util", - "x25519-dalek 2.0.0-pre.1", + "x25519-dalek 2.0.0", "x509-parser 0.13.2", ] @@ -8344,13 +8381,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 0.38.14", ] [[package]] @@ -8377,9 +8415,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", ] @@ -8418,7 +8456,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -8438,17 +8476,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "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 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -8459,9 +8497,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -8477,9 +8515,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -8495,9 +8533,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -8513,9 +8551,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -8531,9 +8569,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -8543,9 +8581,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -8561,18 +8599,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winreg" -version = "0.10.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winreg" @@ -8625,12 +8654,13 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-pre.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.1.1", "rand_core 0.6.4", + "serde", "zeroize", ] @@ -8728,5 +8758,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] diff --git a/Cargo.toml b/Cargo.toml index 9e33a00e1c3..f31e4d13528 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,32 +45,32 @@ homepage = "https://fuel.network/" keywords = ["blockchain", "cryptocurrencies", "fuel-vm", "vm"] license = "BUSL-1.1" repository = "https://github.com/FuelLabs/fuel-core" -version = "0.20.4" +version = "0.20.5" [workspace.dependencies] # Workspace members -fuel-core = { version = "0.20.4", path = "./crates/fuel-core", default-features = false } -fuel-core-client-bin = { version = "0.20.4", path = "./bin/client" } -fuel-core-bin = { version = "0.20.4", path = "./bin/fuel-core" } -fuel-core-keygen = { version = "0.20.4", path = "./bin/keygen" } -fuel-core-chain-config = { version = "0.20.4", path = "./crates/chain-config" } -fuel-core-client = { version = "0.20.4", path = "./crates/client" } -fuel-core-database = { version = "0.20.4", path = "./crates/database" } -fuel-core-metrics = { version = "0.20.4", path = "./crates/metrics" } -fuel-core-services = { version = "0.20.4", path = "./crates/services" } -fuel-core-consensus-module = { version = "0.20.4", path = "./crates/services/consensus_module" } -fuel-core-bft = { version = "0.20.4", path = "./crates/services/consensus_module/bft" } -fuel-core-poa = { version = "0.20.4", path = "./crates/services/consensus_module/poa" } -fuel-core-executor = { version = "0.20.4", path = "./crates/services/executor" } -fuel-core-importer = { version = "0.20.4", path = "./crates/services/importer" } -fuel-core-p2p = { version = "0.20.4", path = "./crates/services/p2p" } -fuel-core-producer = { version = "0.20.4", path = "./crates/services/producer" } -fuel-core-relayer = { version = "0.20.4", path = "./crates/services/relayer" } -fuel-core-sync = { version = "0.20.4", path = "./crates/services/sync" } -fuel-core-txpool = { version = "0.20.4", path = "./crates/services/txpool" } -fuel-core-storage = { version = "0.20.4", path = "./crates/storage" } -fuel-core-trace = { version = "0.20.4", path = "./crates/trace" } -fuel-core-types = { version = "0.20.4", path = "./crates/types", default-features = false } +fuel-core = { version = "0.20.5", path = "./crates/fuel-core", default-features = false } +fuel-core-client-bin = { version = "0.20.5", path = "./bin/fuel-core-client" } +fuel-core-bin = { version = "0.20.5", path = "./bin/fuel-core" } +fuel-core-keygen = { version = "0.20.5", path = "./bin/keygen" } +fuel-core-chain-config = { version = "0.20.5", path = "./crates/chain-config" } +fuel-core-client = { version = "0.20.5", path = "./crates/client" } +fuel-core-database = { version = "0.20.5", path = "./crates/database" } +fuel-core-metrics = { version = "0.20.5", path = "./crates/metrics" } +fuel-core-services = { version = "0.20.5", path = "./crates/services" } +fuel-core-consensus-module = { version = "0.20.5", path = "./crates/services/consensus_module" } +fuel-core-bft = { version = "0.20.5", path = "./crates/services/consensus_module/bft" } +fuel-core-poa = { version = "0.20.5", path = "./crates/services/consensus_module/poa" } +fuel-core-executor = { version = "0.20.5", path = "./crates/services/executor" } +fuel-core-importer = { version = "0.20.5", path = "./crates/services/importer" } +fuel-core-p2p = { version = "0.20.5", path = "./crates/services/p2p" } +fuel-core-producer = { version = "0.20.5", path = "./crates/services/producer" } +fuel-core-relayer = { version = "0.20.5", path = "./crates/services/relayer" } +fuel-core-sync = { version = "0.20.5", path = "./crates/services/sync" } +fuel-core-txpool = { version = "0.20.5", path = "./crates/services/txpool" } +fuel-core-storage = { version = "0.20.5", path = "./crates/storage" } +fuel-core-trace = { version = "0.20.5", path = "./crates/trace" } +fuel-core-types = { version = "0.20.5", path = "./crates/types", default-features = false } fuel-core-tests = { version = "0.0.0", path = "./tests" } fuel-core-xtask = { version = "0.0.0", path = "./xtask" } diff --git a/crates/client/assets/schema.sdl b/crates/client/assets/schema.sdl index 9c2c55c3a14..b85313a07da 100644 --- a/crates/client/assets/schema.sdl +++ b/crates/client/assets/schema.sdl @@ -550,6 +550,16 @@ type MessageProof { data: HexString! } +enum MessageState { + UNSPENT + SPENT + NOT_FOUND +} + +type MessageStatus { + state: MessageState! +} + type Mutation { startSession: ID! endSession(id: ID!): Boolean! @@ -684,6 +694,7 @@ type Query { nodeInfo: NodeInfo! messages(owner: Address, first: Int, after: String, last: Int, before: String): MessageConnection! messageProof(transactionId: TransactionId!, messageId: MessageId!, commitBlockId: BlockId, commitBlockHeight: U32): MessageProof + messageStatus(nonce: Nonce!): MessageStatus! } type Receipt { diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index 49bca0b47e9..2e34316e266 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -6,16 +6,20 @@ use crate::client::{ SpendQueryElementInput, }, contract::ContractBalanceQueryArgs, + message::MessageStatusArgs, tx::DryRunArg, Tai64Timestamp, TransactionId, }, - types::primitives::{ - Address, - AssetId, - BlockId, - ContractId, - UtxoId, + types::{ + message::MessageStatus, + primitives::{ + Address, + AssetId, + BlockId, + ContractId, + UtxoId, + }, }, }; use anyhow::Context; @@ -98,7 +102,6 @@ use std::{ sync::Arc, }; use tai64::Tai64; -use tracing as _; use types::{ TransactionResponse, TransactionStatus, @@ -218,7 +221,6 @@ impl FuelClient { { use core::ops::Deref; use eventsource_client as es; - use hyper_rustls as _; use reqwest::cookie::CookieStore; let mut url = self.url.clone(); url.set_path("/graphql-sub"); @@ -862,6 +864,15 @@ impl FuelClient { Ok(messages) } + pub async fn message_status(&self, nonce: &Nonce) -> io::Result { + let query = schema::message::MessageStatusQuery::build(MessageStatusArgs { + nonce: (*nonce).into(), + }); + let status = self.query(query).await?.message_status.into(); + + Ok(status) + } + /// Request a merkle proof of an output message. pub async fn message_proof( &self, diff --git a/crates/client/src/client/schema/message.rs b/crates/client/src/client/schema/message.rs index c06334fb23f..c3974b2b1d9 100644 --- a/crates/client/src/client/schema/message.rs +++ b/crates/client/src/client/schema/message.rs @@ -32,6 +32,20 @@ pub struct Message { pub da_height: U64, } +#[derive(cynic::QueryFragment, Debug)] +#[cynic(schema_path = "./assets/schema.sdl")] +pub struct MessageStatus { + pub(crate) state: MessageState, +} + +#[derive(cynic::Enum, Debug)] +#[cynic(schema_path = "./assets/schema.sdl")] +pub enum MessageState { + Unspent, + Spent, + NotFound, +} + #[derive(cynic::QueryFragment, Debug)] #[cynic( schema_path = "./assets/schema.sdl", @@ -140,6 +154,23 @@ pub struct MessageProofArgs { pub commit_block_height: Option, } +#[derive(cynic::QueryFragment, Debug)] +#[cynic( + schema_path = "./assets/schema.sdl", + graphql_type = "Query", + variables = "MessageStatusArgs" +)] +pub struct MessageStatusQuery { + #[arguments(nonce: $nonce)] + pub message_status: MessageStatus, +} + +#[derive(cynic::QueryVariables, Debug)] +pub struct MessageStatusArgs { + /// Nonce of the output message that requires a proof. + pub nonce: Nonce, +} + impl From<(Option
, PaginationRequest)> for OwnedMessagesConnectionArgs { fn from(r: (Option
, PaginationRequest)) -> Self { match r.1.direction { diff --git a/crates/client/src/client/types/message.rs b/crates/client/src/client/types/message.rs index 1bc89846b5d..e9ea9a30e48 100644 --- a/crates/client/src/client/types/message.rs +++ b/crates/client/src/client/types/message.rs @@ -46,6 +46,23 @@ pub struct MessageProof { pub data: Bytes, } +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub enum MessageStatus { + Unspent, + Spent, + NotFound, +} + +impl From for MessageStatus { + fn from(value: schema::message::MessageStatus) -> Self { + match value.state { + schema::message::MessageState::Unspent => Self::Unspent, + schema::message::MessageState::Spent => Self::Spent, + schema::message::MessageState::NotFound => Self::NotFound, + } + } +} + // GraphQL Translation impl From for Message { diff --git a/crates/fuel-core/src/database/block.rs b/crates/fuel-core/src/database/block.rs index 9177ff718a9..4eeac40d100 100644 --- a/crates/fuel-core/src/database/block.rs +++ b/crates/fuel-core/src/database/block.rs @@ -42,7 +42,6 @@ use fuel_core_types::{ use itertools::Itertools; use std::{ borrow::{ - Borrow, BorrowMut, Cow, }, @@ -271,7 +270,7 @@ impl Database { .get(commit_block_height)? .ok_or(not_found!(FuelBlockMerkleMetadata))?; - let storage = self.borrow(); + let storage = self; let tree: MerkleTree = MerkleTree::load(storage, commit_merkle_metadata.version) .map_err(|err| StorageError::Other(err.into()))?; diff --git a/crates/fuel-core/src/database/message.rs b/crates/fuel-core/src/database/message.rs index 65f81726ba9..dc2c510ed04 100644 --- a/crates/fuel-core/src/database/message.rs +++ b/crates/fuel-core/src/database/message.rs @@ -124,7 +124,7 @@ impl Database { .filter_map(|msg| { // Return only unspent messages if let Ok(msg) = msg { - match self.is_message_spent(msg.id()) { + match self.message_is_spent(msg.id()) { Ok(false) => Some(Ok(msg)), Ok(true) => None, Err(e) => Some(Err(e)), @@ -150,9 +150,13 @@ impl Database { Ok(Some(configs)) } - pub fn is_message_spent(&self, id: &Nonce) -> StorageResult { + pub fn message_is_spent(&self, id: &Nonce) -> StorageResult { fuel_core_storage::StorageAsRef::storage::(&self).contains_key(id) } + + pub fn message_exists(&self, id: &Nonce) -> StorageResult { + fuel_core_storage::StorageAsRef::storage::(&self).contains_key(id) + } } // TODO: Reuse `fuel_vm::storage::double_key` macro. diff --git a/crates/fuel-core/src/executor.rs b/crates/fuel-core/src/executor.rs index 33027c1f68f..a5218d4f802 100644 --- a/crates/fuel-core/src/executor.rs +++ b/crates/fuel-core/src/executor.rs @@ -1021,7 +1021,7 @@ where .. }) => { // Eagerly return already spent if status is known. - if db.is_message_spent(nonce)? { + if db.message_is_spent(nonce)? { return Err( TransactionValidityError::MessageAlreadySpent(*nonce).into() ) @@ -3783,10 +3783,10 @@ mod tests { // Successful execution consumes `message_coin` and `message_data`. assert_eq!(block_db_transaction.all_messages(None, None).count(), 0); assert!(block_db_transaction - .is_message_spent(&message_coin.nonce) + .message_is_spent(&message_coin.nonce) .unwrap()); assert!(block_db_transaction - .is_message_spent(&message_data.nonce) + .message_is_spent(&message_data.nonce) .unwrap()); assert_eq!( block_db_transaction @@ -3846,10 +3846,10 @@ mod tests { // We should spend only `message_coin`. The `message_data` should be unspent. assert_eq!(block_db_transaction.all_messages(None, None).count(), 1); assert!(block_db_transaction - .is_message_spent(&message_coin.nonce) + .message_is_spent(&message_coin.nonce) .unwrap()); assert!(!block_db_transaction - .is_message_spent(&message_data.nonce) + .message_is_spent(&message_data.nonce) .unwrap()); assert_eq!( block_db_transaction diff --git a/crates/fuel-core/src/graphql_api/ports.rs b/crates/fuel-core/src/graphql_api/ports.rs index 40ec3dce816..fe6900a1332 100644 --- a/crates/fuel-core/src/graphql_api/ports.rs +++ b/crates/fuel-core/src/graphql_api/ports.rs @@ -121,6 +121,10 @@ pub trait DatabaseMessages: start_message_id: Option, direction: IterDirection, ) -> BoxedIter<'_, StorageResult>; + + fn message_is_spent(&self, nonce: &Nonce) -> StorageResult; + + fn message_exists(&self, nonce: &Nonce) -> StorageResult; } /// Trait that specifies all the getters required for coins. diff --git a/crates/fuel-core/src/query/message.rs b/crates/fuel-core/src/query/message.rs index 094ddba44f2..8d1e9943924 100644 --- a/crates/fuel-core/src/query/message.rs +++ b/crates/fuel-core/src/query/message.rs @@ -2,6 +2,7 @@ use crate::{ fuel_core_graphql_api::{ ports::{ DatabaseMessageProof, + DatabaseMessages, DatabasePort, }, IntoApiResult, @@ -33,6 +34,7 @@ use fuel_core_types::{ MerkleProof, Message, MessageProof, + MessageStatus, }, fuel_merkle::binary::in_memory::MerkleTree, fuel_tx::{ @@ -267,3 +269,16 @@ fn message_receipts_proof( None => Ok(None), } } + +pub fn message_status( + database: &T, + message_nonce: Nonce, +) -> StorageResult { + if database.message_is_spent(&message_nonce)? { + Ok(MessageStatus::spent()) + } else if database.message_exists(&message_nonce)? { + Ok(MessageStatus::unspent()) + } else { + Ok(MessageStatus::not_found()) + } +} diff --git a/crates/fuel-core/src/schema/message.rs b/crates/fuel-core/src/schema/message.rs index 033e115a99b..c7274fc3d3d 100644 --- a/crates/fuel-core/src/schema/message.rs +++ b/crates/fuel-core/src/schema/message.rs @@ -27,6 +27,7 @@ use async_graphql::{ EmptyFields, }, Context, + Enum, Object, }; use fuel_core_types::entities; @@ -142,6 +143,16 @@ impl MessageQuery { )? .map(MessageProof)) } + + async fn message_status( + &self, + ctx: &Context<'_>, + nonce: Nonce, + ) -> async_graphql::Result { + let data: &Database = ctx.data_unchecked(); + let status = crate::query::message_status(data.deref(), nonce.into())?; + Ok(status.into()) + } } pub struct MerkleProof(pub(crate) entities::message::MerkleProof); @@ -213,3 +224,29 @@ impl From for MerkleProof { MerkleProof(proof) } } + +pub struct MessageStatus(pub(crate) entities::message::MessageStatus); + +#[derive(Enum, Copy, Clone, Eq, PartialEq)] +enum MessageState { + Unspent, + Spent, + NotFound, +} + +#[Object] +impl MessageStatus { + async fn state(&self) -> MessageState { + match self.0.state { + entities::message::MessageState::Unspent => MessageState::Unspent, + entities::message::MessageState::Spent => MessageState::Spent, + entities::message::MessageState::NotFound => MessageState::NotFound, + } + } +} + +impl From for MessageStatus { + fn from(status: entities::message::MessageStatus) -> Self { + MessageStatus(status) + } +} diff --git a/crates/fuel-core/src/service/adapters/graphql_api.rs b/crates/fuel-core/src/service/adapters/graphql_api.rs index 03f7cf7ff74..734bf9e562e 100644 --- a/crates/fuel-core/src/service/adapters/graphql_api.rs +++ b/crates/fuel-core/src/service/adapters/graphql_api.rs @@ -144,6 +144,14 @@ impl DatabaseMessages for Database { .map(|result| result.map_err(StorageError::from)) .into_boxed() } + + fn message_is_spent(&self, nonce: &Nonce) -> StorageResult { + self.message_is_spent(nonce) + } + + fn message_exists(&self, nonce: &Nonce) -> StorageResult { + self.message_exists(nonce) + } } impl DatabaseCoins for Database { diff --git a/crates/types/src/entities/message.rs b/crates/types/src/entities/message.rs index 4ca21b2fbb9..c0fa3d452d7 100644 --- a/crates/types/src/entities/message.rs +++ b/crates/types/src/entities/message.rs @@ -97,3 +97,42 @@ impl MessageProof { ) } } + +/// Represents the status of a message +pub struct MessageStatus { + /// The message state + pub state: MessageState, +} + +impl MessageStatus { + /// Constructor for `MessageStatus` that fills with `Unspent` state + pub fn unspent() -> Self { + Self { + state: MessageState::Unspent, + } + } + + /// Constructor for `MessageStatus` that fills with `Spent` state + pub fn spent() -> Self { + Self { + state: MessageState::Spent, + } + } + + /// Constructor for `MessageStatus` that fills with `Unknown` state + pub fn not_found() -> Self { + Self { + state: MessageState::NotFound, + } + } +} + +/// The possible states a Message can be in +pub enum MessageState { + /// Message is still unspent + Unspent, + /// Message has already been spent + Spent, + /// There is no record of this Message + NotFound, +} diff --git a/deployment/charts/Chart.yaml b/deployment/charts/Chart.yaml index ddebb6eda6c..2fc2b2ef92a 100644 --- a/deployment/charts/Chart.yaml +++ b/deployment/charts/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: ${fuel_core_service_name} description: ${fuel_core_service_name} Helm Chart type: application -appVersion: "0.20.4" +appVersion: "0.20.5" version: 0.1.0 diff --git a/tests/tests/messages.rs b/tests/tests/messages.rs index 3ea42003d5f..b8b25156ec0 100644 --- a/tests/tests/messages.rs +++ b/tests/tests/messages.rs @@ -1,3 +1,5 @@ +#![allow(non_snake_case)] + use fuel_core::{ chain_config::{ MessageConfig, @@ -13,7 +15,10 @@ use fuel_core_client::client::{ PageDirection, PaginationRequest, }, - types::TransactionStatus, + types::{ + message::MessageStatus, + TransactionStatus, + }, FuelClient, }; use fuel_core_types::{ @@ -184,6 +189,110 @@ async fn messages_empty_results_for_owner_with_no_messages( assert_eq!(result.results.len(), 0); } +#[tokio::test] +async fn message_status__can_get_unspent() { + // Given + let owner = Address::new([1; 32]); + let nonce = 1.into(); + let amount = 1_000; + + let msg = MessageConfig { + recipient: owner, + nonce: 1.into(), + amount, + ..Default::default() + }; + + let mut config = Config::local_node(); + config.chain_conf.initial_state = Some(StateConfig { + messages: Some(vec![msg]), + ..Default::default() + }); + + let srv = FuelService::new_node(config).await.unwrap(); + let client = FuelClient::from(srv.bound_address); + + // When + let status = client.message_status(&nonce).await.unwrap(); + + // Then + assert_eq!(status, MessageStatus::Unspent); +} + +#[tokio::test] +async fn message_status__can_get_spent() { + // Given + let msg_recipient = Address::from([1; 32]); + let output_recipient = Address::from([2; 32]); + let msg_sender = Address::from([3; 32]); + + let nonce = 1.into(); + let amount = 1_000; + + let msg = MessageConfig { + sender: msg_sender, + recipient: msg_recipient, + nonce, + amount, + ..Default::default() + }; + + let mut config = Config::local_node(); + config.chain_conf.initial_state = Some(StateConfig { + messages: Some(vec![msg]), + ..Default::default() + }); + + let srv = FuelService::new_node(config).await.unwrap(); + let client = FuelClient::from(srv.bound_address); + + let input = Input::message_coin_signed( + msg_sender, + msg_recipient, + amount, + nonce, + Default::default(), + ); + + let output = Output::coin(output_recipient, amount, Default::default()); + + let tx = Transaction::script( + Default::default(), + 1_000_000, + Default::default(), + vec![], + vec![], + vec![input], + vec![output], + vec![Vec::new().into()], + ) + .into(); + + // When + client.submit_and_await_commit(&tx).await.unwrap(); + let status = client.message_status(&nonce).await.unwrap(); + + // Then + assert_eq!(status, MessageStatus::Spent); +} + +#[tokio::test] +async fn message_status__can_get_notfound() { + // Given + let nonce = 1.into(); + + let config = Config::local_node(); + + let srv = FuelService::new_node(config).await.unwrap(); + let client = FuelClient::from(srv.bound_address); + + // When + let status = client.message_status(&nonce).await.unwrap(); + + // Then + assert_eq!(status, MessageStatus::NotFound); +} + #[tokio::test] async fn can_get_message_proof() { for n in [1, 2, 10] { From 67c6b6a2209cceaa5f3e7d6ce9b7b68ee54eb265 Mon Sep 17 00:00:00 2001 From: xgreenx Date: Thu, 21 Sep 2023 11:38:18 +0100 Subject: [PATCH 2/4] Ignore audit --- .cargo/audit.toml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .cargo/audit.toml diff --git a/.cargo/audit.toml b/.cargo/audit.toml new file mode 100644 index 00000000000..87386c2b72b --- /dev/null +++ b/.cargo/audit.toml @@ -0,0 +1,2 @@ +[advisories] +ignore = ["RUSTSEC-2022-0093", "RUSTSEC-2023-0052"] # https://github.com/FuelLabs/fuel-core/issues/1298, https://github.com/FuelLabs/fuel-core/issues/1317 \ No newline at end of file From 83beb8732144c1cffc984e31aae11061c3e11f4a Mon Sep 17 00:00:00 2001 From: xgreenx Date: Thu, 21 Sep 2023 11:52:12 +0100 Subject: [PATCH 3/4] Fix tracing compialtion --- crates/client/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/client/Cargo.toml b/crates/client/Cargo.toml index a723a1fb196..6490845412d 100644 --- a/crates/client/Cargo.toml +++ b/crates/client/Cargo.toml @@ -26,7 +26,7 @@ serde = { workspace = true, features = ["derive"] } serde_json = { version = "1.0", features = ["raw_value"] } tai64 = { version = "4.0", features = ["serde"] } thiserror = "1.0" -tracing = "0.1" +tracing = { version = "0.1", optional = true } [dev-dependencies] fuel-core-types = { workspace = true, features = ["serde", "test-helpers"] } @@ -40,4 +40,4 @@ serde_json = { version = "1.0", features = ["raw_value"], optional = true } default = ["subscriptions"] test-helpers = [] dap = ["schemafy_lib", "serde_json"] -subscriptions = ["eventsource-client", "futures", "hyper-rustls"] +subscriptions = ["eventsource-client", "futures", "hyper-rustls", "tracing"] From d587cdfa6924117d3463b0384847f9ac4571409e Mon Sep 17 00:00:00 2001 From: xgreenx Date: Thu, 21 Sep 2023 12:20:01 +0100 Subject: [PATCH 4/4] Update rust version --- deployment/e2e-client.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/e2e-client.Dockerfile b/deployment/e2e-client.Dockerfile index 7fbf1934cf7..ba1dd1d2214 100644 --- a/deployment/e2e-client.Dockerfile +++ b/deployment/e2e-client.Dockerfile @@ -1,5 +1,5 @@ # Stage 1: Build -FROM rust:1.68.1 AS chef +FROM rust:1.71.0 AS chef RUN cargo install cargo-chef WORKDIR /build/ # hadolint ignore=DL3008