diff --git a/Cargo.lock b/Cargo.lock index 05eb08c91..59eb98692 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -49,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug", ] @@ -62,7 +62,7 @@ checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" dependencies = [ "aead", "aes", - "cipher 0.3.0", + "cipher", "ctr", "polyval", "subtle", @@ -82,14 +82,16 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.2" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "const-random", + "getrandom 0.2.10", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -380,7 +382,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7092a50cf959ebf53460162cb07e88d4cc8ea7fa8c45292e80503a3186033daf" dependencies = [ "anchor-idl", - "darling", + "darling 0.14.2", "syn 1.0.109", ] @@ -391,7 +393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3de2665dc06ee0bd3c7d08f47f136a3d5b1e34b7ac1bc632c86a812add04d68b" dependencies = [ "anchor-syn 0.24.2", - "darling", + "darling 0.14.2", "heck 0.4.0", "proc-macro2 1.0.69", "quote 1.0.33", @@ -417,7 +419,7 @@ dependencies = [ "arrayref", "base64 0.13.1", "bincode", - "borsh", + "borsh 0.9.3", "bytemuck", "solana-program", "thiserror", @@ -440,7 +442,7 @@ dependencies = [ "arrayref", "base64 0.13.1", "bincode", - "borsh", + "borsh 0.9.3", "bytemuck", "getrandom 0.2.10", "solana-program", @@ -457,7 +459,7 @@ dependencies = [ "solana-program", "spl-associated-token-account", "spl-token", - "spl-token-2022 0.6.1", + "spl-token-2022", ] [[package]] @@ -618,6 +620,129 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.1", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.3", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.3", + "num-traits", + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.1", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.3", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "array-bytes" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ad284aeb45c13f2fb4f084de4a420ebf447423bdf9386c0540ce33cb3ef4b8c" + [[package]] name = "arrayref" version = "0.3.6" @@ -630,6 +755,12 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + [[package]] name = "asn1-rs" version = "0.5.1" @@ -675,6 +806,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-compression" version = "0.4.5" @@ -1425,9 +1567,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64-simd" @@ -1450,7 +1592,7 @@ name = "beacon" version = "0.1.0" source = "git+https://github.com/helium/proto?branch=master#c2b1dfa06e6f726ab19cd50444b2a90dd6c841e0" dependencies = [ - "base64 0.21.0", + "base64 0.21.7", "byteorder", "helium-proto", "prost", @@ -1540,7 +1682,7 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq 0.3.0", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -1555,9 +1697,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -1577,7 +1719,7 @@ dependencies = [ "anyhow", "async-trait", "axum 0.7.4", - "base64 0.21.0", + "base64 0.21.7", "bs58 0.4.0", "chrono", "clap 4.4.8", @@ -1622,18 +1764,41 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ - "borsh-derive", + "borsh-derive 0.9.3", "hashbrown 0.11.2", ] +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive 0.10.3", + "hashbrown 0.13.1", +] + [[package]] name = "borsh-derive" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", + "borsh-derive-internal 0.9.3", + "borsh-schema-derive-internal 0.9.3", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.69", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal 0.10.3", + "borsh-schema-derive-internal 0.10.3", "proc-macro-crate 0.1.5", "proc-macro2 1.0.69", "syn 1.0.109", @@ -1650,6 +1815,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "borsh-schema-derive-internal" version = "0.9.3" @@ -1661,6 +1837,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "brotli" version = "3.3.4" @@ -1789,11 +1976,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.77" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -1814,7 +2002,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -1826,16 +2014,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "circuit-breaker" version = "0.1.0" @@ -1950,6 +2128,28 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "config" version = "0.13.3" @@ -1966,15 +2166,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", "unicode-width", - "windows-sys 0.42.0", + "windows-sys 0.52.0", ] [[package]] @@ -1989,9 +2189,9 @@ dependencies = [ [[package]] name = "console_log" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878ad067d4089144a36ee412d665916c665430eb84c0057b9987f424a5d15c03" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" dependencies = [ "log", "web-sys", @@ -2011,23 +2211,21 @@ checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "const-random" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" +checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" dependencies = [ "const-random-macro", - "proc-macro-hack", ] [[package]] name = "const-random-macro" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ "getrandom 0.2.10", "once_cell", - "proc-macro-hack", "tiny-keccak", ] @@ -2142,9 +2340,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -2275,7 +2473,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.3.0", + "cipher", ] [[package]] @@ -2342,8 +2540,18 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.14.2", + "darling_macro 0.14.2", +] + +[[package]] +name = "darling" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +dependencies = [ + "darling_core 0.20.5", + "darling_macro 0.20.5", ] [[package]] @@ -2360,17 +2568,42 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.69", + "quote 1.0.33", + "strsim 0.10.0", + "syn 2.0.38", +] + [[package]] name = "darling_macro" version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" dependencies = [ - "darling_core", + "darling_core 0.14.2", "quote 1.0.33", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +dependencies = [ + "darling_core 0.20.5", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "data-credits" version = "0.2.1" @@ -2410,7 +2643,7 @@ dependencies = [ name = "denylist" version = "0.1.0" dependencies = [ - "base64 0.21.0", + "base64 0.21.7", "bincode", "bytes", "chrono", @@ -2455,6 +2688,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "derive_builder" version = "0.12.0" @@ -2470,7 +2714,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ - "darling", + "darling 0.14.2", "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", @@ -2488,9 +2732,9 @@ dependencies = [ [[package]] name = "dialoguer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3c796f3b0b408d9fd581611b47fa850821fcb84aa640b83a3c1a5be2d691f2" +checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" dependencies = [ "console", "shell-words", @@ -2509,11 +2753,11 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "const-oid 0.9.5", "crypto-common", "subtle", @@ -2528,16 +2772,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - [[package]] name = "dirs-sys" version = "0.3.7" @@ -2549,17 +2783,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "displaydoc" version = "0.2.3" @@ -2600,6 +2823,12 @@ version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0" +[[package]] +name = "dyn-clone" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" + [[package]] name = "eager" version = "0.1.0" @@ -2666,9 +2895,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -2715,34 +2944,22 @@ dependencies = [ [[package]] name = "enum-iterator" -version = "0.8.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" -dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 1.0.109", -] - -[[package]] -name = "enum_dispatch" -version = "0.3.11" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" +checksum = "03cdc46ec28bd728e67540c528013c6a10eb69a02eb31078a1bda695438cbfb8" dependencies = [ - "once_cell", "proc-macro2 1.0.69", "quote 1.0.33", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] @@ -2814,7 +3031,7 @@ dependencies = [ "aws-config", "aws-sdk-s3", "aws-types 0.51.0", - "base64 0.21.0", + "base64 0.21.7", "beacon", "blake3", "bytes", @@ -3019,20 +3236,11 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "serde", "typenum", @@ -3130,6 +3338,17 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +[[package]] +name = "goblin" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" +dependencies = [ + "log", + "plain", + "scroll", +] + [[package]] name = "group" version = "0.11.0" @@ -3185,7 +3404,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6fb938100651db317719f46877a3cd82105920be4ea2ff49d55d1d65fa7bec1" dependencies = [ - "ahash 0.8.2", + "ahash 0.8.7", "auto_ops", "either", "float_eq", @@ -3229,7 +3448,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "ahash 0.8.2", + "ahash 0.8.7", ] [[package]] @@ -3306,7 +3525,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5cff2c83e56f92211d867fbb233d700039deddf293beea7fecf99561f3bebb3" dependencies = [ - "base64 0.21.0", + "base64 0.21.7", "bs58 0.5.0", "byteorder", "ed25519-compact", @@ -3377,6 +3596,9 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "hex-literal" @@ -3440,7 +3662,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -3596,7 +3818,7 @@ dependencies = [ "http 0.2.11", "hyper 0.14.23", "log", - "rustls 0.20.7", + "rustls 0.20.9", "rustls-native-certs", "tokio", "tokio-rustls 0.23.4", @@ -3726,14 +3948,15 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.16.2" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ "console", - "lazy_static", + "instant", "number_prefix", - "regex", + "portable-atomic", + "unicode-width", ] [[package]] @@ -3742,7 +3965,7 @@ version = "0.1.0" dependencies = [ "anyhow", "backon", - "base64 0.21.0", + "base64 0.21.7", "bs58 0.4.0", "chrono", "clap 4.4.8", @@ -3772,15 +3995,6 @@ dependencies = [ "triggered", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - [[package]] name = "instant" version = "0.1.12" @@ -3797,7 +4011,7 @@ dependencies = [ "anyhow", "async-trait", "backon", - "base64 0.21.0", + "base64 0.21.7", "bs58 0.4.0", "chrono", "clap 4.4.8", @@ -3873,7 +4087,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "base64 0.21.0", + "base64 0.21.7", "beacon", "blake3", "chrono", @@ -4150,16 +4364,6 @@ dependencies = [ "rle-decode-fast", ] -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libm" version = "0.2.6" @@ -4223,12 +4427,6 @@ dependencies = [ "cc", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "lock_api" version = "0.4.10" @@ -4275,7 +4473,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4301,18 +4499,18 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ "autocfg", ] [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -4335,7 +4533,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.2", + "ahash 0.8.7", "metrics-macros", "portable-atomic", ] @@ -4346,7 +4544,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" dependencies = [ - "base64 0.21.0", + "base64 0.21.7", "hyper 0.14.23", "indexmap 1.9.3", "ipnet", @@ -4431,7 +4629,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "base64 0.21.0", + "base64 0.21.7", "bs58 0.4.0", "chrono", "clap 4.4.8", @@ -4473,7 +4671,7 @@ version = "0.1.0" dependencies = [ "angry-purple-tiger", "anyhow", - "base64 0.21.0", + "base64 0.21.7", "clap 4.4.8", "dialoguer", "futures", @@ -4541,7 +4739,7 @@ dependencies = [ "anyhow", "async-trait", "backon", - "base64 0.21.0", + "base64 0.21.7", "chrono", "clap 4.4.8", "config", @@ -4595,7 +4793,7 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", "sha2 0.10.6", "sha3 0.10.6", @@ -4639,14 +4837,15 @@ checksum = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae" [[package]] name = "nix" -version = "0.24.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags", "cfg-if", "libc", - "memoffset 0.6.5", + "memoffset 0.7.1", + "pin-utils", ] [[package]] @@ -4792,7 +4991,16 @@ version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e0072973714303aa6e3631c7e8e777970cf4bdd25dc4932e41031027b8bcc4e" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.10", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", ] [[package]] @@ -4807,6 +5015,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "number_prefix" version = "0.4.0" @@ -4924,7 +5144,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -4954,7 +5174,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5051,12 +5271,18 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "poc-entropy" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.21.0", + "base64 0.21.7", "blake3", "bs58 0.5.0", "chrono", @@ -5149,6 +5375,7 @@ dependencies = [ "metrics-exporter-prometheus", "poc-metrics", "prost", + "pyth-sdk-solana", "serde", "serde_json", "solana-client", @@ -5214,12 +5441,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" version = "0.4.30" @@ -5306,6 +5527,37 @@ dependencies = [ "prost", ] +[[package]] +name = "pyth-sdk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7aeef4d5f0a9c98ff5af2ddd84a8b89919c512188305b497a9eb9afa97a949" +dependencies = [ + "borsh 0.10.3", + "borsh-derive 0.10.3", + "getrandom 0.2.10", + "hex", + "schemars", + "serde", +] + +[[package]] +name = "pyth-sdk-solana" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa571ea6ea51102b8fc03303d0e6fea4f788f77bb4e0d65ae2d3c5e384e3187" +dependencies = [ + "borsh 0.10.3", + "borsh-derive 0.10.3", + "bytemuck", + "num-derive", + "num-traits", + "pyth-sdk", + "serde", + "solana-program", + "thiserror", +] + [[package]] name = "qstring" version = "0.7.2" @@ -5333,17 +5585,16 @@ dependencies = [ [[package]] name = "quinn" -version = "0.8.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" dependencies = [ "bytes", - "futures-channel", - "futures-util", - "fxhash", + "pin-project-lite", "quinn-proto", "quinn-udp", - "rustls 0.20.7", + "rustc-hash", + "rustls 0.20.9", "thiserror", "tokio", "tracing", @@ -5352,17 +5603,16 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.8.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "fxhash", "rand 0.8.5", "ring 0.16.20", - "rustls 0.20.7", + "rustc-hash", + "rustls 0.20.9", "rustls-native-certs", - "rustls-pemfile 0.2.1", "slab", "thiserror", "tinyvec", @@ -5372,16 +5622,15 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.1.4" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" dependencies = [ - "futures-util", "libc", "quinn-proto", "socket2 0.4.9", - "tokio", "tracing", + "windows-sys 0.42.0", ] [[package]] @@ -5515,9 +5764,9 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem 1.1.1", "ring 0.16.20", @@ -5596,7 +5845,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ "async-compression", - "base64 0.21.0", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -5614,7 +5863,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls 0.21.9", - "rustls-pemfile 1.0.1", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", @@ -5649,7 +5898,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "base64 0.21.0", + "base64 0.21.7", "bs58 0.4.0", "chrono", "clap 4.4.8", @@ -5773,14 +6022,13 @@ checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" [[package]] name = "rpassword" -version = "6.0.1" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", - "serde", - "serde_json", - "winapi", + "rtoolbox", + "windows-sys 0.48.0", ] [[package]] @@ -5814,6 +6062,16 @@ dependencies = [ "smallvec", ] +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "rust_decimal" version = "1.26.1" @@ -5862,7 +6120,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.14", + "semver 1.0.21", ] [[package]] @@ -5876,9 +6134,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.7" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", "ring 0.16.20", @@ -5905,20 +6163,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.1", + "rustls-pemfile", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "rustls-pemfile" version = "1.0.1" @@ -5940,9 +6189,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" @@ -5960,6 +6209,30 @@ dependencies = [ "windows-sys 0.36.1", ] +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "serde_derive_internals", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -5972,6 +6245,26 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +[[package]] +name = "scroll" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "sct" version = "0.7.0" @@ -6028,9 +6321,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "semver-parser" @@ -6067,11 +6360,22 @@ dependencies = [ "syn 2.0.38", ] +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "serde_json" -version = "1.0.89" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9" dependencies = [ "itoa 1.0.9", "ryu", @@ -6112,15 +6416,25 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "serde_with" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" dependencies = [ - "indexmap 1.9.3", - "ryu", "serde", - "yaml-rust", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.5", + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", ] [[package]] @@ -6131,7 +6445,7 @@ checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6142,7 +6456,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6166,7 +6480,7 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6187,7 +6501,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -6317,12 +6631,12 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b34f8342ffa6180a3368e51b933abf0ef09dc8333b4a41b76bb3085e530608c" +checksum = "850d5d9dc8fa6ea42f4e61c78e296bbbce5a3531ff4cb3c58ef36ee31781049c" dependencies = [ "Inflector", - "base64 0.13.1", + "base64 0.21.7", "bincode", "bs58 0.4.0", "bv", @@ -6333,18 +6647,17 @@ dependencies = [ "solana-address-lookup-table-program", "solana-config-program", "solana-sdk", - "solana-vote-program", "spl-token", - "spl-token-2022 0.5.0", + "spl-token-2022", "thiserror", "zstd", ] [[package]] name = "solana-address-lookup-table-program" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15112ecf013f15e53d5a50fd413f93b47343a5b911f96ee143ffab2f497eff66" +checksum = "8a7f867cde478a078d4c4ceb113f4f9ac7e29c2efea98f80a2b30cdcd7be83c5" dependencies = [ "bincode", "bytemuck", @@ -6363,9 +6676,9 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223a78a2945a50fc49ce4ec58e079aa6c2f33fdf29387bffab224a9f51908714" +checksum = "c3c99636da9a4acad58d0e8142e36395ece48fc41c396e297e702b6a789b190f" dependencies = [ "chrono", "clap 2.34.0", @@ -6379,81 +6692,44 @@ dependencies = [ "url", ] -[[package]] -name = "solana-cli-config" -version = "1.14.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917eb35225a067b87ab797f454e553aea34dcc4ed495b1e9413a5a7de35194a0" -dependencies = [ - "dirs-next", - "lazy_static", - "serde", - "serde_derive", - "serde_yaml", - "solana-clap-utils", - "solana-sdk", - "url", -] - [[package]] name = "solana-client" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a396056359554ef0882be7f9cf4eb6942df761055cd8f7771a04bcd78e40fe" +checksum = "acc7a437165d8fcfac3c63963e394f0ea497b5d2a75159bb3a1ed75dbeb36a7e" dependencies = [ - "async-mutex", "async-trait", - "base64 0.13.1", "bincode", - "bs58 0.4.0", - "bytes", - "clap 2.34.0", - "crossbeam-channel", - "enum_dispatch", "futures", "futures-util", "indexmap 1.9.3", "indicatif", - "itertools 0.10.5", - "jsonrpc-core", - "lazy_static", "log", "quinn", - "quinn-proto", "rand 0.7.3", - "rand_chacha 0.2.2", "rayon", - "reqwest", - "rustls 0.20.7", - "semver 1.0.14", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder", - "solana-clap-utils", - "solana-faucet", + "solana-connection-cache", "solana-measure", "solana-metrics", - "solana-net-utils", + "solana-pubsub-client", + "solana-quic-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-rpc-client-nonce-utils", "solana-sdk", "solana-streamer", - "solana-transaction-status", - "solana-version", - "solana-vote-program", - "spl-token-2022 0.5.0", + "solana-thin-client", + "solana-tpu-client", + "solana-udp-client", "thiserror", "tokio", - "tokio-stream", - "tokio-tungstenite", - "tungstenite", - "url", ] [[package]] name = "solana-config-program" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388bc028b037da5752bd2e6910afe8007232ddc58eb2c7a2523f1c6d818abe90" +checksum = "d6f9f2201c7e526581511fa6525e281518be5cabaee82bd5b29fe4b78744148d" dependencies = [ "bincode", "chrono", @@ -6464,38 +6740,35 @@ dependencies = [ ] [[package]] -name = "solana-faucet" -version = "1.14.15" +name = "solana-connection-cache" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91a52f211164c9403c1ea11318b388d8d4bcfe3a886f7f70f695ade5409e359f" +checksum = "3ee52de352e10e53b252df0815d685a9c6f3e8d3baa0f65e214dfcd247db0e21" dependencies = [ + "async-trait", "bincode", - "byteorder", - "clap 2.34.0", - "crossbeam-channel", + "futures-util", + "indexmap 1.9.3", "log", - "serde", - "serde_derive", - "solana-clap-utils", - "solana-cli-config", - "solana-logger", + "rand 0.7.3", + "rayon", + "rcgen", + "solana-measure", "solana-metrics", "solana-sdk", - "solana-version", - "spl-memo", "thiserror", "tokio", ] [[package]] name = "solana-frozen-abi" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f651fd3d06d9aa6c66d2ceb7230278ddad59403dc1cc4abf82a69970dc6f631d" +checksum = "361cc834e5fbbe1a73f1d904fcb8ab052a665e5be6061bd1ba7ab478d7d17c9c" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.7", "blake3", - "block-buffer 0.9.0", + "block-buffer 0.10.4", "bs58 0.4.0", "bv", "byteorder", @@ -6503,7 +6776,6 @@ dependencies = [ "either", "generic-array", "getrandom 0.1.16", - "hashbrown 0.12.3", "im", "lazy_static", "log", @@ -6523,21 +6795,21 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301bb4bd66f592d4b799db0fb0ed1ae9fc7a8453476961faef1223127091574b" +checksum = "575d875dc050689f9f88c542e292e295e2f081d4e96e0df297981e45cbad8824" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", "rustc_version 0.4.0", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "solana-logger" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305cf85e48a7660df7a483762dcf7989d4b3f6e3de2153f2f9f98ba3785a0bd6" +checksum = "c00faf7aa6a3f47c542bd45d2d7f13af9a382d993e647976a676fe1b0eec4eb2" dependencies = [ "env_logger", "lazy_static", @@ -6546,9 +6818,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a19c00ebaf498911266b63bc55f78916bf3c6fe236316af8144e024df14c6d7" +checksum = "0e19c6e1b35df3c212619a7995ae3576fa92ab15ecfc065899f21385cbe45c95" dependencies = [ "log", "solana-sdk", @@ -6556,9 +6828,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2dbc83864877ece6f686ba04e1230fc933916ca21bbf3aff9aac393918a3c63" +checksum = "10e62760a5f87d836169eb3bb446bae174181db07d2c8016be36de49c04fd432" dependencies = [ "crossbeam-channel", "gethostname", @@ -6570,9 +6842,9 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daaace80b5fe18adf86447cbe53f4a8424fa1be5d6f49ed816efd32769221c84" +checksum = "308c4c36c634d418589cf1df121d143819feff81932de81640de3d64878934eb" dependencies = [ "bincode", "clap 3.2.25", @@ -6592,11 +6864,11 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3259b43ea1f93f825176bf1310ba7ace17541e0aae4c9167986a92d903ef92eb" +checksum = "a4d44a4998ba6d9b37e89399d9ce2812e84489dd4665df619fb23366e1c2ec1b" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.7", "bincode", "bv", "caps", @@ -6619,16 +6891,21 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a52d34820e44c56a23ef540a9c996873885c4834e7e36bc5901990c675603c" +checksum = "9863ff5c6e828015bec331c26fb53e48352a264a9be682e7e078d2c3b3e93b46" dependencies = [ - "base64 0.13.1", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", + "array-bytes", + "base64 0.21.7", "bincode", "bitflags", "blake3", - "borsh", - "borsh-derive", + "borsh 0.10.3", + "borsh 0.9.3", "bs58 0.4.0", "bv", "bytemuck", @@ -6643,7 +6920,8 @@ dependencies = [ "libc", "libsecp256k1", "log", - "memoffset 0.6.5", + "memoffset 0.9.0", + "num-bigint 0.4.3", "num-derive", "num-traits", "parking_lot 0.12.1", @@ -6668,20 +6946,20 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bc5a5da86d34d458ce0fd67992f1a82b15b775b7c38e791e8a17ec3a08803ac" +checksum = "05813d4d2e141ab4449cf684cc5b05512dfaabb7251561c5bb1ccf1e4221b210" dependencies = [ - "base64 0.13.1", + "base64 0.21.7", "bincode", "eager", "enum-iterator", "itertools 0.10.5", "libc", - "libloading", "log", "num-derive", "num-traits", + "percentage", "rand 0.7.3", "rustc_version 0.4.0", "serde", @@ -6690,14 +6968,68 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-sdk", + "solana_rbpf", "thiserror", ] +[[package]] +name = "solana-pubsub-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd0753cdde1710f50d58bd40a45e58f5368a25dabff6b18ba635c3d6959a558" +dependencies = [ + "crossbeam-channel", + "futures-util", + "log", + "reqwest", + "semver 1.0.21", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-quic-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d96abde446eaa903d16961cfd3a6e98dc0d680b9edd61c39938c61548d53e" +dependencies = [ + "async-mutex", + "async-trait", + "futures", + "itertools 0.10.5", + "lazy_static", + "log", + "quinn", + "quinn-proto", + "quinn-udp", + "rcgen", + "rustls 0.20.9", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-rpc-client-api", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + [[package]] name = "solana-rayon-threadlimit" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ca466115ea5d65863c8ce717efde714308dd60931244ea42ba394fac471a7c" +checksum = "82ab62fc62458271d746678a3f5625e1654e3cb42a8f318ef4f1ea25991bb085" dependencies = [ "lazy_static", "num_cpus", @@ -6705,9 +7037,9 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0bdffc62c46598a541fab68355e313b5bae3429bcd4910761f4f6f63b849f5" +checksum = "863f10b8c2a893d1ec85b3ae8020c714512a67302b80c24dde0016eea4034a7c" dependencies = [ "console", "dialoguer", @@ -6716,29 +7048,90 @@ dependencies = [ "num-traits", "parking_lot 0.12.1", "qstring", - "semver 1.0.14", + "semver 1.0.21", "solana-sdk", "thiserror", "uriparse", ] +[[package]] +name = "solana-rpc-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df04998cef2d0fe1291599b69acafc7f8cd87305d7f1525c8ae10aef1cc5411c" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bincode", + "bs58 0.4.0", + "indicatif", + "log", + "reqwest", + "semver 1.0.21", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "tokio", +] + +[[package]] +name = "solana-rpc-client-api" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2912ddbff841fbce1e30b0b9a420993c63b6cc7866e5f0af3740fcd6d85bb8" +dependencies = [ + "base64 0.21.7", + "bs58 0.4.0", + "jsonrpc-core", + "reqwest", + "semver 1.0.21", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "solana-rpc-client-nonce-utils" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31100f6cc340dd322f57d00a334fa0a96f628ba86b04fcda1f84307deb14c31" +dependencies = [ + "clap 2.34.0", + "solana-clap-utils", + "solana-rpc-client", + "solana-sdk", + "thiserror", +] + [[package]] name = "solana-sdk" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ac3ab8b970c3e4c07d0c2b184a0be449075e933c81f0e27cd9fcab2b122020" +checksum = "621e6973766420162541b26e7974783d32d5471571610da30c5bb0b6263046c9" dependencies = [ "assert_matches", - "base64 0.13.1", + "base64 0.21.7", "bincode", "bitflags", - "borsh", + "borsh 0.10.3", "bs58 0.4.0", "bytemuck", "byteorder", "chrono", "derivation-path", - "digest 0.10.6", + "digest 0.10.7", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", @@ -6751,6 +7144,7 @@ dependencies = [ "memmap2", "num-derive", "num-traits", + "num_enum 0.6.1", "pbkdf2 0.11.0", "qstring", "rand 0.7.3", @@ -6761,6 +7155,7 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", + "serde_with", "sha2 0.10.6", "sha3 0.10.6", "solana-frozen-abi", @@ -6775,23 +7170,25 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7f28d94a4ed37c6eb7c62221da0e2206f11af051e91c045f2cce60111d3020" +checksum = "bd177a74fb3a0a362f1292c027d668eff609ac189f08b78158324587a0a4f8d1" dependencies = [ "bs58 0.4.0", "proc-macro2 1.0.69", "quote 1.0.33", "rustversion", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] name = "solana-streamer" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc73adca6270314a92480d944d991f3697b4bd66322ea39233ee5102a7a6760" +checksum = "3942a60afb0282b07ef0f3c32078145ab7545cbed2cac98f1ec4b9f63016df62" dependencies = [ + "async-channel", + "bytes", "crossbeam-channel", "futures-util", "histogram", @@ -6804,9 +7201,11 @@ dependencies = [ "percentage", "pkcs8", "quinn", + "quinn-proto", + "quinn-udp", "rand 0.7.3", "rcgen", - "rustls 0.20.7", + "rustls 0.20.9", "solana-metrics", "solana-perf", "solana-sdk", @@ -6815,16 +7214,56 @@ dependencies = [ "x509-parser", ] +[[package]] +name = "solana-thin-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d712aaf7701a4504521fc09f1743c647edf596e3852a64f6d66b2e5a822388f8" +dependencies = [ + "bincode", + "log", + "rayon", + "solana-connection-cache", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", +] + +[[package]] +name = "solana-tpu-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48cb32f7443f80cb45e244d514a706b030b5a71ef86b0436c1d39cbfff5491b4" +dependencies = [ + "async-trait", + "bincode", + "futures-util", + "indexmap 1.9.3", + "indicatif", + "log", + "rand 0.7.3", + "rayon", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-pubsub-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", +] + [[package]] name = "solana-transaction-status" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c614df6e742e7be647b05775b3a0414fc0570f009e180d86554b3d6797f77e" +checksum = "8aed485ddb4268b4e4ec64012016cd54ba3a4142377a99706fc3ab7768eb2bea" dependencies = [ "Inflector", - "base64 0.13.1", + "base64 0.21.7", "bincode", - "borsh", + "borsh 0.9.3", "bs58 0.4.0", "lazy_static", "log", @@ -6833,26 +7272,38 @@ dependencies = [ "serde_json", "solana-account-decoder", "solana-address-lookup-table-program", - "solana-measure", - "solana-metrics", "solana-sdk", - "solana-vote-program", "spl-associated-token-account", "spl-memo", "spl-token", - "spl-token-2022 0.5.0", + "spl-token-2022", "thiserror", ] +[[package]] +name = "solana-udp-client" +version = "1.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c92798affef44c1ae2a694006209608044e99106b7945966d53586f5a95d9e2" +dependencies = [ + "async-trait", + "solana-connection-cache", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + [[package]] name = "solana-version" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359aecee536123048ae876b938688b4a87fa879bd1e8e752406f871656b98153" +checksum = "a80a20dfea2afed91761ab3fecc8f96b973a742dc7728f3e343711efe6e8e05f" dependencies = [ "log", "rustc_version 0.4.0", - "semver 1.0.14", + "semver 1.0.21", "serde", "serde_derive", "solana-frozen-abi", @@ -6862,9 +7313,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68586a5b4862cd840a4e3e17d8428714a0f01757e5221b1d6ac1dd3ba2237b9b" +checksum = "ab8b719e077cc9e42b8965dd06ff6b5f09fa2a436f2297efdcf471c05d187a6c" dependencies = [ "bincode", "log", @@ -6876,6 +7327,7 @@ dependencies = [ "solana-frozen-abi", "solana-frozen-abi-macro", "solana-metrics", + "solana-program", "solana-program-runtime", "solana-sdk", "thiserror", @@ -6883,17 +7335,15 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.15" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b25e1c3a45dfb9e4307cd5f655e0fb2efc64eb5011e517a8f6abc9c88c44566" +checksum = "61aabdec9fe1b311dce5d21fa5bd58fbaa985e8003e0d0aedf3795113aacc1ea" dependencies = [ "aes-gcm-siv", - "arrayref", - "base64 0.13.1", + "base64 0.21.7", "bincode", "bytemuck", "byteorder", - "cipher 0.4.3", "curve25519-dalek", "getrandom 0.1.16", "itertools 0.10.5", @@ -6912,6 +7362,25 @@ dependencies = [ "zeroize", ] +[[package]] +name = "solana_rbpf" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17d4ba1e58947346e360fabde0697029d36ba83c42f669199b16a8931313cf29" +dependencies = [ + "byteorder", + "combine", + "goblin", + "hash32", + "libc", + "log", + "rand 0.8.5", + "rustc-demangle", + "scroll", + "thiserror", + "winapi", +] + [[package]] name = "spin" version = "0.5.2" @@ -6939,17 +7408,17 @@ dependencies = [ [[package]] name = "spl-associated-token-account" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc000f0fdf1f12f99d77d398137c1751345b18c88258ce0f99b7872cf6c9bd6" +checksum = "978dba3bcbe88d0c2c58366c254d9ea41c5f73357e72fc0bdee4d6b5fc99c8f4" dependencies = [ "assert_matches", - "borsh", + "borsh 0.9.3", "num-derive", "num-traits", "solana-program", "spl-token", - "spl-token-2022 0.5.0", + "spl-token-2022", "thiserror", ] @@ -6972,29 +7441,11 @@ dependencies = [ "bytemuck", "num-derive", "num-traits", - "num_enum", + "num_enum 0.5.10", "solana-program", "thiserror", ] -[[package]] -name = "spl-token-2022" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edb869dbe159b018f17fb9bfa67118c30f232d7f54a73742bc96794dff77ed8" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "solana-zk-token-sdk", - "spl-memo", - "spl-token", - "thiserror", -] - [[package]] name = "spl-token-2022" version = "0.6.1" @@ -7005,7 +7456,7 @@ dependencies = [ "bytemuck", "num-derive", "num-traits", - "num_enum", + "num_enum 0.5.10", "solana-program", "solana-zk-token-sdk", "spl-memo", @@ -7071,8 +7522,8 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "rust_decimal", - "rustls 0.20.7", - "rustls-pemfile 1.0.1", + "rustls 0.20.9", + "rustls-pemfile", "serde", "serde_json", "sha1", @@ -7445,7 +7896,7 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.7", + "rustls 0.20.9", "tokio", "webpki", ] @@ -7479,7 +7930,7 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "rustls 0.20.7", + "rustls 0.20.9", "tokio", "tokio-rustls 0.23.4", "tungstenite", @@ -7533,7 +7984,7 @@ dependencies = [ "prost", "prost-derive", "rustls-native-certs", - "rustls-pemfile 1.0.1", + "rustls-pemfile", "tokio", "tokio-rustls 0.23.4", "tokio-stream", @@ -7702,7 +8153,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.20.7", + "rustls 0.20.9", "sha-1", "thiserror", "url", @@ -7795,6 +8246,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "unsigned-varint" version = "0.7.1" @@ -8126,7 +8586,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -8144,6 +8613,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -8156,6 +8640,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" @@ -8174,6 +8664,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.36.1" @@ -8192,6 +8688,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.36.1" @@ -8210,6 +8712,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" @@ -8228,6 +8736,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -8240,6 +8754,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" @@ -8258,6 +8778,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winreg" version = "0.50.0" @@ -8309,7 +8835,7 @@ version = "0.6.0" source = "git+https://github.com/helium/xorf-generator?branch=main#d55057c88a0e6f40adfeae15197afa66729fb3d5" dependencies = [ "anyhow", - "base64 0.21.0", + "base64 0.21.7", "bincode", "bytes", "clap 4.4.8", @@ -8328,15 +8854,6 @@ dependencies = [ "xorf", ] -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "yansi" version = "0.5.1" @@ -8352,6 +8869,26 @@ dependencies = [ "time", ] +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "zeroize" version = "1.3.0" diff --git a/Cargo.toml b/Cargo.toml index 771a81052..32734627b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,9 +64,9 @@ helium-anchor-gen = {git = "https://github.com/helium/helium-anchor-gen.git"} helium-crypto = {version = "0.8.1", features=["sqlx-postgres", "multisig"]} helium-proto = {git = "https://github.com/helium/proto", branch = "master", features = ["services"]} hextree = "*" -solana-client = "1.14" -solana-sdk = "1.14" -solana-program = "1.11" +solana-client = "1.16" +solana-sdk = "1.16" +solana-program = "1.16" spl-token = "3.5.0" reqwest = {version = "0", default-features=false, features = ["gzip", "json", "rustls-tls"]} beacon = { git = "https://github.com/helium/proto", branch = "master" } @@ -85,6 +85,7 @@ triggered = "0" futures = "*" futures-util = "*" prost = "*" +pyth-sdk-solana = "=0.8" once_cell = "1" lazy_static = "1" config = {version="0", default-features=false, features=["toml"]} diff --git a/price/Cargo.toml b/price/Cargo.toml index 54500863a..d74e342b7 100644 --- a/price/Cargo.toml +++ b/price/Cargo.toml @@ -27,6 +27,7 @@ helium-anchor-gen = { workspace = true } helium-proto = { workspace = true } file-store = { path = "../file_store" } poc-metrics = { path = "../metrics" } +pyth-sdk-solana = {workspace = true} triggered = {workspace = true} solana-client = {workspace = true} solana-sdk = {workspace = true} diff --git a/price/src/main.rs b/price/src/main.rs index 37cdd3e28..54c3f1ddb 100644 --- a/price/src/main.rs +++ b/price/src/main.rs @@ -1,13 +1,11 @@ -use anyhow::{Error, Result}; +use anyhow::Result; use chrono::Duration; use clap::Parser; use file_store::{file_sink, file_upload, FileType}; -use futures_util::TryFutureExt; use helium_proto::BlockchainTokenTypeV1; use price::{cli::check, PriceGenerator, Settings}; use std::path::{self, PathBuf}; use task_manager::TaskManager; -use tokio::{self, signal}; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; const PRICE_SINK_ROLL_MINS: i64 = 3; @@ -48,16 +46,6 @@ impl Cmd { Self::Check(options) => check::run(options.into()).await, } } - - pub async fn run_tm(&self, config: Option) -> Result<()> { - match self { - Self::Server(cmd) => { - let settings = Settings::new(config)?; - cmd.run_tm(&settings).await - } - Self::Check(options) => check::run(options.into()).await, - } - } } #[derive(Debug, clap::Args)] @@ -91,72 +79,6 @@ impl Server { // Install the prometheus metrics exporter poc_metrics::start_metrics(&settings.metrics)?; - // configure shutdown trigger - let (shutdown_trigger, shutdown) = triggered::trigger(); - - let mut sigterm = signal::unix::signal(signal::unix::SignalKind::terminate())?; - tokio::spawn(async move { - tokio::select! { - _ = sigterm.recv() => shutdown_trigger.trigger(), - _ = signal::ctrl_c() => shutdown_trigger.trigger(), - } - }); - - // Initialize uploader - let (file_upload_tx, file_upload_rx) = file_upload::message_channel(); - let file_upload = - file_upload::FileUpload::from_settings(&settings.output, file_upload_rx).await?; - - let store_base_path = path::Path::new(&settings.cache); - - // price generators - let mut hnt_price_generator = - PriceGenerator::new(settings, BlockchainTokenTypeV1::Hnt).await?; - let mut mobile_price_generator = - PriceGenerator::new(settings, BlockchainTokenTypeV1::Mobile).await?; - let mut iot_price_generator = - PriceGenerator::new(settings, BlockchainTokenTypeV1::Iot).await?; - let mut hst_price_generator = - PriceGenerator::new(settings, BlockchainTokenTypeV1::Hst).await?; - - let (price_sink, price_sink_server) = file_sink::FileSinkBuilder::new( - FileType::PriceReport, - store_base_path, - concat!(env!("CARGO_PKG_NAME"), "_report_submission"), - ) - .deposits(Some(file_upload_tx.clone())) - .roll_time(Duration::minutes(PRICE_SINK_ROLL_MINS)) - .create() - .await?; - - tokio::try_join!( - hnt_price_generator - .run(price_sink.clone(), &shutdown) - .map_err(Error::from), - mobile_price_generator - .run(price_sink.clone(), &shutdown) - .map_err(Error::from), - iot_price_generator - .run(price_sink.clone(), &shutdown) - .map_err(Error::from), - hst_price_generator - .run(price_sink, &shutdown) - .map_err(Error::from), - price_sink_server.run(shutdown.clone()).map_err(Error::from), - file_upload.run(shutdown.clone()).map_err(Error::from), - ) - .map(|_| ()) - } - - pub async fn run_tm(&self, settings: &Settings) -> Result<()> { - tracing_subscriber::registry() - .with(tracing_subscriber::EnvFilter::new(&settings.log)) - .with(tracing_subscriber::fmt::layer()) - .init(); - - // Install the prometheus metrics exporter - poc_metrics::start_metrics(&settings.metrics)?; - // Initialize uploader let (file_upload, file_upload_server) = file_upload::FileUpload::from_settings_tm(&settings.output).await?; @@ -175,16 +97,14 @@ impl Server { // price generators let hnt_price_generator = - PriceGenerator::new_tm(settings, BlockchainTokenTypeV1::Hnt, price_sink.clone()) - .await?; + PriceGenerator::new(settings, BlockchainTokenTypeV1::Hnt, price_sink.clone()).await?; let mobile_price_generator = - PriceGenerator::new_tm(settings, BlockchainTokenTypeV1::Mobile, price_sink.clone()) + PriceGenerator::new(settings, BlockchainTokenTypeV1::Mobile, price_sink.clone()) .await?; let iot_price_generator = - PriceGenerator::new_tm(settings, BlockchainTokenTypeV1::Iot, price_sink.clone()) - .await?; + PriceGenerator::new(settings, BlockchainTokenTypeV1::Iot, price_sink.clone()).await?; let hst_price_generator = - PriceGenerator::new_tm(settings, BlockchainTokenTypeV1::Hst, price_sink).await?; + PriceGenerator::new(settings, BlockchainTokenTypeV1::Hst, price_sink).await?; TaskManager::builder() .add_task(file_upload_server) diff --git a/price/src/price_generator.rs b/price/src/price_generator.rs index 510f8fdb0..8e299686c 100644 --- a/price/src/price_generator.rs +++ b/price/src/price_generator.rs @@ -1,5 +1,5 @@ use crate::{metrics::Metrics, Settings}; -use anyhow::{anyhow, Error, Result}; +use anyhow::{anyhow, bail, Error, Result}; use chrono::{DateTime, Duration, TimeZone, Utc}; use file_store::file_sink; use futures::{future::LocalBoxFuture, TryFutureExt}; @@ -11,7 +11,7 @@ use helium_proto::{BlockchainTokenTypeV1, PriceReportV1}; use serde::{Deserialize, Serialize}; use solana_client::nonblocking::rpc_client::RpcClient; use solana_sdk::pubkey::Pubkey as SolPubkey; -use std::{path::PathBuf, str::FromStr}; +use std::{cmp::Ordering, path::PathBuf, str::FromStr}; use task_manager::ManagedTask; use tokio::{fs, time}; @@ -49,7 +49,7 @@ impl ManagedTask for PriceGenerator { self: Box, shutdown: triggered::Listener, ) -> LocalBoxFuture<'static, anyhow::Result<()>> { - Box::pin(self.run_tm(shutdown)) + Box::pin(self.run(shutdown)) } } @@ -81,23 +81,7 @@ impl TryFrom for Price { } impl PriceGenerator { - pub async fn new(settings: &Settings, token_type: BlockchainTokenTypeV1) -> Result { - let client = RpcClient::new(settings.source.clone()); - Ok(Self { - last_price_opt: None, - token_type, - client, - key: settings.price_key(token_type)?, - default_price: settings.default_price(token_type), - interval_duration: settings.interval().to_std()?, - stale_price_duration: settings.stale_price_duration(), - latest_price_file: PathBuf::from_str(&settings.cache)? - .join(format!("{token_type:?}.latest")), - file_sink: None, - }) - } - - pub async fn new_tm( + pub async fn new( settings: &Settings, token_type: BlockchainTokenTypeV1, file_sink: file_sink::FileSinkClient, @@ -117,28 +101,7 @@ impl PriceGenerator { }) } - pub async fn run( - &mut self, - file_sink: file_sink::FileSinkClient, - shutdown: &triggered::Listener, - ) -> Result<()> { - match (self.key, self.default_price) { - (Some(key), _) => self.run_with_key(key, file_sink, shutdown).await, - (None, Some(defaut_price)) => { - self.run_with_default(defaut_price, file_sink, shutdown) - .await - } - _ => { - tracing::warn!( - "stopping price generator for {:?}, not configured", - self.token_type - ); - Ok(()) - } - } - } - - pub async fn run_tm(mut self, shutdown: triggered::Listener) -> Result<()> { + pub async fn run(mut self, shutdown: triggered::Listener) -> Result<()> { match (self.key, self.default_price, self.file_sink.clone()) { (Some(key), _, Some(file_sink)) => self.run_with_key(key, file_sink, &shutdown).await, (None, Some(defaut_price), Some(file_sink)) => { @@ -211,7 +174,15 @@ impl PriceGenerator { key: &SolPubkey, file_sink: &file_sink::FileSinkClient, ) -> Result<()> { - let price_opt = match get_price(&self.client, key, self.token_type).await { + let price_opt = match if matches!( + self.token_type, + BlockchainTokenTypeV1::Hnt | BlockchainTokenTypeV1::Mobile + ) { + // HNT and Mobile prices are currently supported by pyth + self.get_pyth_price(key).await + } else { + self.get_standard_price(key).await + } { Ok(new_price) => { tracing::info!( "updating price for {:?} to {}", @@ -271,6 +242,62 @@ impl PriceGenerator { Ok(()) } + async fn get_pyth_price(&self, price_key: &SolPubkey) -> Result { + let mut account = self.client.get_account(price_key).await?; + let price_oracle = pyth_sdk_solana::load_price_feed_from_account(price_key, &mut account)?; + let curr_price = price_oracle + .get_ema_price_no_older_than(Utc::now().timestamp(), self.interval_duration.as_secs()) + .ok_or_else(|| anyhow!("No new price in the given interval"))?; + + if curr_price.price < 0 { + bail!("Price is less than zero"); + } + + // Remove the confidence interval from the price to get the most optimistic price: + let optimistic_price = curr_price.price as u64 + curr_price.conf * 2; + + // We want the price to have a resulting exponent of 10^-6 + // I don't think it's possible for pyth to give us anything other than -8, but we make + // this robust just in case: + let exp = curr_price.expo + 6; + let adjusted_optimistic_price = match exp.cmp(&0) { + Ordering::Less => optimistic_price / 10_u64.pow(exp.unsigned_abs()), + Ordering::Greater => optimistic_price * 10_u64.pow(exp as u32), + _ => optimistic_price, + }; + + Ok(Price::new( + DateTime::from_timestamp(curr_price.publish_time, 0).ok_or_else(|| { + anyhow!( + "Invalid publish time for price: {}", + curr_price.publish_time + ) + })?, + adjusted_optimistic_price, + self.token_type, + )) + } + + async fn get_standard_price(&self, price_key: &SolPubkey) -> Result { + let price_oracle_v0_data = self.client.get_account_data(price_key).await?; + let mut price_oracle_v0_data = price_oracle_v0_data.as_ref(); + let price_oracle_v0 = PriceOracleV0::try_deserialize(&mut price_oracle_v0_data)?; + + let current_time = Utc::now(); + let current_timestamp = current_time.timestamp(); + + calculate_current_price(&price_oracle_v0.oracles, current_timestamp) + .map(|price| { + tracing::debug!( + "got price: {:?} for token_type: {:?}", + price, + self.token_type + ); + Price::new(current_time, price, self.token_type) + }) + .ok_or_else(|| anyhow!("unable to fetch price!")) + } + fn is_valid(&self, price: &Price) -> bool { price.timestamp > Utc::now() - self.stale_price_duration } @@ -305,23 +332,3 @@ impl PriceGenerator { } } } - -pub async fn get_price( - client: &RpcClient, - price_key: &SolPubkey, - token_type: BlockchainTokenTypeV1, -) -> Result { - let price_oracle_v0_data = client.get_account_data(price_key).await?; - let mut price_oracle_v0_data = price_oracle_v0_data.as_ref(); - let price_oracle_v0 = PriceOracleV0::try_deserialize(&mut price_oracle_v0_data)?; - - let current_time = Utc::now(); - let current_timestamp = current_time.timestamp(); - - calculate_current_price(&price_oracle_v0.oracles, current_timestamp) - .map(|price| { - tracing::debug!("got price: {:?} for token_type: {:?}", price, token_type); - Price::new(current_time, price, token_type) - }) - .ok_or_else(|| anyhow!("unable to fetch price!")) -}