diff --git a/Cargo.lock b/Cargo.lock index 0fb61a3ce..aae2497a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,14 +7,9 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli", + "lazy_static", + "regex", ] [[package]] @@ -23,13 +18,49 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if 1.0.0", + "cipher 0.3.0", + "cpufeatures", + "opaque-debug", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" +dependencies = [ + "aead", + "aes", + "cipher 0.3.0", + "ctr", + "polyval", + "subtle", + "zeroize", +] + [[package]] name = "ahash" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", "once_cell", "version_check", ] @@ -57,127 +88,144 @@ checksum = "6b2d54853319fd101b8dd81de382bcbf3e03410a64d8928bbee85a3e7dcde483" [[package]] name = "anchor-attribute-access-control" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed70c97998752288ce9840ae05dac6f7922856624d83bd8706941c363df5aa75" +checksum = "fb45cc9d1ce72e5eda341126de495a2c3810108c2333c6f3b4e09d99605f3f48" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", + "proc-macro2 1.0.37", + "quote 1.0.17", "regex", - "syn", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-account" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7325a9ddeab60ace310dd920b354a6318d31b4dd6d8172a518de3b8d58601035" +checksum = "16406bd1c27ff4ebdca4f5d5b09b7952f4d161f25094243e09355797c6bddaa6" dependencies = [ "anchor-syn", "anyhow", "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.37", + "quote 1.0.17", "rustversion", - "syn", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-constant" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfe53dec5dfe5742d949e7c21a3b813296c274183f4fbf669a070e45bd669c9" +checksum = "d347ce462ceba4473d216bab2c9d0d9702a027d25e93b5376d8d8593d9e13de0" dependencies = [ "anchor-syn", - "proc-macro2", - "syn", + "proc-macro2 1.0.37", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-error" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda765864694d1ddeff66e8d97b015760379dc7136474633f7db0ec04577fc8" +checksum = "354582d796f8309252d18f787f0e49df8ab6fdfe48f838f059f001ee2f04b5c8" dependencies = [ "anchor-syn", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-event" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab29f55c9bf69f1e9a19838b5630204beaaddc4ca3ab8eed59a637e36b51428" +checksum = "1a2e218dd8a446993463e38c00159349ae25aa76076191cde0ba460c9c65a180" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-interface" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345ba1c992d29d3b666c4e5c8d8383d3291c4be3795dc13e218d59df55a08c21" +checksum = "1e1e536e15b13e3168cf878a90b1bd2dfff1b4c8c9475be4b87f71b20cf8e85d" dependencies = [ "anchor-syn", "anyhow", - "heck", - "proc-macro2", - "quote", - "syn", + "heck 0.3.3", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-program" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fd7fdf8c416d834650e7b8ef1db5746acc74c7333b3d9b3a385f5129e9b522" +checksum = "6519b3ac626c1bd9df407fe22ec6a283f4b1067ee7f3be896ca580be510b7196" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "anchor-attribute-state" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5426c71af1fcaa734d2f1dfde0f1e4ccc878be02707c767d6c9e88ef6686ecd5" +checksum = "88e6a21070bcb053f092a1a9054924e8a1b5afd68f7317d0138327401ac154e1" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "anchor-client" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95d1dc925cb274be7eecd7de6660e41d9fa2d664a7c088fc378cdd22c8e68fb0" +dependencies = [ + "anchor-lang", + "anyhow", + "regex", + "serde", + "solana-account-decoder", + "solana-client", + "solana-sdk", + "thiserror", + "url 2.2.2", ] [[package]] name = "anchor-derive-accounts" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e597c70258147a5da1ca8801474e3a4a009214c1b7138cd863ef03eeba353a1" +checksum = "09a65890c2132f30a3ff160fb83f74e0a0454f904f46f1c9be38d3e94c2d06ed" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "anchor-lang" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3fab2e8305bfe8971e04e963a442a767d81f8d61e73effdbe04df73bb7f9feb" +checksum = "ef066f4bc0cb4080ff6244b6a66ef31b6077e0302738b365ca894540f5b7dcf8" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -199,9 +247,9 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49a20ac8743546bc76a247ff0a81ceb0cee7653b087ccb330bf3553d907d522" +checksum = "bcdf03d76450451f6c587098fa0d9775dc7eabf9173c89bd1bb17dd72b49e748" dependencies = [ "anchor-lang", "solana-program", @@ -211,28 +259,43 @@ dependencies = [ [[package]] name = "anchor-syn" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68de711b6da0575993b85693d9e075a014de7e66ff4c29e0c38a54376b7d426d" +checksum = "506cb44e4e895f917566c7a0554e487a001041d82dd3ae9f1f37ae7f20f86222" dependencies = [ "anyhow", "bs58 0.3.1", - "heck", - "proc-macro2", + "heck 0.3.3", + "proc-macro2 1.0.37", "proc-macro2-diagnostics", - "quote", + "quote 1.0.17", "serde", "serde_json", - "sha2", - "syn", + "sha2 0.9.9", + "syn 1.0.91", "thiserror", ] [[package]] -name = "anyhow" -version = "1.0.55" +name = "ansi_term" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" + +[[package]] +name = "arc-swap" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f" [[package]] name = "arrayref" @@ -259,14 +322,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] -name = "async-trait" -version = "0.1.52" +name = "async-mutex" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" dependencies = [ - "proc-macro2", - "quote", - "syn", + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +dependencies = [ + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "async-trait" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +dependencies = [ + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -277,7 +370,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -286,6 +379,49 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47594e438a243791dba58124b6669561f5baa14cb12046641d8008bf035e5a25" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding 2.1.0", + "pin-project-lite", + "serde", + "sync_wrapper", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a671c9ae99531afdd5d3ee8340b8da547779430689947144c140fc74a740244" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", +] + [[package]] name = "az" version = "1.2.0" @@ -293,20 +429,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f771a5d1f5503f7f4279a30f3643d3421ba149848b89ecaaec0ea2acf04a5ac4" [[package]] -name = "backtrace" -version = "0.3.64" +name = "backoff" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", + "futures-core", + "getrandom 0.2.6", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", ] +[[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + [[package]] name = "base64" version = "0.12.3" @@ -319,6 +460,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64ct" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" + [[package]] name = "bincode" version = "1.3.3" @@ -328,12 +475,40 @@ dependencies = [ "serde", ] +[[package]] +name = "bindgen" +version = "0.59.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2 1.0.37", + "quote 1.0.17", + "regex", + "rustc-hash", + "shlex", +] + [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + [[package]] name = "blake3" version = "1.3.1" @@ -343,7 +518,7 @@ dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if", + "cfg-if 1.0.0", "constant_time_eq", "digest 0.10.3", ] @@ -392,8 +567,8 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2", - "syn", + "proc-macro2 1.0.37", + "syn 1.0.91", ] [[package]] @@ -402,9 +577,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -413,9 +588,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -430,6 +605,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + [[package]] name = "bumpalo" version = "3.9.1" @@ -448,22 +632,22 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e851ca7c24871e7336801608a4797d7376545b6928a10d32d75685687141ead" +checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54" +checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -499,6 +683,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "caps" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61bf7211aad104ce2769ec05efcdfabf85ee84ac92461d142f22cf8badd0e54c" +dependencies = [ + "errno", + "libc", + "thiserror", +] + [[package]] name = "cc" version = "1.0.73" @@ -508,6 +703,21 @@ dependencies = [ "jobserver", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -519,9 +729,9 @@ name = "checked_math" version = "0.1.0" dependencies = [ "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "trybuild", ] @@ -535,8 +745,8 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time", - "winapi", + "time 0.1.43", + "winapi 0.3.9", ] [[package]] @@ -548,6 +758,60 @@ dependencies = [ "chrono", ] +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +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 = "clang-sys" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cmake" +version = "0.1.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +dependencies = [ + "cc", +] + [[package]] name = "combine" version = "3.8.1" @@ -561,13 +825,28 @@ dependencies = [ "unreachable", ] +[[package]] +name = "console" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "regex", + "terminal_size", + "unicode-width", + "winapi 0.3.9", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen", ] @@ -581,6 +860,18 @@ dependencies = [ "web-sys", ] +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + +[[package]] +name = "const_fn" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -588,10 +879,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] -name = "cpufeatures" -version = "0.2.1" +name = "convert_case" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core_affinity" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8a03115cc34fb0d7c321dd154a3914b3ca082ccc5c11d91bf7117dbbe7171f" +dependencies = [ + "kernel32-sys", + "libc", + "num_cpus", + "winapi 0.2.8", +] + +[[package]] +name = "cpufeatures" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] @@ -602,16 +927,16 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -621,18 +946,19 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" dependencies = [ - "cfg-if", + "autocfg", + "cfg-if 1.0.0", "crossbeam-utils", "lazy_static", "memoffset", @@ -641,11 +967,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "lazy_static", ] @@ -676,23 +1002,12 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.9.1" +name = "ctr" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array", - "subtle", + "cipher 0.3.0", ] [[package]] @@ -704,6 +1019,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", + "serde", "subtle", "zeroize", ] @@ -714,18 +1030,48 @@ version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "num_cpus", "rayon", ] [[package]] -name = "derivation-path" -version = "0.1.3" +name = "der" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193388a8c8c75a490b604ff61775e236541b8975e98e5ca1f6ea97d122b7e2db" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" dependencies = [ - "failure", + "const-oid", +] + +[[package]] +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.37", + "quote 1.0.17", + "rustc_version 0.4.0", + "syn 1.0.91", +] + +[[package]] +name = "dialoguer" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d6b4fabcd9e97e1df1ae15395ac7e49fb144946a0d453959dc2696273b9da" +dependencies = [ + "console", + "tempfile", + "zeroize", ] [[package]] @@ -758,10 +1104,60 @@ dependencies = [ ] [[package]] -name = "ed25519" -version = "1.3.0" +name = "dirs-next" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[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 0.3.9", +] + +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + +[[package]] +name = "dlopen" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +dependencies = [ + "dlopen_derive", + "lazy_static", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "dlopen_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" +dependencies = [ + "libc", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "ed25519" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4" dependencies = [ "signature", ] @@ -776,33 +1172,32 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2", + "sha2 0.9.9", "zeroize", ] [[package]] name = "ed25519-dalek-bip32" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057f328f31294b5ab432e6c39642f54afd1531677d6d4ba2905932844cc242f3" +checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" dependencies = [ "derivation-path", "ed25519-dalek", - "failure", - "hmac 0.9.0", - "sha2", + "hmac 0.12.1", + "sha2 0.10.2", ] [[package]] name = "educe" -version = "0.4.18" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86b50932a01e7ec5c06160492ab660fb19b6bb2a7878030dd6cd68d21df9d4d" +checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac" dependencies = [ "enum-ordinalize", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -812,12 +1207,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] -name = "encoding_rs" -version = "0.8.30" +name = "encode_unicode" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -835,22 +1236,23 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "enum-ordinalize" -version = "3.1.10" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef" +checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c" dependencies = [ "num-bigint", "num-traits", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "rustc_version 0.4.0", + "syn 1.0.91", ] [[package]] @@ -868,9 +1270,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -887,25 +1289,39 @@ dependencies = [ ] [[package]] -name = "failure" -version = "0.1.8" +name = "errno" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ - "backtrace", - "failure_derive", + "errno-dragonfly", + "libc", + "winapi 0.3.9", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "errno-dragonfly" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", + "cc", + "libc", +] + +[[package]] +name = "event-listener" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" + +[[package]] +name = "fast-math" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2465292146cdfc2011350fe3b1c616ac83cf0faeedb33463ba1c332ed8948d66" +dependencies = [ + "ieee754", ] [[package]] @@ -939,10 +1355,10 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -979,9 +1395,9 @@ dependencies = [ "fixed", "paste", "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -994,13 +1410,19 @@ dependencies = [ "fixed-macro-impl", ] +[[package]] +name = "fixedbitset" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" + [[package]] name = "flate2" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crc32fast", "libc", "miniz_oxide", @@ -1012,6 +1434,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.0.1" @@ -1019,7 +1456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", - "percent-encoding", + "percent-encoding 2.1.0", ] [[package]] @@ -1028,6 +1465,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + [[package]] name = "futures" version = "0.3.21" @@ -1068,6 +1511,7 @@ dependencies = [ "futures-core", "futures-task", "futures-util", + "num_cpus", ] [[package]] @@ -1082,9 +1526,9 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -1105,6 +1549,7 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -1117,6 +1562,15 @@ 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.5" @@ -1130,12 +1584,12 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4addc164932852d066774c405dbbdb7914742d2b39e39e1a7ca949c856d054d1" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1144,7 +1598,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", @@ -1153,27 +1607,53 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.10.2+wasi-snapshot-preview1", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "glob" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +[[package]] +name = "globset" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "goauth" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f3d68c8343245dc047982651b5afb8bd659c9959ed72efe5a73bf22684e5fd" +dependencies = [ + "arc-swap", + "futures 0.3.21", + "log", + "reqwest", + "serde", + "serde_derive", + "serde_json", + "simpl", + "smpl_jwt", + "time 0.3.9", + "tokio", +] + [[package]] name = "goblin" version = "0.4.3" @@ -1187,9 +1667,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ "bytes", "fnv", @@ -1200,7 +1680,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.1", "tracing", ] @@ -1237,6 +1717,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1246,34 +1732,29 @@ dependencies = [ "libc", ] +[[package]] +name = "histogram" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" + [[package]] name = "hmac" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac", "digest 0.9.0", ] [[package]] name = "hmac" -version = "0.9.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac 0.9.1", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.1", - "digest 0.9.0", + "digest 0.10.3", ] [[package]] @@ -1309,6 +1790,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + [[package]] name = "httparse" version = "1.6.0" @@ -1329,9 +1816,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.17" +version = "0.14.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" +checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" dependencies = [ "bytes", "futures-channel", @@ -1364,6 +1851,42 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.2.3" @@ -1375,6 +1898,28 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "ieee754" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c" + +[[package]] +name = "im" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111c1983f3c5bb72732df25cddacee9b546d08325fb584b5ebd38148be7b0246" +dependencies = [ + "bitmaps", + "rand_core 0.5.1", + "rand_xoshiro", + "rayon", + "serde", + "sized-chunks", + "typenum", + "version_check", +] + [[package]] name = "index_list" version = "0.2.7" @@ -1383,12 +1928,34 @@ checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" [[package]] name = "indexmap" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" dependencies = [ "autocfg", "hashbrown", + "rayon", +] + +[[package]] +name = "indicatif" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +dependencies = [ + "console", + "lazy_static", + "number_prefix", + "regex", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", ] [[package]] @@ -1397,14 +1964,14 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] name = "ipnet" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" +checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" [[package]] name = "itertools" @@ -1441,19 +2008,151 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpc-client-transports" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" +dependencies = [ + "derive_more", + "futures 0.3.21", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "serde", + "serde_json", + "url 1.7.2", +] + +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures 0.3.21", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "jsonrpc-core-client" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" +dependencies = [ + "futures 0.3.21", + "jsonrpc-client-transports", +] + +[[package]] +name = "jsonrpc-derive" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" +dependencies = [ + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "jsonrpc-http-server" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" +dependencies = [ + "futures 0.3.21", + "hyper", + "jsonrpc-core", + "jsonrpc-server-utils", + "log", + "net2", + "parking_lot 0.11.2", + "unicase", +] + +[[package]] +name = "jsonrpc-pubsub" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" +dependencies = [ + "futures 0.3.21", + "jsonrpc-core", + "lazy_static", + "log", + "parking_lot 0.11.2", + "rand 0.7.3", + "serde", +] + +[[package]] +name = "jsonrpc-server-utils" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" +dependencies = [ + "bytes", + "futures 0.3.21", + "globset", + "jsonrpc-core", + "lazy_static", + "log", + "tokio", + "tokio-stream", + "tokio-util 0.6.9", + "unicase", +] + [[package]] name = "keccak" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +[[package]] +name = "keeper" +version = "0.1.0" +dependencies = [ + "anchor-client", + "anchor-lang", + "anyhow", + "mango-v4", + "serde", + "serde_json", + "shellexpand", + "solana-account-decoder", + "solana-client", + "solana-program", + "solana-rpc", + "solana-sdk", + "solana-transaction-status", + "tokio", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1461,10 +2160,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "libc" -version = "0.2.119" +name = "lazycell" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259" [[package]] name = "libloading" @@ -1472,8 +2177,28 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", - "winapi", + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "libm" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" + +[[package]] +name = "librocksdb-sys" +version = "0.6.1+6.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bc587013734dadb7cf23468e531aa120788b87243648be42e2d3a072186291" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", ] [[package]] @@ -1491,7 +2216,7 @@ dependencies = [ "libsecp256k1-gen-genmult", "rand 0.7.3", "serde", - "sha2", + "sha2 0.9.9", "typenum", ] @@ -1525,21 +2250,48 @@ dependencies = [ ] [[package]] -name = "lock_api" -version = "0.4.6" +name = "libz-sys" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859" dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.14" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", +] + +[[package]] +name = "lru" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" +dependencies = [ + "hashbrown", ] [[package]] @@ -1547,8 +2299,8 @@ name = "mango-macro" version = "0.0.1" dependencies = [ "bytemuck", - "quote", - "syn", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -1599,6 +2351,12 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + [[package]] name = "memchr" version = "2.4.1" @@ -1623,12 +2381,30 @@ dependencies = [ "autocfg", ] +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.3", + "zeroize", +] + [[package]] name = "mime" version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.4.4" @@ -1641,15 +2417,29 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.0" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" dependencies = [ "libc", "log", "miow", "ntapi", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "mio" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "winapi 0.3.9", ] [[package]] @@ -1658,7 +2448,86 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nix" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", ] [[package]] @@ -1667,7 +2536,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1687,9 +2556,9 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -1723,39 +2592,45 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720d3ea1055e4e4574c0c0b0f8c3fd4f24c4cdaf465948206dea090b57b526ad" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d992b768490d7fe0d8586d9b5745f6c49f557da6d81dc982b1d167ad4edbb21" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] -name = "object" -version = "0.27.1" +name = "num_threads" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0" dependencies = [ - "memchr", + "libc", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "once_cell" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "opaque-debug" @@ -1763,6 +2638,49 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "111.18.0+1.1.1n" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7897a926e1e8d00219127dc020130eca4292e5ca666dd592480d72c3eca2ff6c" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg", + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "opentelemetry" version = "0.16.0" @@ -1771,10 +2689,10 @@ checksum = "e1cf9b1c4e9a6c4de793c632496fa490bdc0e1eea73f0c91394f7b6990935d22" dependencies = [ "async-trait", "crossbeam-channel", - "futures", + "futures 0.3.21", "js-sys", "lazy_static", - "percent-encoding", + "percent-encoding 2.1.0", "pin-project", "rand 0.8.5", "thiserror", @@ -1782,9 +2700,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.13.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f357ef82d1b4db66fbed0b8d542cbd3c22d0bf5b393b3c257b9ba4568e70c9c3" +checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662" dependencies = [ "aliasable", "ouroboros_macro", @@ -1793,15 +2711,15 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.13.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44a0b52c2cbaef7dffa5fec1a43274afe8bd2a644fa9fc50a9ef4ff0269b1257" +checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -1822,7 +2740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" dependencies = [ "lock_api", - "parking_lot_core 0.9.1", + "parking_lot_core 0.9.2", ] [[package]] @@ -1831,21 +2749,21 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "instant", "libc", "redox_syscall", "smallvec", - "winapi", + "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1854,19 +2772,49 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" [[package]] name = "pbkdf2" -version = "0.9.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac", ] +[[package]] +name = "pbkdf2" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" +dependencies = [ + "digest 0.10.3", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +dependencies = [ + "base64 0.13.0", +] + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + [[package]] name = "percent-encoding" version = "2.1.0" @@ -1882,6 +2830,16 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" +dependencies = [ + "fixedbitset", + "indexmap", +] + [[package]] name = "pin-project" version = "1.0.10" @@ -1897,9 +2855,9 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -1915,10 +2873,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "pkg-config" -version = "0.3.24" +name = "pkcs8" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "plain" @@ -1926,12 +2895,34 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "ppv-lite86" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +[[package]] +name = "prettyplease" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b83ec2d0af5c5c556257ff52c9f98934e243b9fd39604bfb2a9b75ec2e97f18" +dependencies = [ + "proc-macro2 1.0.37", + "syn 1.0.91", +] + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -1958,9 +2949,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "version_check", ] @@ -1970,18 +2961,33 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.37", + "quote 1.0.17", "version_check", ] [[package]] -name = "proc-macro2" -version = "1.0.36" +name = "proc-macro-hack" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid", + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" +dependencies = [ + "unicode-xid 0.2.2", ] [[package]] @@ -1990,13 +2996,68 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "version_check", "yansi", ] +[[package]] +name = "prost" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd5316aa8f5c82add416dfbc25116b84b748a21153f512917e8143640a71bbd" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328f9f29b82409216decb172d81e936415d21245befa79cd34c3f29d87d1c50b" +dependencies = [ + "bytes", + "cfg-if 1.0.0", + "cmake", + "heck 0.4.0", + "itertools 0.10.3", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df35198f0777b75e9ff669737c6da5136b59dba33cf5a010a6d1cc4d56defc6f" +dependencies = [ + "anyhow", + "itertools 0.10.3", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "prost-types" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "926681c118ae6e512a3ccefd4abbe5521a14f4cc1e207356d4d00c0b7f2006fd" +dependencies = [ + "bytes", + "prost", +] + [[package]] name = "pyth-client" version = "0.5.0" @@ -2019,16 +3080,79 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" dependencies = [ - "percent-encoding", + "percent-encoding 2.1.0", +] + +[[package]] +name = "quinn" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d147472bc9a09f13b06c044787b6683cdffa02e2865b7f0fb53d67c49ed2988e" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "359c5eb33845f3ee05c229e65f87cdbc503eea394964b8f1330833d460b4ff3e" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.5", + "ring", + "rustls", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df185e5e5f7611fa6e628ed8f9633df10114b03bbaecab186ec55822c44ac727" +dependencies = [ + "futures-util", + "libc", + "mio 0.7.14", + "quinn-proto", + "socket2", + "tokio", + "tracing", ] [[package]] name = "quote" -version = "1.0.16" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "proc-macro2", + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" +dependencies = [ + "proc-macro2 1.0.37", ] [[package]] @@ -2091,7 +3215,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", ] [[package]] @@ -2112,6 +3236,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xoshiro" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004" +dependencies = [ + "rand_core 0.5.1", +] + [[package]] name = "rayon" version = "1.5.1" @@ -2138,14 +3271,51 @@ dependencies = [ ] [[package]] -name = "redox_syscall" -version = "0.2.10" +name = "rcgen" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "d7fa2d386df8533b02184941c76ae2e0d0c1d053f5d43339169d80f21275fc5e" +dependencies = [ + "pem", + "ring", + "time 0.3.9", + "yasna", +] + +[[package]] +name = "redox_syscall" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.6", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "reed-solomon-erasure" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170bac0d8306941e101df0caaa6518b10bc4232dd36c34f1cb78b8a063024db" +dependencies = [ + "cc", + "libc", + "libm", + "parking_lot 0.11.2", + "smallvec", + "spin 0.9.2", +] + [[package]] name = "regex" version = "1.5.5" @@ -2169,14 +3339,14 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] name = "reqwest" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" +checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" dependencies = [ "base64 0.13.0", "bytes", @@ -2188,21 +3358,24 @@ dependencies = [ "http-body", "hyper", "hyper-rustls", + "hyper-tls", "ipnet", "js-sys", "lazy_static", "log", "mime", - "percent-encoding", + "native-tls", + "percent-encoding 2.1.0", "pin-project-lite", "rustls", - "rustls-pemfile", + "rustls-pemfile 0.3.0", "serde", "serde_json", "serde_urlencoded", "tokio", + "tokio-native-tls", "tokio-rustls", - "url", + "url 2.2.2", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2219,10 +3392,32 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", + "spin 0.5.2", "untrusted", "web-sys", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "rocksdb" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620f4129485ff1a7128d184bc687470c21c7951b64779ebc9cfdad3dcd920290" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rpassword" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +dependencies = [ + "libc", + "serde", + "serde_json", + "winapi 0.3.9", ] [[package]] @@ -2231,6 +3426,21 @@ version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.3.3" @@ -2246,7 +3456,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.6", + "semver 1.0.7", ] [[package]] @@ -2261,6 +3471,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca9ebdfa27d3fc180e42879037b5338ab1c040c06affd00d8338598e7800943" +dependencies = [ + "openssl-probe", + "rustls-pemfile 0.2.1", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "0.2.1" @@ -2270,6 +3492,15 @@ dependencies = [ "base64 0.13.0", ] +[[package]] +name = "rustls-pemfile" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +dependencies = [ + "base64 0.13.0", +] + [[package]] name = "rustversion" version = "1.0.6" @@ -2297,6 +3528,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -2318,9 +3559,9 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -2333,20 +3574,58 @@ dependencies = [ "untrusted", ] +[[package]] +name = "security-framework" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser 0.7.0", +] + [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser", + "semver-parser 0.10.2", ] [[package]] name = "semver" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" +checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4" + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" @@ -2381,9 +3660,9 @@ version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -2409,6 +3688,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_yaml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0" +dependencies = [ + "indexmap", + "ryu", + "serde", + "yaml-rust", +] + [[package]] name = "serum_dex" version = "0.4.0" @@ -2432,6 +3723,45 @@ dependencies = [ "without-alloc", ] +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.3", +] + +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + [[package]] name = "sha2" version = "0.9.9" @@ -2439,12 +3769,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", "opaque-debug", ] +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.3", +] + [[package]] name = "sha3" version = "0.9.1" @@ -2457,6 +3798,16 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha3" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +dependencies = [ + "digest 0.10.3", + "keccak", +] + [[package]] name = "sharded-slab" version = "0.1.4" @@ -2466,6 +3817,21 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shellexpand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83bdb7831b2d85ddf4a7b148aa19d0587eddbe8671a436b7bd1182eaad0f2829" +dependencies = [ + "dirs-next", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -2482,10 +3848,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" [[package]] -name = "slab" -version = "0.4.5" +name = "simpl" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "smallvec" @@ -2493,6 +3875,22 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +[[package]] +name = "smpl_jwt" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4370044f8b20f944e05c35d77edd3518e6f21fc4de77e593919f287c6a3f428a" +dependencies = [ + "base64 0.13.0", + "log", + "openssl", + "serde", + "serde_derive", + "serde_json", + "simpl", + "time 0.2.27", +] + [[package]] name = "socket2" version = "0.4.4" @@ -2500,14 +3898,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.0", + "bytes", + "futures 0.3.21", + "httparse", + "log", + "rand 0.8.5", + "sha-1 0.9.8", +] + +[[package]] +name = "solana-account-decoder" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f941f85590e0bbe11a5b5fe95af2b9fb3d4d309f024658ce1add2c98795e74c" +dependencies = [ + "Inflector", + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "bv", + "lazy_static", + "serde", + "serde_derive", + "serde_json", + "solana-config-program", + "solana-sdk", + "solana-vote-program", + "spl-token", + "thiserror", + "zstd", ] [[package]] name = "solana-address-lookup-table-program" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92450fee7d018d690e21f26239cf8e792e2dc8e9b69ced308d95af1fa5407624" +checksum = "3bab95e46ceb41278c4b2256b8821296a6ec7f6f17f5512aba79049fa8ba2789" dependencies = [ "bincode", "bytemuck", @@ -2518,6 +3954,7 @@ dependencies = [ "serde", "solana-frozen-abi", "solana-frozen-abi-macro", + "solana-program", "solana-program-runtime", "solana-sdk", "thiserror", @@ -2525,12 +3962,12 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b3e77c15ac0586f1f851d78cd408f131721a1edc400908e950b668d1ce875" +checksum = "21d9384d1b053f39da50b819717b655468a6d1a8c96cdd7610b2b2e5b949e83e" dependencies = [ "borsh", - "futures", + "futures 0.3.21", "solana-banks-interface", "solana-program", "solana-sdk", @@ -2542,9 +3979,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91449db88f2eaade62b260b547edbebb871e96cd910e8838eb9875c1a187c864" +checksum = "61c6f987300aa588fc8ffa617300f2d9d4e97762c2e8cccd3e3de9afaa83e874" dependencies = [ "serde", "solana-sdk", @@ -2553,12 +3990,13 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321ca56b594e7daa1359592ceff7b53d4166f6afca8eb5b00ff20b83ea86be34" +checksum = "70cfa46d8d6adb7bb5cb6f087750ab733c873edfc91d5da40a2c7ea308e89e51" dependencies = [ "bincode", - "futures", + "crossbeam-channel", + "futures 0.3.21", "solana-banks-interface", "solana-runtime", "solana-sdk", @@ -2571,9 +4009,9 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0bf764d1df4f0baff3e519a15109970076d07ed3dd8fcb9017084cb2de8c8" +checksum = "a69f639758af8ea7732515f4135f854e136765e6dc48a53394f2311a7836712c" dependencies = [ "bv", "fnv", @@ -2590,9 +4028,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8ec94c8e04229fcced79ca72287581728378d150e0bf33c864591e8bd92419" +checksum = "43ecfd77fe5ea194c022564e5ca3c588bd5e029a4be43f3cfb1374770807d839" dependencies = [ "bincode", "byteorder", @@ -2602,32 +4040,112 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-sdk", + "solana-zk-token-sdk", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831fa3d92a164a04c72756723ab5815c7652e09e961bb604586a0bdfeae3e192" +checksum = "c609650ea5c7ce5aef4859bfe5bda1bdd02c89fa5e579cb9315cd1d05fa9255c" dependencies = [ - "fs_extra", "log", "memmap2", + "modular-bitfield", "rand 0.7.3", - "rayon", - "solana-logger", "solana-measure", "solana-sdk", "tempfile", ] [[package]] -name = "solana-compute-budget-program" -version = "1.9.9" +name = "solana-clap-utils" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b94f780cf5fd63484c47bb53613cff906521155260ebe6780d27f7aeb9e968f" +checksum = "92d151864e610f549dbaf236cfff8eccdc5c8bf55c1f6e82d87228284d566d7e" +dependencies = [ + "chrono", + "clap", + "rpassword", + "solana-perf", + "solana-remote-wallet", + "solana-sdk", + "thiserror", + "tiny-bip39", + "uriparse", + "url 2.2.2", +] + +[[package]] +name = "solana-cli-config" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "602674ac1e225cbc2d14273a2a1c2e885fe10a56944c40ba1906603794baa53a" +dependencies = [ + "dirs-next", + "lazy_static", + "serde", + "serde_derive", + "serde_yaml", + "url 2.2.2", +] + +[[package]] +name = "solana-client" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b129549d021f408bcfbc80fa1ec33e0244c07bf6b35eb63d991a0ee6a45a717a" +dependencies = [ + "async-mutex", + "async-trait", + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "bytes", + "clap", + "crossbeam-channel", + "futures 0.3.21", + "futures-util", + "indicatif", + "itertools 0.10.3", + "jsonrpc-core", + "lazy_static", + "log", + "quinn", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rayon", + "reqwest", + "rustls", + "semver 1.0.7", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-clap-utils", + "solana-faucet", + "solana-measure", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url 2.2.2", +] + +[[package]] +name = "solana-compute-budget-program" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b01e5ca310e2581da0a33e7605b615b249183d580c9b27555ae1c2f0ec8ca042" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -2635,9 +4153,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e46f4232ce4b64bd33876f6e46c150a4769b680b88575e2ec7c7170130fafb2" +checksum = "77b3eaca3f411a99cc09e16eac7ff6aed0631fa3d279a3db38090d8d1bb2fb67" dependencies = [ "bincode", "chrono", @@ -2648,42 +4166,189 @@ dependencies = [ ] [[package]] -name = "solana-frozen-abi" -version = "1.9.9" +name = "solana-entry" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94841ed94df9db00ac76a20cf9ca740ee8fb9feb69f6f235531d272a846fa6f" +checksum = "81d8f76fc7a58f3cb05a7da536c479a9b7d03748b2579cac048b49dfe7195d88" +dependencies = [ + "bincode", + "crossbeam-channel", + "dlopen", + "dlopen_derive", + "log", + "rand 0.7.3", + "rayon", + "serde", + "solana-measure", + "solana-merkle-tree", + "solana-metrics", + "solana-perf", + "solana-rayon-threadlimit", + "solana-sdk", +] + +[[package]] +name = "solana-faucet" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bc98b1e0150adb2680a3d7189edbc7856b53c5838bac89018b93a739ccae8f" +dependencies = [ + "bincode", + "byteorder", + "clap", + "crossbeam-channel", + "log", + "serde", + "serde_derive", + "solana-clap-utils", + "solana-cli-config", + "solana-logger", + "solana-metrics", + "solana-sdk", + "solana-version", + "spl-memo", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-frozen-abi" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4309121d187515bbfb1c31874af740a3682680046470e25236738155371cf996" dependencies = [ "bs58 0.4.0", "bv", "generic-array", + "im", + "lazy_static", "log", "memmap2", "rustc_version 0.4.0", "serde", + "serde_bytes", "serde_derive", - "sha2", + "sha2 0.10.2", "solana-frozen-abi-macro", - "solana-logger", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f08a1e285cc66e5675139f022cba2787efe29553b0e6e051737028ae264988" +checksum = "489afadc7ef99239ce98a559d15ded7b7a7caf92cb3de6bf6ebe5ce1001ce5c0" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.37", + "quote 1.0.17", "rustc_version 0.4.0", - "syn", + "syn 1.0.91", +] + +[[package]] +name = "solana-gossip" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64eb26bdcfb275dd88ad78ed747b131ac86f78bd88fcf252266598fc078847d" +dependencies = [ + "bincode", + "bv", + "clap", + "crossbeam-channel", + "flate2", + "indexmap", + "itertools 0.10.3", + "log", + "lru", + "matches", + "num-traits", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rayon", + "rustc_version 0.4.0", + "serde", + "serde_bytes", + "serde_derive", + "solana-bloom", + "solana-clap-utils", + "solana-client", + "solana-entry", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-ledger", + "solana-logger", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-perf", + "solana-rayon-threadlimit", + "solana-runtime", + "solana-sdk", + "solana-streamer", + "solana-version", + "solana-vote-program", + "thiserror", +] + +[[package]] +name = "solana-ledger" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3f17aef67ff10febb5d21de89dcfe031a73ce7b44d954298b2f4d74e94fdf48" +dependencies = [ + "bincode", + "bitflags", + "byteorder", + "chrono", + "chrono-humanize", + "crossbeam-channel", + "fs_extra", + "futures 0.3.21", + "itertools 0.10.3", + "lazy_static", + "libc", + "log", + "lru", + "num-derive", + "num-traits", + "num_cpus", + "prost", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rayon", + "reed-solomon-erasure", + "rocksdb", + "rustc_version 0.4.0", + "serde", + "serde_bytes", + "sha2 0.10.2", + "solana-bpf-loader-program", + "solana-entry", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-measure", + "solana-metrics", + "solana-perf", + "solana-program-runtime", + "solana-rayon-threadlimit", + "solana-runtime", + "solana-sdk", + "solana-storage-bigtable", + "solana-storage-proto", + "solana-transaction-status", + "solana-vote-program", + "tempfile", + "thiserror", + "tokio", + "tokio-stream", + "trees", ] [[package]] name = "solana-logger" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9fc90ded15ae82e58c4ff0e3b8ac072a4a47905bcd883bfcbfcd2e92545f851" +checksum = "b75bee4762c5db25ae6d665abaddb93d1b5bb97944c0660639431057a3e336e8" dependencies = [ "env_logger", "lazy_static", @@ -2692,21 +4357,32 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c38e8fab4e9f3a41d57ea7a2db76380ef1297c77435e965b26a32680c9b7b4" +checksum = "26580a685dc4cd9eabbef91903a2b457b50631d0fbf7fd94581747940d2005dc" dependencies = [ "log", "solana-sdk", ] [[package]] -name = "solana-metrics" -version = "1.9.9" +name = "solana-merkle-tree" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2827548c3e835113220a88a73b17336e3eaa954de9ff52ef20cc70a247aaf962" +checksum = "5c126f0b5a37753d1f8762acb8ea6363450baa9ed3c8fda269f5eaa740cb5f4e" dependencies = [ - "env_logger", + "fast-math", + "matches", + "solana-program", +] + +[[package]] +name = "solana-metrics" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812a5972c79ac86e4754937104c0acc6999a997e58e5011940aaf549a16f2cef" +dependencies = [ + "crossbeam-channel", "gethostname", "lazy_static", "log", @@ -2715,10 +4391,78 @@ dependencies = [ ] [[package]] -name = "solana-program" -version = "1.9.9" +name = "solana-net-utils" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51abcddafe51821256baa3dcffd01f1a16f830ae86783ba5fa0a7f2f073acbd9" +checksum = "da87e633efb261bcd877e392c452459dfc00352539d77d78000b4b84fbcdeffb" +dependencies = [ + "bincode", + "clap", + "crossbeam-channel", + "log", + "nix", + "rand 0.7.3", + "serde", + "serde_derive", + "socket2", + "solana-logger", + "solana-sdk", + "solana-version", + "tokio", + "url 2.2.2", +] + +[[package]] +name = "solana-perf" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6df2727caf32d69819d350bfa6191efee530b5716d4daf3917059fd738a96d79" +dependencies = [ + "ahash", + "bincode", + "bv", + "caps", + "curve25519-dalek", + "dlopen", + "dlopen_derive", + "fnv", + "lazy_static", + "libc", + "log", + "nix", + "rand 0.7.3", + "rayon", + "serde", + "solana-metrics", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-vote-program", +] + +[[package]] +name = "solana-poh" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7ca053ca3cd311ac900c038e4a122094a21271783dab5649c8cf62573660aa" +dependencies = [ + "core_affinity", + "crossbeam-channel", + "log", + "solana-entry", + "solana-ledger", + "solana-measure", + "solana-metrics", + "solana-runtime", + "solana-sdk", + "solana-sys-tuner", + "thiserror", +] + +[[package]] +name = "solana-program" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f056f47278a3dbcb5a984c773df5df3e911fa5f5059069f06d4513eefc6e1f90" dependencies = [ "base64 0.13.0", "bincode", @@ -2740,18 +4484,17 @@ dependencies = [ "log", "num-derive", "num-traits", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.7.3", "rustc_version 0.4.0", "rustversion", "serde", "serde_bytes", "serde_derive", - "sha2", - "sha3", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-sdk-macro", "thiserror", "wasm-bindgen", @@ -2759,12 +4502,13 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1e88c6336c61c0e642d4535f3cca8c2bea9b983fa865d41874433023f77762" +checksum = "e658015852f980ccd693c29459c951de4c729f8e34348d058cbb89b0b2a2ef39" dependencies = [ "base64 0.13.0", "bincode", + "enum-iterator", "itertools 0.10.3", "libc", "libloading", @@ -2775,7 +4519,6 @@ dependencies = [ "serde", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-measure", "solana-sdk", "thiserror", @@ -2783,12 +4526,12 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35369f5656d0df1e6c518a8aa74f8558564468a6c61684ebfcbf117be70f6111" +checksum = "cdb058f31ddfa5e13181e27bea1ed9e824b0b84a78e17ba58a58e7cb6a1f9797" dependencies = [ "async-trait", - "base64 0.12.3", + "base64 0.13.0", "bincode", "chrono-humanize", "log", @@ -2807,19 +4550,89 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961685a0d253ab84b10e65313bb6afb3a499cfe4822f67a3cf488a4b39c2d4a1" +checksum = "60fdedad14df11a6512b413dc77d00c089c33e94a7cc433e61efb614fb583668" dependencies = [ "lazy_static", "num_cpus", ] [[package]] -name = "solana-runtime" -version = "1.9.9" +name = "solana-remote-wallet" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d4c2c02c624393de2610614f9e552fb0cf6607b0ad9053110d7b7fb67099aa7" +checksum = "981098bb4d5fe38a3e2104e522639d1e0c415aebba252c3be43b351c87328cf7" +dependencies = [ + "console", + "dialoguer", + "log", + "num-derive", + "num-traits", + "parking_lot 0.12.0", + "qstring", + "semver 1.0.7", + "solana-sdk", + "thiserror", + "uriparse", +] + +[[package]] +name = "solana-rpc" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528f7950bb330fedcc1432d76dbbc9994fadf73abda750f6f31a9c137759902a" +dependencies = [ + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "crossbeam-channel", + "dashmap", + "itertools 0.10.3", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-http-server", + "jsonrpc-pubsub", + "libc", + "log", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "soketto", + "solana-account-decoder", + "solana-client", + "solana-entry", + "solana-faucet", + "solana-gossip", + "solana-ledger", + "solana-measure", + "solana-metrics", + "solana-perf", + "solana-poh", + "solana-rayon-threadlimit", + "solana-runtime", + "solana-sdk", + "solana-send-transaction-service", + "solana-storage-bigtable", + "solana-streamer", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "spl-token", + "stream-cancel", + "thiserror", + "tokio", + "tokio-util 0.6.9", +] + +[[package]] +name = "solana-runtime" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b62f2a206b1e105c8a3ffdb8ebab688aaad0ac338b433d6dddbaf1301764287" dependencies = [ "arrayref", "bincode", @@ -2831,9 +4644,9 @@ dependencies = [ "crossbeam-channel", "dashmap", "dir-diff", - "enum-iterator", "flate2", "fnv", + "im", "index_list", "itertools 0.10.3", "lazy_static", @@ -2850,13 +4663,11 @@ dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-program", - "solana-bloom", "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-measure", "solana-metrics", "solana-program-runtime", @@ -2864,6 +4675,8 @@ dependencies = [ "solana-sdk", "solana-stake-program", "solana-vote-program", + "solana-zk-token-proof-program", + "solana-zk-token-sdk", "symlink", "tar", "tempfile", @@ -2873,9 +4686,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a608fdc4ba4cb22c1b05668036f962d7d9bc3e0b72ed5747ab71c754b15f728f" +checksum = "f00ec64dc557a1c0c7a5e0ffa64e4331db02e64a5384b5f9041a84fb4832e17b" dependencies = [ "assert_matches", "base64 0.13.0", @@ -2887,11 +4700,11 @@ dependencies = [ "byteorder", "chrono", "derivation-path", - "digest 0.9.0", + "digest 0.10.3", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", - "hmac 0.11.0", + "hmac 0.12.1", "itertools 0.10.3", "js-sys", "lazy_static", @@ -2900,7 +4713,7 @@ dependencies = [ "memmap2", "num-derive", "num-traits", - "pbkdf2", + "pbkdf2 0.10.1", "qstring", "rand 0.7.3", "rand_chacha 0.2.2", @@ -2910,8 +4723,8 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", - "sha2", - "sha3", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -2924,25 +4737,27 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c10a609f6e77f9c8b888a8baae5075c0d59a98ca606933dcea748d10ffe50bf" +checksum = "d4d800761d52b645fcd86ac080ad366947a5ff04e65ddaa5fb1708dda2a6390f" dependencies = [ "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.37", + "quote 1.0.17", "rustversion", - "syn", + "syn 1.0.91", ] [[package]] name = "solana-send-transaction-service" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60457f6066dc13381f2421f5b40d997ab73aa5b6385e8bba85cfea653861ae9e" +checksum = "2543ac2cc6deff15c7cd2cdc00f8788a0828bbd4798ee6484cfa319ec56d334c" dependencies = [ + "crossbeam-channel", "log", - "solana-logger", + "solana-client", + "solana-measure", "solana-metrics", "solana-runtime", "solana-sdk", @@ -2950,9 +4765,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.9.9" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b69cf506f2c75f2afe2b8b022b1ac8d738b9e99a2fc440e33b8c98cc66d2093" +checksum = "5a989c154e1058503f95b293dc5dee61915f5a33761344a87e03d7857f5b6325" dependencies = [ "bincode", "log", @@ -2972,10 +4787,139 @@ dependencies = [ ] [[package]] -name = "solana-vote-program" -version = "1.9.9" +name = "solana-storage-bigtable" +version = "1.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536e93c620f691eb64991e0db63520fe35c31d4be08c544fa19cb0c3871b7d91" +checksum = "3b181f395ce4e74aeed04e6cccff2363a24ac5b3783038984de64a6d8fd646c2" +dependencies = [ + "backoff", + "bincode", + "bzip2", + "enum-iterator", + "flate2", + "goauth", + "log", + "openssl", + "prost", + "prost-types", + "serde", + "serde_derive", + "smpl_jwt", + "solana-metrics", + "solana-sdk", + "solana-storage-proto", + "solana-transaction-status", + "thiserror", + "tonic", + "zstd", +] + +[[package]] +name = "solana-storage-proto" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd46bb950de3189b126343ed904b862cb46b3d9031ebf1d55139a04d9359d0de" +dependencies = [ + "bincode", + "bs58 0.4.0", + "prost", + "serde", + "solana-account-decoder", + "solana-sdk", + "solana-transaction-status", + "tonic-build", +] + +[[package]] +name = "solana-streamer" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee165fc957267c2d8ea1c8dfac2debd040ffa7eb55522f85190a434c3170d7fa" +dependencies = [ + "crossbeam-channel", + "futures-util", + "histogram", + "itertools 0.10.3", + "libc", + "log", + "nix", + "pem", + "pkcs8", + "quinn", + "rand 0.7.3", + "rcgen", + "rustls", + "solana-metrics", + "solana-perf", + "solana-sdk", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-sys-tuner" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f383814106f44f274c49ed9d947263d7fccbfe33297366a8071964adf9ae7eb3" +dependencies = [ + "clap", + "libc", + "log", + "nix", + "solana-logger", + "solana-version", + "sysctl", + "unix_socket2", + "users", +] + +[[package]] +name = "solana-transaction-status" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef7bc435ecac652e97f43b273e10668d72637abda9eb47018161a74a22c2bedf" +dependencies = [ + "Inflector", + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "lazy_static", + "log", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-measure", + "solana-metrics", + "solana-runtime", + "solana-sdk", + "solana-vote-program", + "spl-associated-token-account", + "spl-memo", + "spl-token", + "thiserror", +] + +[[package]] +name = "solana-version" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98e19516f1be8a16f48cc6d9cbdd61914c71f86df8b6f9a52982db3bd975e224" +dependencies = [ + "log", + "rustc_version 0.4.0", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-sdk", +] + +[[package]] +name = "solana-vote-program" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "639d8c11e8db286fa38a7adc3db81020902ac5369b81c20518305844b78641f7" dependencies = [ "bincode", "log", @@ -2986,13 +4930,57 @@ dependencies = [ "serde_derive", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-metrics", "solana-program-runtime", "solana-sdk", "thiserror", ] +[[package]] +name = "solana-zk-token-proof-program" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298db89d7c81fe8b15d4102555e61757e70919afadb371e9d5ec575e6f2b516f" +dependencies = [ + "bytemuck", + "getrandom 0.1.16", + "num-derive", + "num-traits", + "solana-program-runtime", + "solana-sdk", + "solana-zk-token-sdk", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "1.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e048d26f06eac158d9d0000d4bdcb348e1a693b248d5ab38d9f092d8705464af" +dependencies = [ + "aes-gcm-siv", + "arrayref", + "base64 0.13.0", + "bincode", + "bytemuck", + "byteorder", + "cipher 0.4.3", + "curve25519-dalek", + "getrandom 0.1.16", + "lazy_static", + "merlin", + "num-derive", + "num-traits", + "rand 0.7.3", + "serde", + "serde_json", + "sha3 0.9.1", + "solana-program", + "solana-sdk", + "subtle", + "thiserror", + "zeroize", +] + [[package]] name = "solana_rbpf" version = "0.2.24" @@ -3009,7 +4997,7 @@ dependencies = [ "rustc-demangle", "scroll", "thiserror", - "time", + "time 0.1.43", ] [[package]] @@ -3018,6 +5006,22 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "spl-associated-token-account" version = "1.0.3" @@ -3029,10 +5033,19 @@ dependencies = [ ] [[package]] -name = "spl-token" -version = "3.3.0" +name = "spl-memo" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc67166ef99d10c18cb5e9c208901e6d8255c6513bb1f877977eba48e6cc4fb" +checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" +dependencies = [ + "solana-program", +] + +[[package]] +name = "spl-token" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93bfdd5bd7c869cb565c7d7635c4fafe189b988a0bdef81063cd9585c6b8dc01" dependencies = [ "arrayref", "num-derive", @@ -3048,12 +5061,87 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "standback" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" +dependencies = [ + "version_check", +] + [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version 0.2.3", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2 1.0.37", + "quote 1.0.17", + "serde", + "serde_derive", + "syn 1.0.91", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2 1.0.37", + "quote 1.0.17", + "serde", + "serde_derive", + "serde_json", + "sha1", + "syn 1.0.91", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" + +[[package]] +name = "stream-cancel" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" +dependencies = [ + "futures-core", + "pin-project", + "tokio", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "subtle" version = "2.4.1" @@ -3068,25 +5156,55 @@ checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" [[package]] name = "syn" -version = "1.0.89" +version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", ] +[[package]] +name = "syn" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +dependencies = [ + "proc-macro2 1.0.37", + "quote 1.0.17", + "unicode-xid 0.2.2", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + [[package]] name = "synstructure" version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", + "unicode-xid 0.2.2", +] + +[[package]] +name = "sysctl" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1123645dfaf2b5eac6b6c88addafc359c789b8ef2a770ecaef758c1ddf363ea4" +dependencies = [ + "bitflags", + "byteorder", + "libc", + "thiserror", + "walkdir", ] [[package]] @@ -3108,7 +5226,7 @@ checksum = "b85d0a9369a919ba0db919b142a2b704cd207dfc676f7a43c2d105d0bc225487" dependencies = [ "anyhow", "fnv", - "futures", + "futures 0.3.21", "humantime", "opentelemetry", "pin-project", @@ -3119,7 +5237,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util", + "tokio-util 0.6.9", "tracing", "tracing-opentelemetry", ] @@ -3130,9 +5248,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -3141,23 +5259,42 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", "remove_dir_all", - "winapi", + "winapi 0.3.9", ] [[package]] name = "termcolor" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + [[package]] name = "thiserror" version = "1.0.30" @@ -3173,9 +5310,9 @@ version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] @@ -3194,7 +5331,74 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" +dependencies = [ + "const_fn", + "libc", + "standback", + "stdweb", + "time-macros", + "version_check", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +dependencies = [ + "libc", + "num_threads", +] + +[[package]] +name = "time-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +dependencies = [ + "proc-macro-hack", + "time-macros-impl", +] + +[[package]] +name = "time-macros-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.37", + "quote 1.0.17", + "standback", + "syn 1.0.91", +] + +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", ] [[package]] @@ -3221,7 +5425,7 @@ dependencies = [ "bytes", "libc", "memchr", - "mio", + "mio 0.8.2", "num_cpus", "once_cell", "parking_lot 0.12.0", @@ -3229,7 +5433,17 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", ] [[package]] @@ -3238,16 +5452,26 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", ] [[package]] name = "tokio-rustls" -version = "0.23.2" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" dependencies = [ "rustls", "tokio", @@ -3281,6 +5505,22 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +dependencies = [ + "futures-util", + "log", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki", + "webpki-roots", +] + [[package]] name = "tokio-util" version = "0.6.9" @@ -3289,6 +5529,7 @@ checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes", "futures-core", + "futures-io", "futures-sink", "log", "pin-project-lite", @@ -3296,6 +5537,20 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-util" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + [[package]] name = "toml" version = "0.5.8" @@ -3305,6 +5560,98 @@ dependencies = [ "serde", ] +[[package]] +name = "tonic" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30fb54bf1e446f44d870d260d99957e7d11fb9d0a0f5bd1a662ad1411cc103f9" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.13.0", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding 2.1.0", + "pin-project", + "prost", + "prost-derive", + "rustls-pemfile 0.3.0", + "tokio", + "tokio-rustls", + "tokio-stream", + "tokio-util 0.7.1", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic-build" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d17087af5c80e5d5fc8ba9878e60258065a0a757e35efe7a05b7904bece1943" +dependencies = [ + "prettyplease", + "proc-macro2 1.0.37", + "prost-build", + "quote 1.0.17", + "syn 1.0.91", +] + +[[package]] +name = "tower" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a89fd63ad6adf737582df5db40d286574513c69a11dac5214dc3b5603d6713e" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.1", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" + [[package]] name = "tower-service" version = "0.3.1" @@ -3313,11 +5660,11 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" +checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -3326,25 +5673,35 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", ] [[package]] name = "tracing-core" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +checksum = "90442985ee2f57c9e1b548ee72ae842f4a9a20e3f417cc38dbc5dc684d9bb4ee" dependencies = [ "lazy_static", "valuable", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-opentelemetry" version = "0.15.0" @@ -3368,6 +5725,12 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "trees" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de5f738ceab88e2491a94ddc33c3feeadfa95fedc60363ef110845df12f3878" + [[package]] name = "try-lock" version = "0.2.3" @@ -3376,18 +5739,41 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "trybuild" -version = "1.0.56" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d60539445867cdd9680b2bfe2d0428f1814b7d5c9652f09d8d3eae9d19308db" +checksum = "606ab3fe0065741fdbb51f64bcb6ba76f13fad49f1723030041826c631782764" dependencies = [ "glob", "once_cell", "serde", + "serde_derive", "serde_json", "termcolor", "toml", ] +[[package]] +name = "tungstenite" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +dependencies = [ + "base64 0.13.0", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls", + "sha-1 0.10.0", + "thiserror", + "url 2.2.2", + "utf-8", + "webpki", + "webpki-roots", +] + [[package]] name = "typenum" version = "1.15.0" @@ -3400,6 +5786,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.7" @@ -3421,12 +5816,43 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + [[package]] name = "unicode-xid" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +[[package]] +name = "universal-hash" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "unix_socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b57c6eace16c00eccb98a28e85db3370eab0685bdd5e13831d59e2bcb49a1d8a" +dependencies = [ + "libc", +] + [[package]] name = "unreachable" version = "1.0.0" @@ -3444,14 +5870,25 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "uriparse" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e515b1ada404168e145ac55afba3c42f04cf972201a8552d42e2abb17c1b7221" +checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" dependencies = [ "fnv", "lazy_static", ] +[[package]] +name = "url" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] + [[package]] name = "url" version = "2.2.2" @@ -3459,17 +5896,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", - "idna", + "idna 0.2.3", "matches", - "percent-encoding", + "percent-encoding 2.1.0", ] +[[package]] +name = "users" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4227e95324a443c9fcb06e03d4d85e91aabe9a5a02aa818688b6918b6af486" +dependencies = [ + "libc", + "log", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" version = "0.9.4" @@ -3489,7 +5954,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi", + "winapi 0.3.9", "winapi-util", ] @@ -3516,37 +5981,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] -name = "wasm-bindgen" -version = "0.2.79" +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -3554,38 +6025,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" dependencies = [ - "quote", + "quote 1.0.17", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" dependencies = [ "js-sys", "wasm-bindgen", @@ -3603,13 +6074,30 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ "webpki", ] +[[package]] +name = "which" +version = "4.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +dependencies = [ + "either", + "lazy_static", + "libc", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + [[package]] name = "winapi" version = "0.3.9" @@ -3620,6 +6108,12 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -3632,7 +6126,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3643,9 +6137,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", @@ -3656,41 +6150,41 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3711,11 +6205,29 @@ dependencies = [ "libc", ] +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" +checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" +dependencies = [ + "time 0.3.9", +] [[package]] name = "zeroize" @@ -3732,26 +6244,26 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.37", + "quote 1.0.17", + "syn 1.0.91", "synstructure", ] [[package]] name = "zstd" -version = "0.9.2+zstd.1.5.1" +version = "0.11.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" +checksum = "77a16b8414fde0414e90c612eba70985577451c4c504b99885ebed24762cb81a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.3+zstd.1.5.1" +version = "5.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" +checksum = "7c12659121420dd6365c5c3de4901f97145b79651fb1d25814020ed2ed0585ae" dependencies = [ "libc", "zstd-sys", @@ -3759,9 +6271,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.2+zstd.1.5.1" +version = "2.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 5a1ddc454..fa0b17a06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = [ "programs/*", + "keeper", "lib/*" ] diff --git a/keeper/Cargo.toml b/keeper/Cargo.toml new file mode 100644 index 000000000..cafe72845 --- /dev/null +++ b/keeper/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "keeper" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anchor-client = "0.22.0" +anchor-lang = "0.22.0" +anyhow = "1.0" +mango-v4 = { path = "../programs/mango-v4" } +solana-account-decoder = "1.9.5" +solana-client = "1.9.5" +solana-program = "1.9.5" +solana-rpc = "1.9.5" +solana-sdk = "1.9.5" +solana-transaction-status = "1.9.5" +tokio = { version = "1.17", features = ["rt-multi-thread", "time", "macros", "sync"] } +shellexpand = "2.1" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" \ No newline at end of file diff --git a/keeper/src/main.rs b/keeper/src/main.rs new file mode 100644 index 000000000..505af66b7 --- /dev/null +++ b/keeper/src/main.rs @@ -0,0 +1,66 @@ +use std::{rc::Rc, str::FromStr, time::Duration}; + +use solana_sdk::{instruction::Instruction, signature::Keypair}; +use tokio::time; + +// TODO: +// cmd line args with defaults +// make keypair, rpc server, net, etc. configurable +// expand to various tasks e.g. crank event queue, crank banks, run liquidators +// support multiple workers +// logging facility +// robust error handling +fn main() { + let rt = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap(); + + rt.block_on(update_index_runner()) + .expect("Something went wrong here..."); +} + +pub async fn update_index_runner() -> anyhow::Result<()> { + let mut interval = time::interval(Duration::from_millis(10)); + + loop { + interval.tick().await; + update_index().await?; + } +} + +pub async fn update_index() -> anyhow::Result<()> { + let keypair = load_default_keypair()?; + let rpc = "https://mango.devnet.rpcpool.com".to_owned(); + let wss = rpc.replace("https", "wss"); + let connection = + anchor_client::Client::new(anchor_client::Cluster::Custom(rpc, wss), Rc::new(keypair)); + let client = connection.program(mango_v4::ID); + + let update_index_ix = Instruction { + program_id: mango_v4::id(), + accounts: anchor_lang::ToAccountMetas::to_account_metas( + &mango_v4::accounts::UpdateIndex { + bank: anchor_lang::prelude::Pubkey::from_str( + "9xmZdkWbYNYsBshr7PwjhU8c7mmrvzmocu8dSQeNCKTG", + )?, + }, + None, + ), + data: anchor_lang::InstructionData::data(&mango_v4::instruction::UpdateIndex {}), + }; + + let sig = client.request().instruction(update_index_ix).send()?; + println!("update_index: {:?}", sig); + + Ok(()) +} + +fn load_default_keypair() -> anyhow::Result { + let keypair_path = shellexpand::tilde("~/.config/solana/mango-devnet.json"); + let keypair_data = std::fs::read_to_string(keypair_path.to_string())?; + let keypair_bytes: Vec = serde_json::from_str(&keypair_data)?; + let keypair = Keypair::from_bytes(&keypair_bytes)?; + + Ok(keypair) +} diff --git a/programs/mango-v4/src/instructions/create_account.rs b/programs/mango-v4/src/instructions/create_account.rs index ef80262db..c12a1809c 100644 --- a/programs/mango-v4/src/instructions/create_account.rs +++ b/programs/mango-v4/src/instructions/create_account.rs @@ -2,6 +2,7 @@ use anchor_lang::prelude::*; use crate::error::*; use crate::state::*; +use crate::util::fill32_from_str; #[derive(Accounts)] #[instruction(account_num: u8)] @@ -25,10 +26,11 @@ pub struct CreateAccount<'info> { pub system_program: Program<'info, System>, } -pub fn create_account(ctx: Context, account_num: u8) -> Result<()> { +pub fn create_account(ctx: Context, account_num: u8, name: String) -> Result<()> { let mut account = ctx.accounts.account.load_init()?; // TODO: dont init on stack *account = MangoAccount { + name: fill32_from_str(name)?, group: ctx.accounts.group.key(), owner: ctx.accounts.owner.key(), delegate: Pubkey::default(), diff --git a/programs/mango-v4/src/instructions/register_token.rs b/programs/mango-v4/src/instructions/register_token.rs index 2a4e47095..46172de5f 100644 --- a/programs/mango-v4/src/instructions/register_token.rs +++ b/programs/mango-v4/src/instructions/register_token.rs @@ -8,6 +8,7 @@ use fixed_macro::types::I80F48; // TODO: ALTs are unavailable //use crate::address_lookup_table; use crate::state::*; +use crate::util::fill16_from_str; const INDEX_START: I80F48 = I80F48!(1_000_000); @@ -74,17 +75,23 @@ pub struct RegisterToken<'info> { pub rent: Sysvar<'info, Rent>, } +#[derive(AnchorSerialize, AnchorDeserialize, Default)] +pub struct InterestRateParams { + pub util0: f32, + pub rate0: f32, + pub util1: f32, + pub rate1: f32, + pub max_rate: f32, +} + // TODO: should this be "configure_mint", we pass an explicit index, and allow // overwriting config as long as the mint account stays the same? #[allow(clippy::too_many_arguments)] pub fn register_token( ctx: Context, token_index: TokenIndex, - util0: f32, - rate0: f32, - util1: f32, - rate1: f32, - max_rate: f32, + name: String, + interest_rate_params: InterestRateParams, maint_asset_weight: f32, init_asset_weight: f32, maint_liab_weight: f32, @@ -95,6 +102,7 @@ pub fn register_token( let mut bank = ctx.accounts.bank.load_init()?; *bank = Bank { + name: fill16_from_str(name)?, group: ctx.accounts.group.key(), mint: ctx.accounts.mint.key(), vault: ctx.accounts.vault.key(), @@ -104,11 +112,12 @@ pub fn register_token( indexed_total_deposits: I80F48::ZERO, indexed_total_borrows: I80F48::ZERO, last_updated: Clock::get()?.unix_timestamp, - util0: I80F48::from_num(util0), - rate0: I80F48::from_num(rate0), - util1: I80F48::from_num(util1), - rate1: I80F48::from_num(rate1), - max_rate: I80F48::from_num(max_rate), + // TODO: add a require! verifying relation between the parameters + util0: I80F48::from_num(interest_rate_params.util0), + rate0: I80F48::from_num(interest_rate_params.rate0), + util1: I80F48::from_num(interest_rate_params.util1), + rate1: I80F48::from_num(interest_rate_params.rate1), + max_rate: I80F48::from_num(interest_rate_params.max_rate), maint_asset_weight: I80F48::from_num(maint_asset_weight), init_asset_weight: I80F48::from_num(init_asset_weight), maint_liab_weight: I80F48::from_num(maint_liab_weight), diff --git a/programs/mango-v4/src/instructions/serum3_register_market.rs b/programs/mango-v4/src/instructions/serum3_register_market.rs index a31cd12c9..9da61d5c9 100644 --- a/programs/mango-v4/src/instructions/serum3_register_market.rs +++ b/programs/mango-v4/src/instructions/serum3_register_market.rs @@ -3,6 +3,7 @@ use anchor_lang::prelude::*; use crate::error::MangoError; use crate::serum3_cpi::{load_market_state, pubkey_from_u64_array}; use crate::state::*; +use crate::util::fill16_from_str; #[derive(Accounts)] pub struct Serum3RegisterMarket<'info> { @@ -42,6 +43,7 @@ pub struct Serum3RegisterMarket<'info> { pub fn serum3_register_market( ctx: Context, market_index: Serum3MarketIndex, + name: String, ) -> Result<()> { // TODO: must guard against accidentally using the same market_index twice! @@ -62,6 +64,7 @@ pub fn serum3_register_market( let mut serum_market = ctx.accounts.serum_market.load_init()?; *serum_market = Serum3Market { + name: fill16_from_str(name)?, group: ctx.accounts.group.key(), serum_program: ctx.accounts.serum_program.key(), serum_market_external: ctx.accounts.serum_market_external.key(), diff --git a/programs/mango-v4/src/instructions/update_index.rs b/programs/mango-v4/src/instructions/update_index.rs index d23c14438..6c16a89ac 100644 --- a/programs/mango-v4/src/instructions/update_index.rs +++ b/programs/mango-v4/src/instructions/update_index.rs @@ -4,10 +4,13 @@ use crate::state::Bank; #[derive(Accounts)] pub struct UpdateIndex<'info> { + // TODO: should we support arbitrary number of banks with remaining accounts? + // ix - consumed 17641 of 101000 compute units, so we have a lot of compute #[account(mut)] pub bank: AccountLoader<'info, Bank>, } pub fn update_index(ctx: Context) -> Result<()> { + // TODO: should we enforce a minimum window between 2 update_index ix calls? let now_ts = Clock::get()?.unix_timestamp; let mut bank = ctx.accounts.bank.load_mut()?; diff --git a/programs/mango-v4/src/lib.rs b/programs/mango-v4/src/lib.rs index aaf7178a6..5b9c3636b 100644 --- a/programs/mango-v4/src/lib.rs +++ b/programs/mango-v4/src/lib.rs @@ -37,11 +37,8 @@ pub mod mango_v4 { pub fn register_token( ctx: Context, token_index: TokenIndex, - util0: f32, - rate0: f32, - util1: f32, - rate1: f32, - max_rate: f32, + name: String, + interest_rate_params: InterestRateParams, maint_asset_weight: f32, init_asset_weight: f32, maint_liab_weight: f32, @@ -51,11 +48,8 @@ pub mod mango_v4 { instructions::register_token( ctx, token_index, - util0, - rate0, - util1, - rate1, - max_rate, + name, + interest_rate_params, maint_asset_weight, init_asset_weight, maint_liab_weight, @@ -68,8 +62,12 @@ pub mod mango_v4 { instructions::update_index(ctx) } - pub fn create_account(ctx: Context, account_num: u8) -> Result<()> { - instructions::create_account(ctx, account_num) + pub fn create_account( + ctx: Context, + account_num: u8, + name: String, + ) -> Result<()> { + instructions::create_account(ctx, account_num, name) } pub fn close_account(ctx: Context) -> Result<()> { @@ -112,8 +110,9 @@ pub mod mango_v4 { pub fn serum3_register_market( ctx: Context, market_index: Serum3MarketIndex, + name: String, ) -> Result<()> { - instructions::serum3_register_market(ctx, market_index) + instructions::serum3_register_market(ctx, market_index, name) } pub fn serum3_create_open_orders(ctx: Context) -> Result<()> { diff --git a/programs/mango-v4/src/state/bank.rs b/programs/mango-v4/src/state/bank.rs index 07343a190..9e6898112 100644 --- a/programs/mango-v4/src/state/bank.rs +++ b/programs/mango-v4/src/state/bank.rs @@ -10,6 +10,8 @@ pub const YEAR: I80F48 = I80F48!(31536000); #[account(zero_copy)] pub struct Bank { + pub name: [u8; 16], + pub group: Pubkey, pub mint: Pubkey, pub vault: Pubkey, @@ -52,7 +54,7 @@ pub struct Bank { pub reserved: [u8; 6], } -const_assert_eq!(size_of::(), 32 * 4 + 8 + 16 * 15 + 2 + 6); +const_assert_eq!(size_of::(), 16 + 32 * 4 + 8 + 16 * 15 + 2 + 6); const_assert_eq!(size_of::() % 8, 0); impl Bank { @@ -165,17 +167,20 @@ impl Bank { } pub fn update_index(&mut self, now_ts: i64) -> Result<()> { - let utilization = cm!(self.native_total_borrows() / self.native_total_deposits()); + let utilization = if self.native_total_deposits() == I80F48::ZERO { + I80F48::ZERO + } else { + cm!(self.native_total_borrows() / self.native_total_deposits()) + }; let interest_rate = self.compute_interest_rate(utilization); let diff_ts = I80F48::from_num(now_ts - self.last_updated); + self.last_updated = now_ts; let borrow_interest: I80F48 = cm!(interest_rate * diff_ts); let deposit_interest = cm!(borrow_interest * utilization); - self.last_updated = Clock::get()?.unix_timestamp; - if borrow_interest <= I80F48::ZERO || deposit_interest <= I80F48::ZERO { return Ok(()); } @@ -219,9 +224,9 @@ impl Bank { let slope = cm!((rate1 - rate0) / (util1 - util0)); cm!(rate0 + slope * extra_util) } else { - let extra_util = utilization - util1; - let slope = (max_rate - rate1) / (I80F48::ONE - util1); - rate1 + slope * extra_util + let extra_util = cm!(utilization - util1); + let slope = cm!((max_rate - rate1) / (I80F48::ONE - util1)); + cm!(rate1 + slope * extra_util) } } } diff --git a/programs/mango-v4/src/state/mango_account.rs b/programs/mango-v4/src/state/mango_account.rs index f0e7af457..febe8a299 100644 --- a/programs/mango-v4/src/state/mango_account.rs +++ b/programs/mango-v4/src/state/mango_account.rs @@ -512,6 +512,8 @@ impl Default for MangoAccountPerps { #[account(zero_copy)] pub struct MangoAccount { + pub name: [u8; 32], + pub group: Pubkey, pub owner: Pubkey, @@ -542,7 +544,7 @@ pub struct MangoAccount { } const_assert_eq!( size_of::(), - 3 * 32 + 32 + 3 * 32 + size_of::() + size_of::() + size_of::() diff --git a/programs/mango-v4/src/state/serum3_market.rs b/programs/mango-v4/src/state/serum3_market.rs index e9d51228a..6b0aac872 100644 --- a/programs/mango-v4/src/state/serum3_market.rs +++ b/programs/mango-v4/src/state/serum3_market.rs @@ -8,6 +8,7 @@ pub type Serum3MarketIndex = u16; #[account(zero_copy)] pub struct Serum3Market { + pub name: [u8; 16], pub group: Pubkey, pub serum_program: Pubkey, pub serum_market_external: Pubkey, @@ -19,7 +20,7 @@ pub struct Serum3Market { pub bump: u8, pub reserved: [u8; 1], } -const_assert_eq!(size_of::(), 32 * 3 + 3 * 2 + 1 + 1); +const_assert_eq!(size_of::(), 16 + 32 * 3 + 3 * 2 + 1 + 1); const_assert_eq!(size_of::() % 8, 0); #[macro_export] diff --git a/programs/mango-v4/src/util.rs b/programs/mango-v4/src/util.rs index 6e082ea18..9307bd648 100644 --- a/programs/mango-v4/src/util.rs +++ b/programs/mango-v4/src/util.rs @@ -1,7 +1,7 @@ +use crate::error::MangoError; use anchor_lang::prelude::*; use anchor_lang::ZeroCopy; use arrayref::array_ref; -use fixed::types::I80F48; use std::cell::RefMut; use std::{cell::Ref, mem}; @@ -90,10 +90,20 @@ impl<'info> LoadZeroCopy for AccountInfo<'info> { } } -// Returns asset_weight and liab_weight -pub fn get_leverage_weights(leverage: I80F48) -> (I80F48, I80F48) { - ( - (leverage - I80F48::ONE).checked_div(leverage).unwrap(), - (leverage + I80F48::ONE).checked_div(leverage).unwrap(), - ) +pub fn fill16_from_str(name: String) -> Result<[u8; 16]> { + let name_bytes = name.as_bytes(); + msg!("{}", name); + require!(name_bytes.len() < 16, MangoError::SomeError); + let mut name_ = [0u8; 16]; + name_[..name_bytes.len()].copy_from_slice(name_bytes); + Ok(name_) +} + +pub fn fill32_from_str(name: String) -> Result<[u8; 32]> { + let name_bytes = name.as_bytes(); + msg!("{}", name); + require!(name_bytes.len() < 32, MangoError::SomeError); + let mut name_ = [0u8; 32]; + name_[..name_bytes.len()].copy_from_slice(name_bytes); + Ok(name_) } diff --git a/programs/mango-v4/tests/program_test/mango_client.rs b/programs/mango-v4/tests/program_test/mango_client.rs index 222a4999e..e3deb321e 100644 --- a/programs/mango-v4/tests/program_test/mango_client.rs +++ b/programs/mango-v4/tests/program_test/mango_client.rs @@ -5,11 +5,14 @@ use anchor_lang::solana_program::sysvar::{self, SysvarId}; use anchor_spl::token::{Token, TokenAccount}; use fixed::types::I80F48; use itertools::Itertools; -use mango_v4::instructions::{Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side}; +use mango_v4::instructions::{ + InterestRateParams, Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side, +}; use solana_program::instruction::Instruction; +use solana_program_test::BanksClientError; use solana_sdk::instruction; use solana_sdk::signature::{Keypair, Signer}; -use solana_sdk::transport::TransportError; + use std::str::FromStr; use super::solana::SolanaCookie; @@ -35,7 +38,7 @@ impl ClientAccountLoader for &SolanaCookie { pub async fn send_tx( solana: &SolanaCookie, ix: CI, -) -> std::result::Result { +) -> std::result::Result { let (accounts, instruction) = ix.to_instruction(solana).await; let signers = ix.signers(); let instructions = vec![instruction]; @@ -471,12 +474,15 @@ impl<'keypair> ClientInstruction for RegisterTokenInstruction<'keypair> { ) -> (Self::Accounts, instruction::Instruction) { let program_id = mango_v4::id(); let instruction = Self::Instruction { + name: "some_ticker".to_string(), token_index: self.token_index, - util0: self.util0, - rate0: self.rate0, - util1: self.util1, - rate1: self.rate1, - max_rate: self.max_rate, + interest_rate_params: InterestRateParams { + util0: self.util0, + rate0: self.rate0, + util1: self.util1, + rate1: self.rate1, + max_rate: self.max_rate, + }, maint_asset_weight: self.maint_asset_weight, init_asset_weight: self.init_asset_weight, maint_liab_weight: self.maint_liab_weight, @@ -699,6 +705,7 @@ impl<'keypair> ClientInstruction for CreateAccountInstruction<'keypair> { let program_id = mango_v4::id(); let instruction = mango_v4::instruction::CreateAccount { account_num: self.account_num, + name: "my_mango_account".to_string(), }; let account = Pubkey::find_program_address( @@ -785,6 +792,7 @@ impl<'keypair> ClientInstruction for Serum3RegisterMarketInstruction<'keypair> { let program_id = mango_v4::id(); let instruction = Self::Instruction { market_index: self.market_index, + name: "UUU/usdc".to_string(), }; let serum_market = Pubkey::find_program_address( diff --git a/programs/mango-v4/tests/program_test/mango_setup.rs b/programs/mango-v4/tests/program_test/mango_setup.rs index eb4543a86..806a7025e 100644 --- a/programs/mango-v4/tests/program_test/mango_setup.rs +++ b/programs/mango-v4/tests/program_test/mango_setup.rs @@ -72,10 +72,10 @@ impl<'a> GroupWithTokensConfig<'a> { RegisterTokenInstruction { token_index, decimals: mint.decimals, - util0: 0.50, - rate0: 0.06, - util1: 0.70, - rate1: 1.3, + util0: 0.40, + rate0: 0.07, + util1: 0.80, + rate1: 0.9, max_rate: 1.50, maint_asset_weight: 0.8, init_asset_weight: 0.6, diff --git a/programs/mango-v4/tests/program_test/solana.rs b/programs/mango-v4/tests/program_test/solana.rs index e420f03d2..91a4d75bc 100644 --- a/programs/mango-v4/tests/program_test/solana.rs +++ b/programs/mango-v4/tests/program_test/solana.rs @@ -3,7 +3,6 @@ use std::sync::{Arc, RwLock}; use anchor_lang::AccountDeserialize; use anchor_spl::token::TokenAccount; -use solana_program::clock::UnixTimestamp; use solana_program::{program_pack::Pack, rent::*, system_instruction}; use solana_program_test::*; use solana_sdk::{ @@ -12,12 +11,9 @@ use solana_sdk::{ pubkey::Pubkey, signature::{Keypair, Signer}, transaction::Transaction, - transport::TransportError, }; use spl_token::*; -use super::mango_client::ClientAccountLoader; - pub struct SolanaCookie { pub context: RefCell, pub rent: Rent, @@ -30,7 +26,7 @@ impl SolanaCookie { &self, instructions: &[Instruction], signers: Option<&[&Keypair]>, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { self.program_log.write().unwrap().clear(); let mut context = self.context.borrow_mut(); diff --git a/programs/mango-v4/tests/test_basic.rs b/programs/mango-v4/tests/test_basic.rs index e4f8ffbe8..496d86e1c 100644 --- a/programs/mango-v4/tests/test_basic.rs +++ b/programs/mango-v4/tests/test_basic.rs @@ -2,7 +2,7 @@ use fixed::types::I80F48; use solana_program_test::*; -use solana_sdk::{signature::Keypair, signature::Signer, transport::TransportError}; +use solana_sdk::{signature::Keypair, signature::Signer}; use mango_v4::state::*; use program_test::*; @@ -12,7 +12,7 @@ mod program_test; // This is an unspecific happy-case test that just runs a few instructions to check // that they work in principle. It should be split up / renamed. #[tokio::test] -async fn test_basic() -> Result<(), TransportError> { +async fn test_basic() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_benchmark.rs b/programs/mango-v4/tests/test_benchmark.rs index dbd157e34..6e1b17da6 100644 --- a/programs/mango-v4/tests/test_benchmark.rs +++ b/programs/mango-v4/tests/test_benchmark.rs @@ -2,11 +2,11 @@ use program_test::*; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_benchmark() -> Result<(), TransportError> { +async fn test_benchmark() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_health_compute.rs b/programs/mango-v4/tests/test_health_compute.rs index e1b29413f..e6a6bcb79 100644 --- a/programs/mango-v4/tests/test_health_compute.rs +++ b/programs/mango-v4/tests/test_health_compute.rs @@ -1,7 +1,7 @@ #![cfg(feature = "test-bpf")] use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::signature::Keypair; use program_test::*; @@ -9,7 +9,7 @@ mod program_test; // Try to reach compute limits in health checks by having many different tokens in an account #[tokio::test] -async fn test_health_compute_tokens() -> Result<(), TransportError> { +async fn test_health_compute_tokens() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); @@ -72,7 +72,7 @@ async fn test_health_compute_tokens() -> Result<(), TransportError> { // Try to reach compute limits in health checks by having many serum markets in an account #[tokio::test] -async fn test_health_compute_serum() -> Result<(), TransportError> { +async fn test_health_compute_serum() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_liq_tokens.rs b/programs/mango-v4/tests/test_liq_tokens.rs index c63e8a73d..8b49cd07d 100644 --- a/programs/mango-v4/tests/test_liq_tokens.rs +++ b/programs/mango-v4/tests/test_liq_tokens.rs @@ -2,7 +2,7 @@ use fixed::types::I80F48; use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::signature::Keypair; use mango_v4::{ instructions::{Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side}, @@ -13,7 +13,7 @@ use program_test::*; mod program_test; #[tokio::test] -async fn test_liq_tokens_force_cancel() -> Result<(), TransportError> { +async fn test_liq_tokens_force_cancel() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); @@ -216,7 +216,7 @@ async fn test_liq_tokens_force_cancel() -> Result<(), TransportError> { } #[tokio::test] -async fn test_liq_tokens_with_token() -> Result<(), TransportError> { +async fn test_liq_tokens_with_token() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_margin_trade.rs b/programs/mango-v4/tests/test_margin_trade.rs index 902d534b8..86bdac558 100644 --- a/programs/mango-v4/tests/test_margin_trade.rs +++ b/programs/mango-v4/tests/test_margin_trade.rs @@ -3,8 +3,8 @@ use anchor_lang::InstructionData; use fixed::types::I80F48; use solana_program_test::*; +use solana_sdk::signature::Keypair; use solana_sdk::signature::Signer; -use solana_sdk::{signature::Keypair, transport::TransportError}; use mango_v4::state::*; use program_test::*; @@ -14,7 +14,7 @@ mod program_test; // This is an unspecific happy-case test that just runs a few instructions to check // that they work in principle. It should be split up / renamed. #[tokio::test] -async fn test_margin_trade() -> Result<(), TransportError> { +async fn test_margin_trade() -> Result<(), BanksClientError> { let mut builder = TestContextBuilder::new(); let margin_trade = builder.add_margin_trade_program(); let context = builder.start_default().await; diff --git a/programs/mango-v4/tests/test_perp.rs b/programs/mango-v4/tests/test_perp.rs index 2c51b112c..95085f18b 100644 --- a/programs/mango-v4/tests/test_perp.rs +++ b/programs/mango-v4/tests/test_perp.rs @@ -2,14 +2,14 @@ use mango_v4::state::*; use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::signature::Keypair; use program_test::*; mod program_test; #[tokio::test] -async fn test_perp() -> Result<(), TransportError> { +async fn test_perp() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_serum.rs b/programs/mango-v4/tests/test_serum.rs index 5e0d36bed..157fa8a18 100644 --- a/programs/mango-v4/tests/test_serum.rs +++ b/programs/mango-v4/tests/test_serum.rs @@ -1,7 +1,7 @@ #![cfg(feature = "test-bpf")] use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::signature::Keypair; use mango_v4::{ instructions::{Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side}, @@ -12,7 +12,7 @@ use program_test::*; mod program_test; #[tokio::test] -async fn test_serum() -> Result<(), TransportError> { +async fn test_serum() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/programs/mango-v4/tests/test_update_index.rs b/programs/mango-v4/tests/test_update_index.rs index 39595cb42..7e17b867c 100644 --- a/programs/mango-v4/tests/test_update_index.rs +++ b/programs/mango-v4/tests/test_update_index.rs @@ -2,14 +2,14 @@ use mango_v4::state::Bank; use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::signature::Keypair; use program_test::*; mod program_test; #[tokio::test] -async fn test_update_index() -> Result<(), TransportError> { +async fn test_update_index() -> Result<(), BanksClientError> { let context = TestContext::new().await; let solana = &context.solana.clone(); diff --git a/release.sh b/release-to-devnet.sh similarity index 100% rename from release.sh rename to release-to-devnet.sh diff --git a/ts/README.md b/ts/client/README.md similarity index 100% rename from ts/README.md rename to ts/client/README.md diff --git a/package.json b/ts/client/package.json similarity index 90% rename from package.json rename to ts/client/package.json index 8b585cff3..7af6bc887 100644 --- a/package.json +++ b/ts/client/package.json @@ -8,9 +8,8 @@ "scripts": { "build": "tsc", "clean": "rm -rf dist", - "example0": "ts-node ts/example0.ts", - "example1-user": "ts-node ts/example1-user.ts", - "example1-admin": "ts-node ts/example1-admin.ts", + "example1-user": "ts-node src/example1-user.ts", + "example1-admin": "ts-node src/example1-admin.ts", "format": "prettier --check .", "lint": "eslint . --ext ts --ext tsx --ext js --quiet", "type-check": "tsc --pretty --noEmit" diff --git a/ts/accounts/types/I80F48.ts b/ts/client/src/accounts/I80F48.ts similarity index 100% rename from ts/accounts/types/I80F48.ts rename to ts/client/src/accounts/I80F48.ts diff --git a/ts/accounts/types/bank.ts b/ts/client/src/accounts/bank.ts similarity index 92% rename from ts/accounts/types/bank.ts rename to ts/client/src/accounts/bank.ts index 37c8c74fb..086517570 100644 --- a/ts/accounts/types/bank.ts +++ b/ts/client/src/accounts/bank.ts @@ -1,15 +1,18 @@ +import { utf8 } from '@project-serum/anchor/dist/cjs/utils/bytes'; import { PublicKey } from '@solana/web3.js'; import bs58 from 'bs58'; -import { MangoClient } from '../../client'; +import { MangoClient } from '../client'; import { I80F48, I80F48Dto } from './I80F48'; export class Bank { + public name: string; public depositIndex: I80F48; public borrowIndex: I80F48; static from( publicKey: PublicKey, obj: { + name: number[]; group: PublicKey; mint: PublicKey; vault: PublicKey; @@ -29,6 +32,7 @@ export class Bank { ) { return new Bank( publicKey, + obj.name, obj.group, obj.mint, obj.vault, @@ -49,6 +53,7 @@ export class Bank { constructor( public publicKey: PublicKey, + name: number[], public group: PublicKey, public mint: PublicKey, public vault: PublicKey, @@ -65,6 +70,7 @@ export class Bank { dust: Object, public tokenIndex: number, ) { + this.name = utf8.decode(new Uint8Array(name)).split('\x00')[0]; this.depositIndex = I80F48.from(depositIndex); this.borrowIndex = I80F48.from(borrowIndex); } diff --git a/ts/accounts/types/group.ts b/ts/client/src/accounts/group.ts similarity index 70% rename from ts/accounts/types/group.ts rename to ts/client/src/accounts/group.ts index b78c9ffe9..5a200cfd0 100644 --- a/ts/accounts/types/group.ts +++ b/ts/client/src/accounts/group.ts @@ -1,9 +1,5 @@ import { PublicKey } from '@solana/web3.js'; -import { MangoClient } from '../../client'; -import { - DEVNET_MINTS_REVERSE, - DEVNET_SERUM3_MARKETS_REVERSE, -} from '../../constants'; +import { MangoClient } from '../client'; import { Bank } from './bank'; import { Serum3Market } from './serum3'; @@ -32,20 +28,13 @@ export class Group { public async reloadBanks(client: MangoClient) { const banks = await client.getBanksForGroup(this); - this.banksMap = new Map( - banks.map((bank) => [DEVNET_MINTS_REVERSE[bank.mint.toBase58()], bank]), - ); + this.banksMap = new Map(banks.map((bank) => [bank.name, bank])); } public async reloadSerum3Markets(client: MangoClient) { const serum3Markets = await client.serum3GetMarket(this); this.serum3MarketsMap = new Map( - serum3Markets.map((serum3Market) => [ - DEVNET_SERUM3_MARKETS_REVERSE[ - serum3Market.serumMarketExternal.toBase58() - ], - serum3Market, - ]), + serum3Markets.map((serum3Market) => [serum3Market.name, serum3Market]), ); } } diff --git a/ts/accounts/types/mangoAccount.ts b/ts/client/src/accounts/mangoAccount.ts similarity index 93% rename from ts/accounts/types/mangoAccount.ts rename to ts/client/src/accounts/mangoAccount.ts index 4c8f0e8fc..96b8f01be 100644 --- a/ts/accounts/types/mangoAccount.ts +++ b/ts/client/src/accounts/mangoAccount.ts @@ -1,14 +1,16 @@ +import { utf8 } from '@project-serum/anchor/dist/cjs/utils/bytes'; import { PublicKey } from '@solana/web3.js'; import { Bank } from './bank'; import { I80F48, I80F48Dto } from './I80F48'; - export class MangoAccount { public tokens: TokenAccount[]; public serum3: Serum3Account[]; + public name: string; static from( publicKey: PublicKey, obj: { + name: number[]; group: PublicKey; owner: PublicKey; delegate: PublicKey; @@ -24,6 +26,7 @@ export class MangoAccount { ) { return new MangoAccount( publicKey, + obj.name, obj.group, obj.owner, obj.delegate, @@ -40,6 +43,7 @@ export class MangoAccount { constructor( public publicKey: PublicKey, + name: number[], public group: PublicKey, public owner: PublicKey, public delegate: PublicKey, @@ -52,6 +56,7 @@ export class MangoAccount { bump: number, reserved: number[], ) { + this.name = utf8.decode(new Uint8Array(name)).split('\x00')[0]; this.tokens = tokens.values.map((dto) => TokenAccount.from(dto)); this.serum3 = serum3.values.map((dto) => Serum3Account.from(dto)); } diff --git a/ts/accounts/types/oracle.ts b/ts/client/src/accounts/oracle.ts similarity index 94% rename from ts/accounts/types/oracle.ts rename to ts/client/src/accounts/oracle.ts index 7f0cc3a92..a16fce183 100644 --- a/ts/accounts/types/oracle.ts +++ b/ts/client/src/accounts/oracle.ts @@ -1,6 +1,6 @@ import { PublicKey, TransactionSignature } from '@solana/web3.js'; import BN from 'bn.js'; -import { MangoClient } from '../../client'; +import { MangoClient } from '../client'; import { I80F48, I80F48Dto } from './I80F48'; export class StubOracle { diff --git a/ts/accounts/types/serum3.ts b/ts/client/src/accounts/serum3.ts similarity index 85% rename from ts/accounts/types/serum3.ts rename to ts/client/src/accounts/serum3.ts index 63dfefa92..ac8dcb877 100644 --- a/ts/accounts/types/serum3.ts +++ b/ts/client/src/accounts/serum3.ts @@ -1,9 +1,12 @@ +import { utf8 } from '@project-serum/anchor/dist/cjs/utils/bytes'; import { PublicKey } from '@solana/web3.js'; export class Serum3Market { + public name: string; static from( publicKey: PublicKey, obj: { + name: number[]; group: PublicKey; serumProgram: PublicKey; serumMarketExternal: PublicKey; @@ -16,6 +19,7 @@ export class Serum3Market { ): Serum3Market { return new Serum3Market( publicKey, + obj.name, obj.group, obj.serumProgram, obj.serumMarketExternal, @@ -27,13 +31,16 @@ export class Serum3Market { constructor( public publicKey: PublicKey, + name: number[], public group: PublicKey, public serumProgram: PublicKey, public serumMarketExternal: PublicKey, public marketIndex: number, public baseTokenIndex: number, public quoteTokenIndex: number, - ) {} + ) { + this.name = utf8.decode(new Uint8Array(name)).split('\x00')[0]; + } } export class Serum3SelfTradeBehavior { diff --git a/ts/client.ts b/ts/client/src/client.ts similarity index 94% rename from ts/client.ts rename to ts/client/src/client.ts index 84fb7cffd..c2adc1ec2 100644 --- a/ts/client.ts +++ b/ts/client/src/client.ts @@ -10,17 +10,17 @@ import { TransactionSignature, } from '@solana/web3.js'; import bs58 from 'bs58'; -import { Bank, getMintInfoForTokenIndex } from './accounts/types/bank'; -import { Group } from './accounts/types/group'; -import { I80F48 } from './accounts/types/I80F48'; -import { MangoAccount } from './accounts/types/mangoAccount'; -import { StubOracle } from './accounts/types/oracle'; +import { Bank, getMintInfoForTokenIndex } from './accounts/bank'; +import { Group } from './accounts/group'; +import { I80F48 } from './accounts/I80F48'; +import { MangoAccount } from './accounts/mangoAccount'; +import { StubOracle } from './accounts/oracle'; import { Serum3Market, Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side, -} from './accounts/types/serum3'; +} from './accounts/serum3'; import { IDL, MangoV4 } from './mango_v4'; export const MANGO_V4_ID = new PublicKey( @@ -76,15 +76,28 @@ export class MangoClient { mintPk: PublicKey, oraclePk: PublicKey, tokenIndex: number, + name: string, + util0: number, + rate0: number, + util1: number, + rate1: number, + maxRate: number, + maintAssetWeight: number, + initAssetWeight: number, + maintLiabWeight: number, + initLiabWeight: number, + liquidationFee: number, ): Promise { return await this.program.methods .registerToken( tokenIndex, - 0.8, - 0.6, - 1.2, - 1.4, - 0.02 /*TODO expose as args*/, + name, + { util0, rate0, util1, rate1, maxRate }, + maintAssetWeight, + initAssetWeight, + maintLiabWeight, + initLiabWeight, + liquidationFee, ) .accounts({ group: group.publicKey, @@ -103,7 +116,7 @@ export class MangoClient { { memcmp: { bytes: group.publicKey.toBase58(), - offset: 8, + offset: 24, }, }, ]) @@ -173,10 +186,11 @@ export class MangoClient { group: Group, ownerPk: PublicKey, accountNumber?: number, + name?: string, ): Promise { let mangoAccounts = await this.getMangoAccountForOwner(group, ownerPk); if (mangoAccounts.length === 0) { - await this.createMangoAccount(group, accountNumber ?? 0); + await this.createMangoAccount(group, accountNumber ?? 0, name ?? ''); mangoAccounts = await this.getMangoAccountForOwner(group, ownerPk); } return mangoAccounts[0]; @@ -185,9 +199,10 @@ export class MangoClient { public async createMangoAccount( group: Group, accountNumber: number, + name?: string, ): Promise { return await this.program.methods - .createAccount(accountNumber) + .createAccount(accountNumber, name ?? '') .accounts({ group: group.publicKey, owner: this.program.provider.wallet.publicKey, @@ -212,13 +227,13 @@ export class MangoClient { { memcmp: { bytes: group.publicKey.toBase58(), - offset: 8, + offset: 24, }, }, { memcmp: { bytes: ownerPk.toBase58(), - offset: 40, + offset: 56, }, }, ]) @@ -320,9 +335,10 @@ export class MangoClient { baseBank: Bank, quoteBank: Bank, marketIndex: number, + name: string, ): Promise { return await this.program.methods - .serum3RegisterMarket(marketIndex) + .serum3RegisterMarket(marketIndex, name) .accounts({ group: group.publicKey, admin: this.program.provider.wallet.publicKey, @@ -347,7 +363,7 @@ export class MangoClient { { memcmp: { bytes: group.publicKey.toBase58(), - offset: 8, + offset: 24, }, }, ]; @@ -358,7 +374,7 @@ export class MangoClient { filters.push({ memcmp: { bytes: bs58.encode(bbuf), - offset: 106, + offset: 122, }, }); } @@ -369,7 +385,7 @@ export class MangoClient { filters.push({ memcmp: { bytes: bs58.encode(qbuf), - offset: 108, + offset: 124, }, }); } diff --git a/ts/constants.ts b/ts/client/src/constants.ts similarity index 91% rename from ts/constants.ts rename to ts/client/src/constants.ts index a5b3f4243..2c0b7e39d 100644 --- a/ts/constants.ts +++ b/ts/client/src/constants.ts @@ -1,6 +1,6 @@ import { PublicKey } from '@solana/web3.js'; -export const DEVNET_GROUP = 'Fwhv1B7yysktAqmoKbV6f1p25ap26Q81NKvd4jApmiB2'; +export const DEVNET_GROUP = '4Fv4jWsd9kYZjCMvkpcXnS63x9cHHHTqCDHTTTB5MbQt'; export const DEVNET_MINTS = new Map([ ['USDC', '8FRFC6MoGGkMFQwngccyu69VnYbzykGeez7ignHVAFSN'], diff --git a/ts/example1-admin.ts b/ts/client/src/example1-admin.ts similarity index 87% rename from ts/example1-admin.ts rename to ts/client/src/example1-admin.ts index 587a09121..f357adaf1 100644 --- a/ts/example1-admin.ts +++ b/ts/client/src/example1-admin.ts @@ -42,7 +42,23 @@ async function main() { const btcDevnetMint = new PublicKey(DEVNET_MINTS.get('BTC')!); const btcDevnetOracle = new PublicKey(DEVNET_ORACLES.get('BTC')!); try { - await client.registerToken(group, btcDevnetMint, btcDevnetOracle, 0); + await client.registerToken( + group, + btcDevnetMint, + btcDevnetOracle, + 0, + 'BTC', + 0.4, + 0.07, + 0.8, + 0.9, + 1.5, + 0.8, + 0.6, + 1.2, + 1.4, + 0.02, + ); } catch (error) {} // stub oracle + register token 1 @@ -58,6 +74,17 @@ async function main() { usdcDevnetMint, usdcDevnetOracle.publicKey, 1, + 'USDC', + 0.4, + 0.07, + 0.8, + 0.9, + 1.5, + 0.8, + 0.6, + 1.2, + 1.4, + 0.02, ); } catch (error) {} @@ -82,6 +109,7 @@ async function main() { banks[0], banks[1], 0, + 'BTC/USDC', ); } catch (error) {} const markets = await client.serum3GetMarket( diff --git a/ts/example1-user.ts b/ts/client/src/example1-user.ts similarity index 96% rename from ts/example1-user.ts rename to ts/client/src/example1-user.ts index 4dd7596b2..4557eee3d 100644 --- a/ts/example1-user.ts +++ b/ts/client/src/example1-user.ts @@ -5,7 +5,7 @@ import { Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side, -} from './accounts/types/serum3'; +} from './accounts/serum3'; import { MangoClient } from './client'; import { DEVNET_GROUP, DEVNET_SERUM3_PROGRAM_ID } from './constants'; @@ -33,11 +33,16 @@ async function main() { const group = await client.getGroup(new PublicKey(DEVNET_GROUP)); console.log(`Group ${group.publicKey.toBase58()}`); + for (const bank of group.banksMap.values()) { + console.log(bank.publicKey.toBase58()); + } + // create + fetch account const mangoAccount = await client.getOrCreateMangoAccount( group, user.publicKey, 0, + 'my_mango_account', ); console.log(`MangoAccount ${mangoAccount.publicKey}`); diff --git a/ts/client/src/index.ts b/ts/client/src/index.ts new file mode 100644 index 000000000..4cdecd6a6 --- /dev/null +++ b/ts/client/src/index.ts @@ -0,0 +1,10 @@ +export { Group } from './client/accounts/group'; +export * from './client/accounts/I80F48'; +export { + MangoAccount, + TokenAccount, + TokenAccountDto, +} from './client/accounts/mangoAccount'; +export { StubOracle } from './client/accounts/oracle'; +export { Serum3Market } from './client/accounts/serum3'; +export * from './client/client'; diff --git a/ts/mango_v4.ts b/ts/client/src/mango_v4.ts similarity index 95% rename from ts/mango_v4.ts rename to ts/client/src/mango_v4.ts index 194c59e3c..dbc9d0ea8 100644 --- a/ts/mango_v4.ts +++ b/ts/client/src/mango_v4.ts @@ -164,6 +164,16 @@ export type MangoV4 = { "name": "tokenIndex", "type": "u16" }, + { + "name": "name", + "type": "string" + }, + { + "name": "interestRateParams", + "type": { + "defined": "InterestRateParams" + } + }, { "name": "maintAssetWeight", "type": "f32" @@ -186,6 +196,17 @@ export type MangoV4 = { } ] }, + { + "name": "updateIndex", + "accounts": [ + { + "name": "bank", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, { "name": "createAccount", "accounts": [ @@ -243,6 +264,10 @@ export type MangoV4 = { { "name": "accountNum", "type": "u8" + }, + { + "name": "name", + "type": "string" } ] }, @@ -568,6 +593,10 @@ export type MangoV4 = { { "name": "marketIndex", "type": "u16" + }, + { + "name": "name", + "type": "string" } ] }, @@ -1315,6 +1344,15 @@ export type MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -1355,6 +1393,40 @@ export type MangoV4 = { "defined": "I80F48" } }, + { + "name": "lastUpdated", + "type": "i64" + }, + { + "name": "util0", + "type": { + "defined": "I80F48" + } + }, + { + "name": "rate0", + "type": { + "defined": "I80F48" + } + }, + { + "name": "util1", + "type": { + "defined": "I80F48" + } + }, + { + "name": "rate1", + "type": { + "defined": "I80F48" + } + }, + { + "name": "maxRate", + "type": { + "defined": "I80F48" + } + }, { "name": "maintAssetWeight", "type": { @@ -1492,6 +1564,15 @@ export type MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -1802,6 +1883,15 @@ export type MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -2050,6 +2140,34 @@ export type MangoV4 = { ] } }, + { + "name": "InterestRateParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "util0", + "type": "f32" + }, + { + "name": "rate0", + "type": "f32" + }, + { + "name": "util1", + "type": "f32" + }, + { + "name": "rate1", + "type": "f32" + }, + { + "name": "maxRate", + "type": "f32" + } + ] + } + }, { "name": "TokenIndex", "type": { @@ -2562,6 +2680,16 @@ export const IDL: MangoV4 = { "name": "tokenIndex", "type": "u16" }, + { + "name": "name", + "type": "string" + }, + { + "name": "interestRateParams", + "type": { + "defined": "InterestRateParams" + } + }, { "name": "maintAssetWeight", "type": "f32" @@ -2584,6 +2712,17 @@ export const IDL: MangoV4 = { } ] }, + { + "name": "updateIndex", + "accounts": [ + { + "name": "bank", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, { "name": "createAccount", "accounts": [ @@ -2641,6 +2780,10 @@ export const IDL: MangoV4 = { { "name": "accountNum", "type": "u8" + }, + { + "name": "name", + "type": "string" } ] }, @@ -2966,6 +3109,10 @@ export const IDL: MangoV4 = { { "name": "marketIndex", "type": "u16" + }, + { + "name": "name", + "type": "string" } ] }, @@ -3713,6 +3860,15 @@ export const IDL: MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -3753,6 +3909,40 @@ export const IDL: MangoV4 = { "defined": "I80F48" } }, + { + "name": "lastUpdated", + "type": "i64" + }, + { + "name": "util0", + "type": { + "defined": "I80F48" + } + }, + { + "name": "rate0", + "type": { + "defined": "I80F48" + } + }, + { + "name": "util1", + "type": { + "defined": "I80F48" + } + }, + { + "name": "rate1", + "type": { + "defined": "I80F48" + } + }, + { + "name": "maxRate", + "type": { + "defined": "I80F48" + } + }, { "name": "maintAssetWeight", "type": { @@ -3890,6 +4080,15 @@ export const IDL: MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -4200,6 +4399,15 @@ export const IDL: MangoV4 = { "type": { "kind": "struct", "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 16 + ] + } + }, { "name": "group", "type": "publicKey" @@ -4448,6 +4656,34 @@ export const IDL: MangoV4 = { ] } }, + { + "name": "InterestRateParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "util0", + "type": "f32" + }, + { + "name": "rate0", + "type": "f32" + }, + { + "name": "util1", + "type": "f32" + }, + { + "name": "rate1", + "type": "f32" + }, + { + "name": "maxRate", + "type": "f32" + } + ] + } + }, { "name": "TokenIndex", "type": { diff --git a/ts/utils.ts b/ts/client/src/utils.ts similarity index 100% rename from ts/utils.ts rename to ts/client/src/utils.ts diff --git a/tsconfig.json b/ts/client/tsconfig.json similarity index 100% rename from tsconfig.json rename to ts/client/tsconfig.json diff --git a/yarn.lock b/ts/client/yarn.lock similarity index 100% rename from yarn.lock rename to ts/client/yarn.lock diff --git a/ts/index.ts b/ts/index.ts deleted file mode 100644 index 81bf1f1e7..000000000 --- a/ts/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export { Group } from './accounts/types/group'; -export * from './accounts/types/I80F48'; -export { - MangoAccount, - TokenAccount, - TokenAccountDto, -} from './accounts/types/mangoAccount'; -export { StubOracle } from './accounts/types/oracle'; -export { Serum3Market } from './accounts/types/serum3'; -export * from './client'; diff --git a/update-local-idl.sh b/update-local-idl.sh new file mode 100755 index 000000000..a1759ba19 --- /dev/null +++ b/update-local-idl.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e pipefail + +anchor build --skip-lint +./idl-fixup.sh +cp -v ./target/types/mango_v4.ts ./ts/mango_v4.ts +tsc \ No newline at end of file