From b58ee9e25c822ecb5a752b7343f3a5266f47a702 Mon Sep 17 00:00:00 2001 From: Evgeny Fomin Date: Wed, 14 Feb 2024 20:42:17 +0100 Subject: [PATCH 1/3] broadcast random documents using faker feature --- Cargo.lock | 1584 ++++++++++++++--- Cargo.toml | 4 +- src/backend.rs | 2 +- src/backend/contracts.rs | 2 +- src/backend/documents.rs | 89 +- src/backend/error.rs | 4 +- src/backend/identities.rs | 6 +- src/backend/platform_info.rs | 2 +- src/config.rs | 2 +- src/main.rs | 2 +- src/ui/form/widgets/text/parsers.rs | 2 +- src/ui/views/strategies.rs | 2 +- .../strategies/contracts_with_updates.rs | 2 +- src/ui/views/strategies/operations.rs | 2 +- .../views/strategies/operations/document.rs | 2 +- 15 files changed, 1340 insertions(+), 367 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7904113e..f1baf39c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ "getrandom", "once_cell", @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" dependencies = [ "cfg-if", "once_cell", @@ -56,6 +56,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +[[package]] +name = "ambient-authority" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -77,6 +83,12 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + [[package]] name = "arrayref" version = "0.3.7" @@ -311,7 +323,7 @@ dependencies = [ "lazycell", "log", "peeking_take_while", - "prettyplease", + "prettyplease 0.2.16", "proc-macro2", "quote", "regex", @@ -369,9 +381,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "bitvec" @@ -451,7 +463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" dependencies = [ "once_cell", - "proc-macro-crate 3.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.48", @@ -481,9 +493,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytecheck" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" dependencies = [ "bytecheck_derive", "ptr_meta", @@ -492,9 +504,9 @@ dependencies = [ [[package]] name = "bytecheck_derive" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" dependencies = [ "proc-macro2", "quote", @@ -542,11 +554,76 @@ dependencies = [ "serde", ] +[[package]] +name = "cap-fs-ext" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88e341d15ac1029aadce600be764a1a1edafe40e03cde23285bc1d261b3a4866" +dependencies = [ + "cap-primitives", + "cap-std", + "io-lifetimes 2.0.3", + "windows-sys 0.52.0", +] + +[[package]] +name = "cap-primitives" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe16767ed8eee6d3f1f00d6a7576b81c226ab917eb54b96e5f77a5216ef67abb" +dependencies = [ + "ambient-authority", + "fs-set-times", + "io-extras", + "io-lifetimes 2.0.3", + "ipnet", + "maybe-owned", + "rustix 0.38.31", + "windows-sys 0.52.0", + "winx", +] + +[[package]] +name = "cap-rand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20e5695565f0cd7106bc3c7170323597540e772bb73e0be2cd2c662a0f8fa4ca" +dependencies = [ + "ambient-authority", + "rand", +] + +[[package]] +name = "cap-std" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "593db20e4c51f62d3284bae7ee718849c3214f93a3b94ea1899ad85ba119d330" +dependencies = [ + "cap-primitives", + "io-extras", + "io-lifetimes 2.0.3", + "rustix 0.38.31", +] + +[[package]] +name = "cap-time-ext" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03261630f291f425430a36f38c847828265bc928f517cdd2004c56f4b02f002b" +dependencies = [ + "ambient-authority", + "cap-primitives", + "iana-time-zone", + "once_cell", + "rustix 0.38.31", + "winx", +] + [[package]] name = "cargo-platform" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" dependencies = [ "serde", ] @@ -572,11 +649,10 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "9b918671670962b48bc23753aef0c51d072dca6f52f01f800854ada6ddb7f7d3" dependencies = [ - "jobserver", "libc", ] @@ -603,9 +679,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", @@ -613,7 +689,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -739,15 +815,137 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-bforest" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c22542c0b95bd3302f7ed6839869c561f2324bac2fd5e7e99f5cfa65fdc8b92" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3db903ef2e9c8a4de2ea6db5db052c7857282952f9df604aa55d169e6000d8" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", + "gimli", + "hashbrown 0.14.3", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6590feb5a1d6438f974bf6a5ac4dddf69fca14e1f07f3265d880f69e61a94463" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7239038c56fafe77fddc8788fc8533dd6c474dc5bdc5637216404f41ba807330" + +[[package]] +name = "cranelift-control" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dc9c595341404d381d27a3d950160856b35b402275f0c3990cd1ad683c8053" +dependencies = [ + "arbitrary", +] + +[[package]] +name = "cranelift-entity" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44e3ee532fc4776c69bcedf7e62f9632cbb3f35776fa9a525cdade3195baa3f7" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "cranelift-frontend" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a612c94d09e653662ec37681dc2d6fd2b9856e6df7147be0afc9aabb0abf19df" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85db9830abeb1170b7d29b536ffd55af1d4d26ac8a77570b5d1aca003bf225cc" + +[[package]] +name = "cranelift-native" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301ef0edafeaeda5771a5d2db64ac53e1818ae3111220a185677025fe91db4a1" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380f0abe8264e4570ac615fc31cef32a3b90a77f7eb97b08331f9dd357b1f500" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + [[package]] name = "crossbeam-channel" version = "0.5.11" @@ -757,6 +955,16 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + [[package]] name = "crossbeam-epoch" version = "0.9.18" @@ -766,6 +974,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.19" @@ -794,7 +1011,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "crossterm_winapi", "futures-core", "libc", @@ -826,9 +1043,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if", "cpufeatures", @@ -854,22 +1071,22 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "dapi-grpc-macros", "platform-version", - "prost", + "prost 0.11.9", "serde", "serde_bytes", "serde_json", - "tenderdash-proto", + "tenderdash-proto 0.14.0-dev.6 (git+https://github.com/dashpay/rs-tenderdash-abci)", "tonic", "tonic-build", ] [[package]] name = "dapi-grpc-macros" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "heck", "quote", @@ -878,9 +1095,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.3" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" dependencies = [ "darling_core", "darling_macro", @@ -888,9 +1105,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.3" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" dependencies = [ "fnv", "ident_case", @@ -902,51 +1119,19 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.3" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" dependencies = [ "darling_core", "quote", "syn 2.0.48", ] -[[package]] -name = "dash-platform-sdk" -version = "0.25.21" -dependencies = [ - "async-trait", - "bincode 2.0.0-rc.3", - "bincode_derive", - "bip37-bloom-filter", - "ciborium", - "dapi-grpc", - "dapi-grpc-macros", - "dashcore-rpc", - "derive_more", - "dotenvy", - "dpp", - "drive", - "drive-proof-verifier", - "envy", - "futures", - "hex", - "http", - "lru 0.12.1", - "rs-dapi-client", - "serde", - "serde_json", - "simple-signer", - "thiserror", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "dashcore" version = "0.30.0" -source = "git+https://github.com/dashpay/rust-dashcore?branch=master#35a166e76256edc5ca491163d9050ead0e0f50d5" +source = "git+https://github.com/dashpay/rust-dashcore?branch=master#25053c8e31e57d26f5876eff50bfc06ad9ee8b72" dependencies = [ "anyhow", "bech32", @@ -962,16 +1147,16 @@ dependencies = [ [[package]] name = "dashcore-private" version = "0.1.0" -source = "git+https://github.com/dashpay/rust-dashcore?branch=master#35a166e76256edc5ca491163d9050ead0e0f50d5" +source = "git+https://github.com/dashpay/rust-dashcore?branch=master#25053c8e31e57d26f5876eff50bfc06ad9ee8b72" [[package]] name = "dashcore-rpc" version = "0.15.1" -source = "git+https://github.com/dashpay/rust-dashcore-rpc?branch=master#d62d3628f83efa7fba00d3c3c9e21ed87d4381ab" +source = "git+https://github.com/dashpay/rust-dashcore-rpc?tag=v0.15.2#9e596142f589d32a7347872b8f5c2b3b2ed54257" dependencies = [ "dashcore-private", "dashcore-rpc-json", - "env_logger 0.10.1", + "env_logger 0.10.2", "hex", "jsonrpc", "log", @@ -982,7 +1167,7 @@ dependencies = [ [[package]] name = "dashcore-rpc-json" version = "0.15.1" -source = "git+https://github.com/dashpay/rust-dashcore-rpc?branch=master#d62d3628f83efa7fba00d3c3c9e21ed87d4381ab" +source = "git+https://github.com/dashpay/rust-dashcore-rpc?tag=v0.15.2#9e596142f589d32a7347872b8f5c2b3b2ed54257" dependencies = [ "bincode 2.0.0-rc.3", "dashcore", @@ -996,7 +1181,7 @@ dependencies = [ [[package]] name = "dashcore_hashes" version = "0.12.0" -source = "git+https://github.com/dashpay/rust-dashcore?branch=master#35a166e76256edc5ca491163d9050ead0e0f50d5" +source = "git+https://github.com/dashpay/rust-dashcore?branch=master#25053c8e31e57d26f5876eff50bfc06ad9ee8b72" dependencies = [ "dashcore-private", "rs-x11-hash", @@ -1006,22 +1191,26 @@ dependencies = [ [[package]] name = "dashpay-contract" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "platform-value", + "platform-version", "serde_json", + "thiserror", ] [[package]] name = "data-contracts" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "dashpay-contract", "dpns-contract", "feature-flags-contract", "masternode-reward-shares-contract", "platform-value", + "platform-version", "serde_json", + "thiserror", "withdrawals-contract", ] @@ -1079,6 +1268,37 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dircpy" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8466f8d28ca6da4c9dfbbef6ad4bff6f2fdd5e412d821025b0d3f0a9d74a8c1e" +dependencies = [ + "jwalk", + "log", + "walkdir", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -1093,15 +1313,17 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dpns-contract" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "platform-value", + "platform-version", "serde_json", + "thiserror", ] [[package]] name = "dpp" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "anyhow", "async-trait", @@ -1119,10 +1341,11 @@ dependencies = [ "env_logger 0.9.3", "getrandom", "hex", - "indexmap 2.1.0", + "indexmap 2.2.3", "integer-encoding 4.0.0", "itertools 0.10.5", "json-patch", + "json-schema-faker", "jsonptr", "jsonschema", "lazy_static", @@ -1148,7 +1371,7 @@ dependencies = [ [[package]] name = "drive" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "base64 0.21.7", "bs58 0.5.0", @@ -1181,7 +1404,7 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "dapi-grpc", "dpp", @@ -1227,9 +1450,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", @@ -1242,9 +1465,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "encoding_rs" @@ -1290,9 +1513,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -1373,6 +1596,12 @@ dependencies = [ "synstructure", ] +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + [[package]] name = "fancy-regex" version = "0.7.1" @@ -1398,19 +1627,32 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +[[package]] +name = "fd-lock" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" +dependencies = [ + "cfg-if", + "rustix 0.38.31", + "windows-sys 0.52.0", +] + [[package]] name = "feature-flags-contract" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "platform-value", + "platform-version", "serde_json", + "thiserror", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" [[package]] name = "fixedbitset" @@ -1477,6 +1719,17 @@ dependencies = [ "num", ] +[[package]] +name = "fs-set-times" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb" +dependencies = [ + "io-lifetimes 2.0.3", + "rustix 0.38.31", + "windows-sys 0.52.0", +] + [[package]] name = "fs_extra" version = "1.3.0" @@ -1631,6 +1884,11 @@ name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator", + "indexmap 2.2.3", + "stable_deref_trait", +] [[package]] name = "glob" @@ -1729,9 +1987,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ "bytes", "fnv", @@ -1739,7 +1997,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.3", "slab", "tokio", "tokio-util", @@ -1758,7 +2016,16 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.7", + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.8", ] [[package]] @@ -1767,7 +2034,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.8", "allocator-api2", ] @@ -1788,9 +2055,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" [[package]] name = "hex" @@ -1816,6 +2083,29 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "hoot" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df22a4d90f1b0e65fe3e0d6ee6a4608cc4d81f4b2eb3e670f44bb6bde711e452" +dependencies = [ + "httparse", + "log", +] + +[[package]] +name = "hootbin" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "354e60868e49ea1a39c44b9562ad207c4259dc6eabf9863bf3b0f058c55cfdb2" +dependencies = [ + "fastrand 2.0.1", + "hoot", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "http" version = "0.2.11" @@ -1907,9 +2197,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1957,9 +2247,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2002,17 +2292,33 @@ dependencies = [ "serde", ] +[[package]] +name = "io-extras" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c301e73fb90e8a29e600a9f402d095765f74310d582916a952f618836a1bd1ed" +dependencies = [ + "io-lifetimes 2.0.3", + "windows-sys 0.52.0", +] + [[package]] name = "io-lifetimes" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "libc", "windows-sys 0.48.0", ] +[[package]] +name = "io-lifetimes" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" + [[package]] name = "ipnet" version = "2.9.0" @@ -2021,12 +2327,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.3", - "rustix 0.38.30", + "hermit-abi 0.3.5", + "libc", "windows-sys 0.52.0", ] @@ -2083,20 +2389,11 @@ dependencies = [ "libc", ] -[[package]] -name = "jobserver" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" -dependencies = [ - "libc", -] - [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] @@ -2112,6 +2409,19 @@ dependencies = [ "treediff 3.0.2", ] +[[package]] +name = "json-schema-faker" +version = "0.1.0" +source = "git+https://github.com/fominok/json-schema-faker-rs?rev=2dd1cf7#2dd1cf7ea17b9246aa2aabd7026a3a320e3fa903" +dependencies = [ + "dircpy", + "serde_json", + "thiserror", + "wasi-common", + "wasmtime", + "wasmtime-wasi", +] + [[package]] name = "jsonptr" version = "0.1.5" @@ -2140,7 +2450,7 @@ name = "jsonschema" version = "0.15.0" source = "git+https://github.com/fominok/jsonschema-rs?branch=feat-unevaluated-properties#18f61ab46b4a06fb313fadadffd669058bddeafd" dependencies = [ - "ahash 0.7.7", + "ahash 0.7.8", "anyhow", "base64 0.21.7", "bytecount", @@ -2161,6 +2471,16 @@ dependencies = [ "uuid 0.8.2", ] +[[package]] +name = "jwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" +dependencies = [ + "crossbeam", + "rayon", +] + [[package]] name = "lazy-regex" version = "3.1.0" @@ -2196,6 +2516,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "lhash" version = "1.1.0" @@ -2204,9 +2530,9 @@ checksum = "744a4c881f502e98c2241d2e5f50040ac73b30194d64452bb6260393b53f0dc9" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" @@ -2218,6 +2544,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.2", + "libc", + "redox_syscall", +] + [[package]] name = "librocksdb-sys" version = "0.11.0+8.1.1" @@ -2236,9 +2573,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", "pkg-config", @@ -2253,9 +2590,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -2284,9 +2621,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" dependencies = [ "hashbrown 0.14.3", ] @@ -2301,6 +2638,15 @@ dependencies = [ "libc", ] +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + [[package]] name = "mach2" version = "0.4.2" @@ -2321,10 +2667,12 @@ dependencies = [ [[package]] name = "masternode-reward-shares-contract" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "platform-value", + "platform-version", "serde_json", + "thiserror", ] [[package]] @@ -2342,12 +2690,27 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "maybe-owned" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" + [[package]] name = "memchr" version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix 0.38.31", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -2357,6 +2720,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "memoize" version = "0.4.2" @@ -2394,9 +2766,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -2435,7 +2807,7 @@ dependencies = [ "tagptr", "thiserror", "triomphe", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -2477,7 +2849,7 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", ] [[package]] @@ -2547,11 +2919,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", @@ -2560,19 +2938,18 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -2593,9 +2970,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -2606,7 +2983,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "libc", ] @@ -2666,6 +3043,9 @@ version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ + "crc32fast", + "hashbrown 0.14.3", + "indexmap 2.2.3", "memchr", ] @@ -2677,11 +3057,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.62" +version = "0.10.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if", "foreign-types", "libc", @@ -2709,9 +3089,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.98" +version = "0.9.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", @@ -2789,23 +3169,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.2.3", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", @@ -2836,13 +3216,13 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "platform-serialization" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "bincode 2.0.0-rc.3", "platform-version", @@ -2850,7 +3230,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "proc-macro2", "quote", @@ -2860,14 +3240,14 @@ dependencies = [ [[package]] name = "platform-value" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "base64 0.13.1", "bincode 2.0.0-rc.3", "bs58 0.4.0", "ciborium", "hex", - "indexmap 2.1.0", + "indexmap 2.2.3", "lazy_static", "platform-serialization", "platform-version", @@ -2876,19 +3256,19 @@ dependencies = [ "serde", "serde_json", "thiserror", - "treediff 4.0.2", + "treediff 4.0.3", ] [[package]] name = "platform-version" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "thiserror", ] [[package]] name = "platform-versioning" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "proc-macro2", "quote", @@ -2929,6 +3309,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "prettyplease" version = "0.2.16" @@ -2951,11 +3341,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2685dd208a3771337d8d386a89840f0f43cd68be8dae90a5f8c2384effc9cd" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.21.0", + "toml_edit 0.21.1", ] [[package]] @@ -2983,13 +3373,23 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + [[package]] name = "prost" version = "0.12.3" @@ -2997,7 +3397,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.12.3", +] + +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", + "regex", + "syn 1.0.109", + "tempfile", + "which", ] [[package]] @@ -3013,15 +3435,28 @@ dependencies = [ "multimap", "once_cell", "petgraph", - "prettyplease", - "prost", - "prost-types", + "prettyplease 0.2.16", + "prost 0.12.3", + "prost-types 0.12.3", "regex", "syn 2.0.48", "tempfile", "which", ] +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "prost-derive" version = "0.12.3" @@ -3035,13 +3470,31 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + [[package]] name = "prost-types" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" dependencies = [ - "prost", + "prost 0.12.3", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", ] [[package]] @@ -3066,11 +3519,11 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "memchr", "unicase", ] @@ -3142,7 +3595,7 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cassowary", "crossterm 0.27.0", "indoc", @@ -3162,6 +3615,26 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "rayon" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.4.1" @@ -3171,15 +3644,39 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", + "regex-automata 0.4.5", "regex-syntax 0.8.2", ] @@ -3194,9 +3691,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -3217,18 +3714,18 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rend" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" dependencies = [ "bytecheck", ] [[package]] name = "reqwest" -version = "0.11.23" +version = "0.11.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" +checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" dependencies = [ "base64 0.21.7", "bytes", @@ -3248,9 +3745,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -3278,9 +3777,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.43" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" dependencies = [ "bitvec", "bytecheck", @@ -3291,14 +3790,14 @@ dependencies = [ "rkyv_derive", "seahash", "tinyvec", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] name = "rkyv_derive" -version = "0.7.43" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" dependencies = [ "proc-macro2", "quote", @@ -3317,7 +3816,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "backon", "chrono", @@ -3341,7 +3840,6 @@ dependencies = [ "cli-clipboard", "crossterm 0.27.0", "dapi-grpc", - "dash-platform-sdk", "dotenvy", "dpp", "envy", @@ -3352,6 +3850,7 @@ dependencies = [ "rand", "reqwest", "rs-dapi-client", + "rs-sdk", "serde", "serde_json", "simple-signer", @@ -3367,6 +3866,36 @@ dependencies = [ "walkdir", ] +[[package]] +name = "rs-sdk" +version = "1.0.0-dev.4" +dependencies = [ + "async-trait", + "bincode 2.0.0-rc.3", + "bip37-bloom-filter", + "ciborium", + "dapi-grpc", + "dapi-grpc-macros", + "dashcore-rpc", + "derive_more", + "dotenvy", + "dpp", + "drive", + "drive-proof-verifier", + "envy", + "futures", + "hex", + "http", + "lru 0.12.2", + "rs-dapi-client", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "rs-x11-hash" version = "0.1.8" @@ -3380,9 +3909,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.33.1" +version = "1.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df" dependencies = [ "arrayvec", "borsh", @@ -3396,9 +3925,9 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.33.1" +version = "1.34.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e43721f4ef7060ebc2c3ede757733209564ca8207f47674181bcd425dd76945" +checksum = "e418701588729bef95e7a655f2b483ad64bb97c46e8e79fde83efd92aaab6d82" dependencies = [ "quote", "rust_decimal", @@ -3433,7 +3962,7 @@ checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", "errno", - "io-lifetimes", + "io-lifetimes 1.0.11", "libc", "linux-raw-sys 0.3.8", "windows-sys 0.48.0", @@ -3441,14 +3970,16 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", + "itoa", "libc", - "linux-raw-sys 0.4.12", + "linux-raw-sys 0.4.13", + "once_cell", "windows-sys 0.52.0", ] @@ -3460,10 +3991,24 @@ checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -3485,6 +4030,12 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pki-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3495,6 +4046,17 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -3611,9 +4173,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] @@ -3629,9 +4191,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", @@ -3640,11 +4202,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.3", "itoa", "ryu", "serde", @@ -3730,11 +4292,20 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shellexpand" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +dependencies = [ + "dirs", +] + [[package]] name = "shlex" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook" @@ -3783,7 +4354,7 @@ checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" [[package]] name = "simple-signer" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "anyhow", "bincode 2.0.0-rc.3", @@ -3815,11 +4386,17 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + [[package]] name = "smallvec" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "smawk" @@ -3863,6 +4440,12 @@ dependencies = [ "der", ] +[[package]] +name = "sptr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" + [[package]] name = "sqlparser" version = "0.38.0" @@ -3872,6 +4455,12 @@ dependencies = [ "log", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "str-buf" version = "1.0.6" @@ -3880,13 +4469,12 @@ checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" [[package]] name = "strategy-tests" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "bincode 2.0.0-rc.3", "dpp", "drive", "hex", - "platform-serialization-derive", "platform-version", "rand", "simple-signer", @@ -4030,6 +4618,22 @@ dependencies = [ "libc", ] +[[package]] +name = "system-interface" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0682e006dd35771e392a6623ac180999a9a854b1d4a6c12fb2e804941c2b1f58" +dependencies = [ + "bitflags 2.4.2", + "cap-fs-ext", + "cap-std", + "fd-lock", + "io-lifetimes 2.0.3", + "rustix 0.38.31", + "windows-sys 0.52.0", + "winx", +] + [[package]] name = "tagptr" version = "0.2.0" @@ -4042,44 +4646,49 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] [[package]] name = "tenderdash-abci" -version = "0.14.0-dev.5" -source = "git+https://github.com/dashpay/rs-tenderdash-abci#556f3a9b6724bdbe44acf8045cd87144a997bccb" +version = "0.14.0-dev.6" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v0.14.0-dev.6#701ba0fa92cb0f6bb5b986ec1ad141390040116c" dependencies = [ "bytes", "futures", "hex", "lhash", - "prost", + "prost 0.12.3", "semver", - "tenderdash-proto", + "tenderdash-proto 0.14.0-dev.6 (git+https://github.com/dashpay/rs-tenderdash-abci?tag=v0.14.0-dev.6)", "thiserror", "tokio", "tokio-util", "tracing", "tracing-subscriber", "url", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] name = "tenderdash-proto" -version = "0.14.0-dev.5" -source = "git+https://github.com/dashpay/rs-tenderdash-abci#556f3a9b6724bdbe44acf8045cd87144a997bccb" +version = "0.14.0-dev.6" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v0.14.0-dev.6#701ba0fa92cb0f6bb5b986ec1ad141390040116c" dependencies = [ "bytes", "chrono", @@ -4087,20 +4696,52 @@ dependencies = [ "flex-error", "num-derive", "num-traits", - "prost", + "prost 0.12.3", "serde", "subtle-encoding", - "tenderdash-proto-compiler", + "tenderdash-proto-compiler 0.14.0-dev.6 (git+https://github.com/dashpay/rs-tenderdash-abci?tag=v0.14.0-dev.6)", + "time", +] + +[[package]] +name = "tenderdash-proto" +version = "0.14.0-dev.6" +source = "git+https://github.com/dashpay/rs-tenderdash-abci#a2151d40e80d4ce7076160017a6fcbe21d6e252e" +dependencies = [ + "bytes", + "chrono", + "derive_more", + "flex-error", + "num-derive", + "num-traits", + "prost 0.12.3", + "serde", + "subtle-encoding", + "tenderdash-proto-compiler 0.14.0-dev.6 (git+https://github.com/dashpay/rs-tenderdash-abci)", "time", ] [[package]] name = "tenderdash-proto-compiler" -version = "0.14.0-dev.5" -source = "git+https://github.com/dashpay/rs-tenderdash-abci#556f3a9b6724bdbe44acf8045cd87144a997bccb" +version = "0.14.0-dev.6" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v0.14.0-dev.6#701ba0fa92cb0f6bb5b986ec1ad141390040116c" dependencies = [ "fs_extra", - "prost-build", + "prost-build 0.12.3", + "regex", + "tempfile", + "ureq", + "walkdir", + "zip", +] + +[[package]] +name = "tenderdash-proto-compiler" +version = "0.14.0-dev.6" +source = "git+https://github.com/dashpay/rs-tenderdash-abci#a2151d40e80d4ce7076160017a6fcbe21d6e252e" +dependencies = [ + "fs_extra", + "prost-build 0.12.3", "regex", "tempfile", "ureq", @@ -4130,18 +4771,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", @@ -4160,12 +4801,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -4180,10 +4822,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -4204,9 +4847,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -4258,7 +4901,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.10", "tokio", ] @@ -4289,14 +4932,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.22.4", ] [[package]] @@ -4314,18 +4957,29 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.3", "toml_datetime", "winnow", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.3", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.3", "serde", "serde_spanned", "toml_datetime", @@ -4334,15 +4988,17 @@ dependencies = [ [[package]] name = "tonic" -version = "0.10.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ "async-stream", "async-trait", "axum", "base64 0.21.7", "bytes", + "futures-core", + "futures-util", "h2", "http", "http-body", @@ -4350,8 +5006,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", - "rustls", + "prost 0.11.9", "rustls-native-certs", "rustls-pemfile", "tokio", @@ -4365,15 +5020,15 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.10.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ - "prettyplease", + "prettyplease 0.1.25", "proc-macro2", - "prost-build", + "prost-build 0.11.9", "quote", - "syn 2.0.48", + "syn 1.0.109", ] [[package]] @@ -4414,6 +5069,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4494,9 +5150,9 @@ dependencies = [ [[package]] name = "treediff" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" +checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5" [[package]] name = "triomphe" @@ -4540,7 +5196,7 @@ version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "412447298ad477c25ff50c4a894ff5077b6ee3e25b913d42db30021d81b1af53" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "crossterm 0.27.0", "lazy-regex", "ratatui", @@ -4577,9 +5233,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -4604,9 +5260,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" @@ -4640,16 +5296,18 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.1" +version = "2.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" +checksum = "0b52731d03d6bb2fd18289d4028aee361d6c28d44977846793b994b13cdcc64d" dependencies = [ "base64 0.21.7", "flate2", + "hootbin", "log", "once_cell", - "rustls", - "rustls-webpki", + "rustls 0.22.2", + "rustls-pki-types", + "rustls-webpki 0.102.2", "url", "webpki-roots", ] @@ -4673,9 +5331,9 @@ checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" [[package]] name = "uuid" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" dependencies = [ "getrandom", "rand", @@ -4742,11 +5400,54 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi-cap-std-sync" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "154528979a211aa28d969846e883df75705809ed9bcc70aba61460683ea7355b" +dependencies = [ + "anyhow", + "async-trait", + "cap-fs-ext", + "cap-rand", + "cap-std", + "cap-time-ext", + "fs-set-times", + "io-extras", + "io-lifetimes 2.0.3", + "once_cell", + "rustix 0.38.31", + "system-interface", + "tracing", + "wasi-common", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasi-common" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d888b611fee7d273dd057dc009d2dd3132736f36710ffd65657ac83628d1e3b" +dependencies = [ + "anyhow", + "bitflags 2.4.2", + "cap-rand", + "cap-std", + "io-extras", + "log", + "rustix 0.38.31", + "thiserror", + "tracing", + "wasmtime", + "wiggle", + "windows-sys 0.48.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -4754,9 +5455,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", @@ -4769,9 +5470,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" dependencies = [ "cfg-if", "js-sys", @@ -4781,9 +5482,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4791,9 +5492,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", @@ -4804,9 +5505,245 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" + +[[package]] +name = "wasm-encoder" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmparser" +version = "0.118.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f1154f1ab868e2a01d9834a805faca7bf8b50d041b4ca714d005d0dab1c50c" +dependencies = [ + "indexmap 2.2.3", + "semver", +] + +[[package]] +name = "wasmtime" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e539fded2495422ea3c4dfa7beeddba45904eece182cf315294009e1a323bf" +dependencies = [ + "anyhow", + "bincode 1.3.3", + "bumpalo", + "cfg-if", + "indexmap 2.2.3", + "libc", + "log", + "object", + "once_cell", + "paste", + "serde", + "serde_derive", + "serde_json", + "target-lexicon", + "wasmparser", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "660ba9143e15a2acd921820df221b73aee256bd3ca2d208d73d8adc9587ccbb9" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cranelift" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d648c8b4064a7911093b02237cd5569f71ca171d3a0a486bf80600b19e1cba2" +dependencies = [ + "anyhow", + "cfg-if", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli", + "log", + "object", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290a89027688782da8ff60b12bb95695494b1874e0d0ba2ba387d23dace6d70c" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-control", + "cranelift-native", + "gimli", + "object", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61eb64fb3e0da883e2df4a13a81d6282e072336e6cb6295021d0f7ab2e352754" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli", + "indexmap 2.2.3", + "log", + "object", + "serde", + "serde_derive", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f485336add49267d8859e8f8084d2d4b9a4b1564496b6f30ba5b168d50c10ceb" +dependencies = [ + "anyhow", + "bincode 1.3.3", + "cfg-if", + "gimli", + "log", + "object", + "rustix 0.38.31", + "serde", + "serde_derive", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b6d197fcc34ad32ed440e1f9552fd57d1f377d9699d31dee1b5b457322c1f8a" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794b2bb19b99ef8322ff0dd9fe1ba7e19c41036dfb260b3f99ecce128c42ff92" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 2.2.3", + "libc", + "log", + "mach", + "memfd", + "memoffset 0.9.0", + "paste", + "psm", + "rustix 0.38.31", + "sptr", + "wasm-encoder", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-versioned-export-macros", + "wasmtime-wmemcheck", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-types" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d995db8bb56f2cd8d2dc0ed5ffab94ffb435283b0fe6747f80f7aab40b2d06a1" +dependencies = [ + "cranelift-entity", + "serde", + "serde_derive", + "thiserror", + "wasmparser", +] + +[[package]] +name = "wasmtime-versioned-export-macros" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55c5565959287c21dd0f4277ae3518dd2ae62679f655ee2dbc4396e19d210db" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "wasmtime-wasi" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccd8370078149d49a3a47e93741553fd79b700421464b6a27ca32718192ab130" +dependencies = [ + "anyhow", + "bytes", + "io-extras", + "libc", + "log", + "once_cell", + "url", + "wasi-cap-std-sync", + "wasi-common", + "wasmtime", + "wiggle", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-wmemcheck" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67761d8f8c0b3c13a5d34356274b10a40baba67fe9cfabbfc379a8b414e45de2" + +[[package]] +name = "wast" +version = "35.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +dependencies = [ + "leb128", +] [[package]] name = "wayland-client" @@ -4869,9 +5806,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" dependencies = [ "js-sys", "wasm-bindgen", @@ -4879,9 +5816,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.3" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" @@ -4892,7 +5832,49 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.30", + "rustix 0.38.31", +] + +[[package]] +name = "wiggle" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0afb26cd3269289bb314a361ff0a6685e5ce793b62181a9fe3f81ace15051697" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.4.2", + "thiserror", + "tracing", + "wasmtime", + "wiggle-macro", +] + +[[package]] +name = "wiggle-generate" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef2868fed7584d2b552fa317104858ded80021d23b073b2d682d3c932a027bd" +dependencies = [ + "anyhow", + "heck", + "proc-macro2", + "quote", + "shellexpand", + "syn 2.0.48", + "witx", +] + +[[package]] +name = "wiggle-macro" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31ae1ec11a17ea481539ee9a5719a278c9790d974060fbf71db4b2c05378780b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wiggle-generate", ] [[package]] @@ -5078,9 +6060,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.34" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] @@ -5095,15 +6077,39 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winx" +version = "0.36.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346" +dependencies = [ + "bitflags 2.4.2", + "windows-sys 0.52.0", +] + [[package]] name = "withdrawals-contract" -version = "0.25.21" +version = "1.0.0-dev.4" dependencies = [ "num_enum", "platform-value", + "platform-version", "serde", "serde_json", "serde_repr", + "thiserror", +] + +[[package]] +name = "witx" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" +dependencies = [ + "anyhow", + "log", + "thiserror", + "wast", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3d23fe61..4572141a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,8 @@ strum = { version = "0.25.0", features = ["derive"] } tui-realm-stdlib = "1.3.1" tuirealm = "1.9.0" bs58 = "0.5.0" -dpp = { path = "../platform/packages/rs-dpp", features = ["identity-serialization", "identity-serde-conversion", "random-documents", "random-identities", "random-document-types", "state-transition-signing"]} -dash-platform-sdk = { path = "../platform/packages/rs-sdk"} +dpp = { path = "../platform/packages/rs-dpp", features = ["client", "documents-faker"]} +rs-sdk = { path = "../platform/packages/rs-sdk"} thiserror = "1" serde = "1.0.188" serde_json = "1.0.107" diff --git a/src/backend.rs b/src/backend.rs index 077a8e29..6e35b1fd 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -17,7 +17,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use dash_platform_sdk::Sdk; +use rs_sdk::Sdk; use dpp::{ document::Document, identity::accessors::IdentityGettersV0, diff --git a/src/backend/contracts.rs b/src/backend/contracts.rs index 56b933f2..f42e78a3 100644 --- a/src/backend/contracts.rs +++ b/src/backend/contracts.rs @@ -1,6 +1,6 @@ //! Contracts backend. -use dash_platform_sdk::{platform::Fetch, Sdk}; +use rs_sdk::{platform::Fetch, Sdk}; use dpp::{ prelude::{DataContract, Identifier}, system_data_contracts::{dashpay_contract, dpns_contract}, diff --git a/src/backend/documents.rs b/src/backend/documents.rs index d398f20b..38560216 100644 --- a/src/backend/documents.rs +++ b/src/backend/documents.rs @@ -5,10 +5,6 @@ use std::{ time::{SystemTime, UNIX_EPOCH}, }; -use dash_platform_sdk::{ - platform::{transition::put_document::PutDocument, DocumentQuery, FetchMany}, - Sdk, -}; use dpp::{ data_contract::{ accessors::v0::DataContractV0Getters, @@ -23,10 +19,16 @@ use dpp::{ accessors::IdentityGettersV0, identity_public_key::accessors::v0::IdentityPublicKeyGettersV0, KeyType, Purpose, }, + platform_value::Bytes32, prelude::{DataContract, Identity, IdentityPublicKey}, + version::PlatformVersion, }; -use futures::{stream::FuturesUnordered, Future, StreamExt}; +use futures::{stream::FuturesUnordered, Future, FutureExt, StreamExt}; use rand::{prelude::StdRng, Rng, SeedableRng}; +use rs_sdk::{ + platform::{transition::put_document::PutDocument, DocumentQuery, FetchMany}, + Sdk, +}; use simple_signer::signer::SimpleSigner; use super::{state::IdentityPrivateKeysMap, AppStateUpdate, CompletedTaskPayload}; @@ -193,62 +195,27 @@ async fn broadcast_random_documents<'s>( let mut signer = SimpleSigner::default(); signer.add_key(identity_public_key.clone(), private_key.to_vec()); - fn put_random_document<'a, 'r>( - sdk: &'a Sdk, - document_type: &'a DocumentType, - identity: &'a Identity, - rng: &'r mut StdRng, - signer: &'a SimpleSigner, - identity_public_key: &'a IdentityPublicKey, - data_contract: Arc, - ) -> impl Future> + 'a { - let document_state_transition_entropy: [u8; 32] = rng.gen(); - let time_ms = SystemTime::now() - .duration_since(UNIX_EPOCH) - .expect("clock may have gone backwards") - .as_millis(); - - let random_document = document_type - .random_document_with_params( - identity.id(), - document_state_transition_entropy.into(), - time_ms as u64, - DocumentFieldFillType::FillIfNotRequired, - DocumentFieldFillSize::AnyDocumentFillSize, - rng, - sdk.version(), + let entropy = Bytes32(std_rng.gen()); + let documents = document_type.random_documents_faker( + identity.id(), + &entropy, + count as u32, + &PlatformVersion::latest(), + )?; + + let mut futures: FuturesUnordered<_> = documents + .iter() + .map(|document| { + document.put_to_platform_and_wait_for_response( + sdk, + document_type.clone(), + entropy.0, + identity_public_key.clone(), + Arc::clone(&data_contract), + &signer, ) - .expect("expected a random document"); - - async move { - random_document - .put_to_platform_and_wait_for_response( - sdk, - document_type.clone(), - document_state_transition_entropy, - identity_public_key.clone(), - data_contract, - signer, - ) - .await - .map(|_| ()) - .map_err(|e| e.to_string()) - } - } - - let mut futures: FuturesUnordered<_> = iter::repeat_with(|| { - put_random_document( - sdk, - document_type, - identity, - &mut std_rng, - &signer, - identity_public_key, - Arc::clone(&data_contract), - ) - }) - .take(count as usize) - .collect(); + }) + .collect(); let mut completed = 0; let mut last_error = None; @@ -256,7 +223,7 @@ async fn broadcast_random_documents<'s>( while let Some(result) = futures.next().await { match result { Ok(_) => completed += 1, - Err(e) => last_error = Some(e), + Err(e) => last_error = Some(e.to_string()), } } diff --git a/src/backend/error.rs b/src/backend/error.rs index 63a98669..c9e940aa 100644 --- a/src/backend/error.rs +++ b/src/backend/error.rs @@ -23,9 +23,9 @@ pub(crate) enum Error { #[error("SDK unexpected result: {0}")] SdkUnexpectedResultError(String), #[error("SDK error: {0} {1}")] - SdkExplainedError(String, dash_platform_sdk::Error), + SdkExplainedError(String, rs_sdk::Error), #[error("SDK error: {0}")] - SdkError(#[from] dash_platform_sdk::Error), + SdkError(#[from] rs_sdk::Error), #[error("Identity registration error: {0}")] IdentityRegistrationError(String), #[error("Identity top up error: {0}")] diff --git a/src/backend/identities.rs b/src/backend/identities.rs index 15a090ca..e2d5bc55 100644 --- a/src/backend/identities.rs +++ b/src/backend/identities.rs @@ -12,7 +12,7 @@ use dapi_grpc::{ GetIdentityBalanceRequest, }, }; -use dash_platform_sdk::{ +use rs_sdk::{ platform::{ transition::{ broadcast::BroadcastStateTransition, put_identity::PutIdentity, @@ -545,7 +545,7 @@ impl AppState { sdk: &Sdk, asset_lock_transaction: &Transaction, address: &Address, - ) -> Result { + ) -> Result { let _span = tracing::debug_span!( "broadcast_and_retrieve_asset_lock", transaction_id = asset_lock_transaction.txid().to_string(), @@ -558,7 +558,7 @@ impl AppState { .chain .map(|chain| chain.best_block_hash) .ok_or_else(|| { - dash_platform_sdk::Error::DapiClientError("missing `chain` field".to_owned()) + rs_sdk::Error::DapiClientError("missing `chain` field".to_owned()) })?; tracing::debug!( diff --git a/src/backend/platform_info.rs b/src/backend/platform_info.rs index eaaca9fd..2d4dca20 100644 --- a/src/backend/platform_info.rs +++ b/src/backend/platform_info.rs @@ -1,4 +1,4 @@ -use dash_platform_sdk::{ +use rs_sdk::{ platform::{types::epoch::ExtendedEpochInfoEx, Fetch, FetchMany, LimitQuery}, Sdk, }; diff --git a/src/config.rs b/src/config.rs index 8661ecab..7b553a49 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,6 +1,6 @@ use std::{path::PathBuf, str::FromStr}; -use dash_platform_sdk::sdk::Uri; +use rs_sdk::sdk::Uri; use dpp::dashcore::Network; use rs_dapi_client::AddressList; use serde::Deserialize; diff --git a/src/main.rs b/src/main.rs index 88ea61ba..f38bc1a3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ mod ui; use std::{fs::File, panic, time::Duration}; use crossterm::event::{Event as TuiEvent, EventStream}; -use dash_platform_sdk::{RequestSettings, SdkBuilder}; +use rs_sdk::{RequestSettings, SdkBuilder}; use dpp::{identity::accessors::IdentityGettersV0, version::PlatformVersion}; use futures::{future::OptionFuture, select, FutureExt, StreamExt}; use tracing_subscriber::EnvFilter; diff --git a/src/ui/form/widgets/text/parsers.rs b/src/ui/form/widgets/text/parsers.rs index 3684df87..393a9d9b 100644 --- a/src/ui/form/widgets/text/parsers.rs +++ b/src/ui/form/widgets/text/parsers.rs @@ -2,7 +2,7 @@ use std::{marker::PhantomData, str::FromStr}; -use dash_platform_sdk::platform::{DocumentQuery, DriveQuery}; +use rs_sdk::platform::{DocumentQuery, DriveQuery}; use dpp::prelude::DataContract; pub(crate) trait TextInputParser { diff --git a/src/ui/views/strategies.rs b/src/ui/views/strategies.rs index 3d710693..5de208f3 100644 --- a/src/ui/views/strategies.rs +++ b/src/ui/views/strategies.rs @@ -11,7 +11,7 @@ mod start_identities; use std::collections::BTreeMap; -use dash_platform_sdk::platform::DataContract; +use rs_sdk::platform::DataContract; use dpp::{tests::json_document::json_document_to_created_contract, version::PlatformVersion}; use strategy_tests::{ operations::{ diff --git a/src/ui/views/strategies/contracts_with_updates.rs b/src/ui/views/strategies/contracts_with_updates.rs index e929d893..8d366fbc 100644 --- a/src/ui/views/strategies/contracts_with_updates.rs +++ b/src/ui/views/strategies/contracts_with_updates.rs @@ -2,7 +2,7 @@ use std::collections::BTreeMap; -use dash_platform_sdk::platform::DataContract; +use rs_sdk::platform::DataContract; use tuirealm::{event::KeyEvent, tui::prelude::Rect, Frame}; use crate::{ diff --git a/src/ui/views/strategies/operations.rs b/src/ui/views/strategies/operations.rs index 4fc9f274..7809f706 100644 --- a/src/ui/views/strategies/operations.rs +++ b/src/ui/views/strategies/operations.rs @@ -11,7 +11,7 @@ mod identity_withdrawal; use std::collections::BTreeMap; -use dash_platform_sdk::platform::DataContract; +use rs_sdk::platform::DataContract; use strum::IntoEnumIterator; use tuirealm::{event::KeyEvent, tui::prelude::Rect, Frame}; diff --git a/src/ui/views/strategies/operations/document.rs b/src/ui/views/strategies/operations/document.rs index 53b0385c..95ff5d4a 100644 --- a/src/ui/views/strategies/operations/document.rs +++ b/src/ui/views/strategies/operations/document.rs @@ -2,7 +2,7 @@ use std::collections::BTreeMap; -use dash_platform_sdk::platform::DataContract; +use rs_sdk::platform::DataContract; use dpp::data_contract::{ accessors::v0::DataContractV0Getters, document_type::{ From c720fe00659eecd860d523179d50489369fe2602 Mon Sep 17 00:00:00 2001 From: Evgeny Fomin Date: Thu, 22 Feb 2024 15:35:42 +0100 Subject: [PATCH 2/3] use new entropy for each state transition --- Cargo.lock | 38 ++++++++++++++++----------------- src/backend/documents.rs | 46 ++++++++++++++++++++++------------------ 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f461ba2..eda913ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1174,7 +1174,7 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "dapi-grpc-macros", "platform-version", @@ -1189,7 +1189,7 @@ dependencies = [ [[package]] name = "dapi-grpc-macros" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "heck", "quote", @@ -1307,7 +1307,7 @@ dependencies = [ [[package]] name = "dashpay-contract" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -1317,7 +1317,7 @@ dependencies = [ [[package]] name = "data-contracts" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "dashpay-contract", "dpns-contract", @@ -1429,7 +1429,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dpns-contract" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -1439,7 +1439,7 @@ dependencies = [ [[package]] name = "dpp" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "anyhow", "async-trait", @@ -1487,7 +1487,7 @@ dependencies = [ [[package]] name = "drive" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "byteorder", "ciborium", @@ -1510,7 +1510,7 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "dapi-grpc", "dpp", @@ -1726,7 +1726,7 @@ dependencies = [ [[package]] name = "feature-flags-contract" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -2753,7 +2753,7 @@ dependencies = [ [[package]] name = "masternode-reward-shares-contract" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -3320,7 +3320,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platform-serialization" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "bincode 2.0.0-rc.3", "platform-version", @@ -3328,7 +3328,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "proc-macro2", "quote", @@ -3338,7 +3338,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "base64 0.13.1", "bincode 2.0.0-rc.3", @@ -3359,14 +3359,14 @@ dependencies = [ [[package]] name = "platform-version" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "thiserror", ] [[package]] name = "platform-versioning" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "proc-macro2", "quote", @@ -3945,7 +3945,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "backon", "chrono", @@ -4001,7 +4001,7 @@ dependencies = [ [[package]] name = "rs-sdk" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "async-trait", "bincode 2.0.0-rc.3", @@ -4487,7 +4487,7 @@ checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" [[package]] name = "simple-signer" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "anyhow", "bincode 2.0.0-rc.3", @@ -6238,7 +6238,7 @@ dependencies = [ [[package]] name = "withdrawals-contract" -version = "1.0.0-dev.4" +version = "1.0.0-dev.5" dependencies = [ "num_enum", "platform-value", diff --git a/src/backend/documents.rs b/src/backend/documents.rs index 38560216..b161dff9 100644 --- a/src/backend/documents.rs +++ b/src/backend/documents.rs @@ -195,27 +195,31 @@ async fn broadcast_random_documents<'s>( let mut signer = SimpleSigner::default(); signer.add_key(identity_public_key.clone(), private_key.to_vec()); - let entropy = Bytes32(std_rng.gen()); - let documents = document_type.random_documents_faker( - identity.id(), - &entropy, - count as u32, - &PlatformVersion::latest(), - )?; - - let mut futures: FuturesUnordered<_> = documents - .iter() - .map(|document| { - document.put_to_platform_and_wait_for_response( - sdk, - document_type.clone(), - entropy.0, - identity_public_key.clone(), - Arc::clone(&data_contract), - &signer, - ) - }) - .collect(); + let mut futures: FuturesUnordered<_> = iter::repeat_with(|| { + let entropy = Bytes32(std_rng.gen()); + let data_contract = Arc::clone(&data_contract); + let signer = &signer; + async move { + let documents = document_type.random_documents_faker( + identity.id(), + &entropy, + 1, + &PlatformVersion::latest(), + )?; + documents[0] + .put_to_platform_and_wait_for_response( + sdk, + document_type.clone(), + entropy.0, + identity_public_key.clone(), + data_contract, + signer, + ) + .await + } + }) + .take(count as usize) + .collect(); let mut completed = 0; let mut last_error = None; From 864880a35073a4dd3e6750d14c2708500915ea5f Mon Sep 17 00:00:00 2001 From: Evgeny Fomin Date: Mon, 4 Mar 2024 18:26:12 +0100 Subject: [PATCH 3/3] add random document properties substitutions --- src/backend/documents.rs | 141 +--------------- .../documents/broadcast_random_documents.rs | 158 ++++++++++++++++++ 2 files changed, 164 insertions(+), 135 deletions(-) create mode 100644 src/backend/documents/broadcast_random_documents.rs diff --git a/src/backend/documents.rs b/src/backend/documents.rs index bb7f10e7..0aef9cf6 100644 --- a/src/backend/documents.rs +++ b/src/backend/documents.rs @@ -1,38 +1,13 @@ -use std::{ - collections::{BTreeMap, HashSet}, - iter, - sync::Arc, - time::{SystemTime, UNIX_EPOCH}, -}; +mod broadcast_random_documents; -use dpp::{ - data_contract::{ - accessors::v0::DataContractV0Getters, - document_type::{ - accessors::DocumentTypeV0Getters, - random_document::{CreateRandomDocument, DocumentFieldFillSize, DocumentFieldFillType}, - DocumentType, - }, - }, - document::Document, - identity::{ - accessors::IdentityGettersV0, - identity_public_key::accessors::v0::IdentityPublicKeyGettersV0, KeyType, Purpose, - }, - platform_value::Bytes32, - prelude::{DataContract, Identity, IdentityPublicKey}, - version::PlatformVersion, -}; -use futures::{stream::FuturesUnordered, Future, FutureExt, StreamExt}; -use rand::{prelude::StdRng, Rng, SeedableRng}; +use dpp::{data_contract::accessors::v0::DataContractV0Getters, document::Document}; use rs_sdk::{ - platform::{transition::put_document::PutDocument, DocumentQuery, FetchMany}, + platform::{DocumentQuery, FetchMany}, Sdk, }; -use simple_signer::signer::SimpleSigner; -use super::{state::IdentityPrivateKeysMap, AppStateUpdate, CompletedTaskPayload}; -use crate::backend::{error::Error, AppState, BackendEvent, Task}; +use super::{AppStateUpdate, CompletedTaskPayload}; +pub(crate) use crate::backend::{AppState, BackendEvent, Task}; #[derive(Debug, Clone)] pub(crate) enum DocumentTask { @@ -91,7 +66,7 @@ impl AppState { }; }; - broadcast_random_documents( + broadcast_random_documents::broadcast_random_documents( sdk, identity, &identity_private_keys_lock, @@ -133,107 +108,3 @@ impl AppState { } } } - -struct BroadcastRandomDocumentsStats { - total: u16, - completed: u16, - last_error: Option, -} - -impl BroadcastRandomDocumentsStats { - fn info_display(&self) -> String { - format!( - "Broadcast random documents results: -Completed {} of {} -Last error: {}", - self.completed, - self.total, - self.last_error - .as_ref() - .map(|e| e.to_string()) - .unwrap_or("".to_owned()) - ) - } -} - -async fn broadcast_random_documents<'s>( - sdk: &Sdk, - identity: &Identity, - identity_private_keys: &IdentityPrivateKeysMap, - data_contract: &DataContract, - document_type: &DocumentType, - count: u16, -) -> Result { - let mut std_rng = StdRng::from_entropy(); - - let identity_public_key = identity - .get_first_public_key_matching( - Purpose::AUTHENTICATION, - HashSet::from([document_type.security_level_requirement()]), - HashSet::from([KeyType::ECDSA_SECP256K1, KeyType::BLS12_381]), - ) - .ok_or(Error::DocumentSigningError( - "No public key matching security level requirements".to_string(), - ))?; - - let Some(private_key) = identity_private_keys.get(&(identity.id(), identity_public_key.id())) - else { - // TODO inappropriate error type - return Err(Error::IdentityTopUpError(format!( - "expected private keys, but we only have private keys for {:?}, trying to get {:?} : \ - {}", - identity_private_keys - .keys() - .map(|(id, key_id)| (id, key_id)) - .collect::>(), - identity.id(), - identity_public_key.id(), - ))); - }; - - let data_contract = Arc::new(data_contract.clone()); - let mut signer = SimpleSigner::default(); - signer.add_key(identity_public_key.clone(), private_key.to_vec()); - - let mut futures: FuturesUnordered<_> = iter::repeat_with(|| { - let entropy = Bytes32(std_rng.gen()); - let data_contract = Arc::clone(&data_contract); - let signer = &signer; - async move { - let documents = document_type.random_documents_faker( - identity.id(), - &entropy, - 1, - &PlatformVersion::latest(), - )?; - documents[0] - .put_to_platform_and_wait_for_response( - sdk, - document_type.clone(), - entropy.0, - identity_public_key.clone(), - data_contract, - signer, - ) - .await - } - }) - .take(count as usize) - .collect(); - - let mut completed = 0; - let mut last_error = None; - - while let Some(result) = futures.next().await { - match result { - Ok(_) => completed += 1, - Err(e) => last_error = Some(e.to_string()), - } - } - - Ok(BroadcastRandomDocumentsStats { - total: count, - completed, - last_error, - }) -} diff --git a/src/backend/documents/broadcast_random_documents.rs b/src/backend/documents/broadcast_random_documents.rs new file mode 100644 index 00000000..d9c456a5 --- /dev/null +++ b/src/backend/documents/broadcast_random_documents.rs @@ -0,0 +1,158 @@ +//! Random documents broadcasting functionality and tools. + +use std::{ + collections::{BTreeMap, HashSet}, + iter, + sync::Arc, +}; + +use dapi_grpc::core::v0::{get_status_response, GetStatusRequest, GetStatusResponse}; +use dpp::{ + data_contract::{ + document_type::{ + accessors::DocumentTypeV0Getters, random_document::CreateRandomDocument, DocumentType, + }, + DataContract, + }, + identity::{ + accessors::IdentityGettersV0, + identity_public_key::accessors::v0::IdentityPublicKeyGettersV0, Identity, KeyType, Purpose, + }, + platform_value::{Bytes32, Value}, + system_data_contracts::dashpay_contract::v1::document_types::contact_request::properties::CORE_HEIGHT_CREATED_AT, + version::PlatformVersion, +}; +use futures::{stream::FuturesUnordered, StreamExt}; +use rand::{rngs::StdRng, Rng, SeedableRng}; +use rs_dapi_client::{DapiRequestExecutor, RequestSettings}; +use rs_sdk::{platform::transition::put_document::PutDocument, Sdk}; +use simple_signer::signer::SimpleSigner; + +use crate::backend::{error::Error, state::IdentityPrivateKeysMap}; + +pub(super) struct BroadcastRandomDocumentsStats { + total: u16, + completed: u16, + last_error: Option, +} + +impl BroadcastRandomDocumentsStats { + pub fn info_display(&self) -> String { + format!( + "Broadcast random documents results: +Completed {} of {} +Last error: {}", + self.completed, + self.total, + self.last_error + .as_ref() + .map(|e| e.to_string()) + .unwrap_or("".to_owned()) + ) + } +} + +pub(super) async fn broadcast_random_documents<'s>( + sdk: &Sdk, + identity: &Identity, + identity_private_keys: &IdentityPrivateKeysMap, + data_contract: &DataContract, + document_type: &DocumentType, + count: u16, +) -> Result { + let mut std_rng = StdRng::from_entropy(); + + let identity_public_key = identity + .get_first_public_key_matching( + Purpose::AUTHENTICATION, + HashSet::from([document_type.security_level_requirement()]), + HashSet::from([KeyType::ECDSA_SECP256K1, KeyType::BLS12_381]), + ) + .ok_or(Error::DocumentSigningError( + "No public key matching security level requirements".to_string(), + ))?; + + let Some(private_key) = identity_private_keys.get(&(identity.id(), identity_public_key.id())) + else { + // TODO inappropriate error type + return Err(Error::IdentityTopUpError(format!( + "expected private keys, but we only have private keys for {:?}, trying to get {:?} : \ + {}", + identity_private_keys + .keys() + .map(|(id, key_id)| (id, key_id)) + .collect::>(), + identity.id(), + identity_public_key.id(), + ))); + }; + + let data_contract = Arc::new(data_contract.clone()); + let mut signer = SimpleSigner::default(); + signer.add_key(identity_public_key.clone(), private_key.to_vec()); + + let substitutions = prepare_substitutions(&sdk).await?; + + let mut futures: FuturesUnordered<_> = iter::repeat_with(|| { + let entropy = Bytes32(std_rng.gen()); + let data_contract = Arc::clone(&data_contract); + let signer = &signer; + let substitutions = &substitutions; + async move { + let documents = document_type.random_documents_faker( + identity.id(), + &entropy, + 1, + &PlatformVersion::latest(), + substitutions, + )?; + documents[0] + .put_to_platform_and_wait_for_response( + sdk, + document_type.clone(), + entropy.0, + identity_public_key.clone(), + data_contract, + signer, + ) + .await + } + }) + .take(count as usize) + .collect(); + + let mut completed = 0; + let mut last_error = None; + + while let Some(result) = futures.next().await { + match result { + Ok(_) => completed += 1, + Err(e) => last_error = Some(e.to_string()), + } + } + + Ok(BroadcastRandomDocumentsStats { + total: count, + completed, + last_error, + }) +} + +async fn prepare_substitutions(sdk: &Sdk) -> Result, rs_sdk::Error> { + let GetStatusResponse { + chain: Some(get_status_response::Chain { blocks_count, .. }), + .. + } = sdk + .execute(GetStatusRequest {}, RequestSettings::default()) + .await? + else { + return Err(rs_sdk::Error::Generic( + "malformed status response".to_owned(), + )); + }; + + let mut substitutions = BTreeMap::new(); + substitutions.insert(CORE_HEIGHT_CREATED_AT, blocks_count.into()); + + Ok(substitutions) +}