From 234d8e268295dd9787df7b338cb6c92e9f3442fe Mon Sep 17 00:00:00 2001 From: Maximilian Schneider Date: Tue, 2 Aug 2022 16:59:07 +0200 Subject: [PATCH] support pyth oracle to deprecate flux aggregator (#33) * add pyth client * add pyth oracle and instruction to switch * implement cli for oracle switch * fix common build * fix build for cli * fix devnet url * rename arg --- cli/Cargo.lock | 3123 ++++++++++++++++++------------------ cli/Cargo.toml | 15 +- cli/src/main.rs | 58 +- common/Cargo.lock | 2 +- common/Cargo.toml | 4 +- common/src/lib.rs | 2 +- program/Cargo.lock | 873 ++++------ program/Cargo.toml | 9 +- program/src/error.rs | 10 + program/src/instruction.rs | 49 +- program/src/processor.rs | 71 +- 11 files changed, 2080 insertions(+), 2136 deletions(-) diff --git a/cli/Cargo.lock b/cli/Cargo.lock index 824bf41..35d86a2 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -12,15 +12,6 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" -dependencies = [ - "gimli", -] - [[package]] name = "adler" version = "1.0.2" @@ -28,10 +19,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "ahash" -version = "0.4.7" +name = "aead" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures 0.2.2", + "opaque-debug 0.3.0", +] + +[[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 2.4.0", + "zeroize", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check", +] [[package]] name = "aho-corasick" @@ -42,6 +74,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "alloc-traits" version = "0.1.1" @@ -54,14 +92,14 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "anyhow" -version = "1.0.40" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "arrayref" @@ -71,9 +109,9 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "ascii" @@ -87,6 +125,26 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-trait" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +dependencies = [ + "proc-macro2 1.0.42", + "quote 1.0.9", + "syn 1.0.98", +] + [[package]] name = "atty" version = "0.2.14" @@ -95,7 +153,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -110,39 +168,12 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "822d7d63e0c0260a050f6b1f0d316f5c79b9eab830aca526ed904e1011bd64ca" -[[package]] -name = "backtrace" -version = "0.3.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ed203b9ba68b242c62b3fb7480f589dd49829be1edb3fe8fc8b4ffda2dcb8d" -dependencies = [ - "addr2line", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "serde", -] - -[[package]] -name = "base32" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" - [[package]] name = "base58" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.12.3" @@ -155,6 +186,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64ct" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851" + [[package]] name = "bincode" version = "1.3.3" @@ -166,33 +203,31 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +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 = "0.3.8" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if 0.1.10", + "cfg-if", "constant_time_eq", - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "block-buffer" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" -dependencies = [ - "byte-tools 0.2.0", - "generic-array 0.8.4", + "digest 0.10.3", ] [[package]] @@ -202,7 +237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ "block-padding 0.1.5", - "byte-tools 0.3.1", + "byte-tools", "byteorder", "generic-array 0.12.4", ] @@ -214,7 +249,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ "block-padding 0.2.1", - "generic-array 0.14.4", + "generic-array 0.14.5", +] + +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array 0.14.5", ] [[package]] @@ -223,7 +267,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" dependencies = [ - "byte-tools 0.3.1", + "byte-tools", ] [[package]] @@ -243,12 +287,12 @@ dependencies = [ [[package]] name = "borsh" -version = "0.8.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a7111f797cc721407885a323fb071636aee57f750b1a4ddc27397eba168a74" +checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ - "borsh-derive 0.8.2", - "hashbrown", + "borsh-derive 0.9.3", + "hashbrown 0.11.2", ] [[package]] @@ -259,21 +303,21 @@ checksum = "e6aaa45f8eec26e4bf71e7e5492cf53a91591af8f871f422d550e7cc43f6b927" dependencies = [ "borsh-derive-internal 0.7.2", "borsh-schema-derive-internal 0.7.2", - "proc-macro2 1.0.27", - "syn 1.0.72", + "proc-macro2 1.0.42", + "syn 1.0.98", ] [[package]] name = "borsh-derive" -version = "0.8.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307f3740906bac2c118a8122fe22681232b244f1369273e45f1156b45c43d2dd" +checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ - "borsh-derive-internal 0.8.2", - "borsh-schema-derive-internal 0.8.2", - "proc-macro-crate", - "proc-macro2 1.0.27", - "syn 1.0.72", + "borsh-derive-internal 0.9.3", + "borsh-schema-derive-internal 0.9.3", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.42", + "syn 1.0.98", ] [[package]] @@ -282,20 +326,20 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61621b9d3cca65cc54e2583db84ef912d59ae60d2f04ba61bc0d7fc57556bda2" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "borsh-derive-internal" -version = "0.8.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc" +checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] @@ -304,28 +348,22 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b38abfda570837b0949c2c7ebd31417e15607861c23eacb2f668c69f6f3bf7" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "borsh-schema-derive-internal" -version = "0.8.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728" +checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] -[[package]] -name = "bs58" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" - [[package]] name = "bs58" version = "0.4.0" @@ -348,12 +386,6 @@ dependencies = [ "serde", ] -[[package]] -name = "byte-tools" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" - [[package]] name = "byte-tools" version = "0.3.1" @@ -362,9 +394,23 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.5.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58" +checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd2f4180c5721da6335cc9e9061cce522b87a35e51cc57636d28d22a9863c80" +dependencies = [ + "proc-macro2 1.0.42", + "quote 1.0.9", + "syn 1.0.98", +] [[package]] name = "byteorder" @@ -374,32 +420,15 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "0.4.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "either", - "iovec", -] - -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - -[[package]] -name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" [[package]] name = "bzip2" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" +checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" dependencies = [ "bzip2-sys", "libc", @@ -407,15 +436,26 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.10+1.0.8" +version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" dependencies = [ "cc", "libc", "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 = "cast" version = "0.2.6" @@ -427,20 +467,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.49" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e450b8da92aa6f274e7c6437692f9f2ce6d701fb73bacfcf87897b3f89a4c20e" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" dependencies = [ "jobserver", - "num_cpus", ] -[[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" @@ -457,8 +490,27 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time", - "winapi 0.3.9", + "time 0.1.43", + "winapi", +] + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "cipher" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +dependencies = [ + "crypto-common", + "inout", ] [[package]] @@ -503,9 +555,9 @@ checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] @@ -520,6 +572,7 @@ dependencies = [ "fixed", "flux-aggregator", "mango", + "pyth-client", "serde_json", "serum_dex", "solana-cli", @@ -528,15 +581,6 @@ dependencies = [ "spl-token", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - [[package]] name = "combine" version = "3.8.1" @@ -556,7 +600,7 @@ version = "2.0.0" dependencies = [ "anyhow", "bincode", - "bs58 0.4.0", + "bs58", "bytemuck", "ed25519-dalek", "rand 0.7.3", @@ -564,27 +608,10 @@ dependencies = [ "solana-client", "solana-sdk", "spl-token", - "tiny-bip39 0.7.3", + "tiny-bip39", "tiny-hderive", ] -[[package]] -name = "console" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c0994e656bba7b922d8dd1245db90672ffb701e684e45be58f20719d69abc5a" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "regex", - "terminal_size", - "termios", - "unicode-width", - "winapi 0.3.9", - "winapi-util", -] - [[package]] name = "console" version = "0.14.1" @@ -594,10 +621,68 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "regex", + "terminal_size", + "winapi", +] + +[[package]] +name = "console" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", "terminal_size", "unicode-width", - "winapi 0.3.9", + "winapi", +] + +[[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", + "wasm-bindgen", +] + +[[package]] +name = "console_log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +dependencies = [ + "log", + "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_format" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "939dc9e2eb9077e0679d2ce32de1ded8531779360b003b4a972a7a39ec263495" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d" +dependencies = [ + "proc-macro2 1.0.42", + "quote 1.0.9", + "unicode-xid 0.2.2", ] [[package]] @@ -631,13 +716,22 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -653,35 +747,14 @@ dependencies = [ "thread-scoped", ] -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - [[package]] name = "crossbeam-channel" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.5", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "cfg-if", + "crossbeam-utils", ] [[package]] @@ -690,24 +763,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.5", - "crossbeam-utils 0.8.5", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -716,42 +774,20 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.5", + "cfg-if", + "crossbeam-utils", "lazy_static", - "memoffset 0.6.4", + "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] @@ -762,13 +798,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "crypto-mac" -version = "0.4.0" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779015233ac67d65098614aec748ac1c756ab6677fa2e14cf8b37c08dfed1198" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "constant_time_eq", - "generic-array 0.8.4", + "generic-array 0.14.5", + "typenum", ] [[package]] @@ -787,62 +823,39 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", "subtle 2.4.0", ] [[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 0.14.4", - "subtle 2.4.0", -] - -[[package]] -name = "crypto-mac" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" -dependencies = [ - "generic-array 0.14.4", - "subtle 2.4.0", + "cipher 0.3.0", ] [[package]] name = "ctrlc" -version = "3.1.9" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "232295399409a8b7ae41276757b5a1cc21032848d42bff2352261f958b3ca29a" +checksum = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865" dependencies = [ - "nix 0.20.0", - "winapi 0.3.9", + "nix 0.24.2", + "winapi", ] [[package]] name = "curve25519-dalek" -version = "2.1.2" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.4.0", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" +checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", + "serde", "subtle 2.4.0", "zeroize", ] @@ -853,49 +866,35 @@ version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "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 = "derivative" -version = "2.2.0" +name = "derivation-path" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2 1.0.27", - "quote 1.0.9", - "syn 1.0.72", -] +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" [[package]] name = "dialoguer" -version = "0.6.2" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4aa86af7b19b40ef9cbef761ed411a49f0afa06b7b6dcd3dfe2f96a3c546138" +checksum = "a92e7e37ecef6857fdc0c0c5d42fd5b0938e46590c2183cc92dd310a6d078eb1" dependencies = [ - "console 0.11.3", - "lazy_static", + "console 0.15.1", "tempfile", -] - -[[package]] -name = "digest" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b29bf156f3f4b3c4f610a25ff69370616ae6e0657d416de22645483e72af0a" -dependencies = [ - "generic-array 0.8.4", + "zeroize", ] [[package]] @@ -913,7 +912,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", +] + +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer 0.10.2", + "crypto-common", + "subtle 2.4.0", ] [[package]] @@ -931,7 +941,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -943,14 +953,31 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] -name = "dtoa" -version = "0.4.8" +name = "dlopen" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +dependencies = [ + "dlopen_derive", + "lazy_static", + "libc", + "winapi", +] + +[[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" @@ -958,7 +985,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d0860415b12243916284c67a9be413e044ee6668247b99ba26d94b2bc06c8f6" dependencies = [ - "serde", "signature", ] @@ -968,26 +994,24 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 3.1.0", + "curve25519-dalek", "ed25519", "rand 0.7.3", "serde", - "serde_bytes", "sha2 0.9.5", "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 0.9.5", + "hmac 0.12.1", + "sha2 0.10.2", ] [[package]] @@ -1008,7 +1032,27 @@ version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2 1.0.42", + "quote 1.0.9", + "syn 1.0.98", ] [[package]] @@ -1026,16 +1070,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "env_logger" -version = "0.8.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -1045,33 +1089,47 @@ 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", ] [[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 1.0.27", - "quote 1.0.9", - "syn 1.0.72", - "synstructure", + "cc", + "libc", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "fake-simd" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + [[package]] name = "feature-probe" version = "0.1.1" @@ -1084,7 +1142,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" dependencies = [ - "memoffset 0.6.4", + "memoffset", "rustc_version 0.3.3", ] @@ -1094,10 +1152,10 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", - "redox_syscall 0.2.8", - "winapi 0.3.9", + "redox_syscall", + "winapi", ] [[package]] @@ -1131,11 +1189,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "787fa8e0bf88449e84799f4b440a15bd1958c4552a80abc568d5ba9e20a4283e" dependencies = [ "fixed", - "paste 1.0.5", + "paste", "proc-macro-error", - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] @@ -1150,20 +1208,18 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.20" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if 1.0.0", "crc32fast", - "libc", "miniz_oxide", ] [[package]] name = "flux-aggregator" version = "0.1.0" -source = "git+https://github.com/blockworks-foundation/solana-flux-aggregator.git#d406e893ff025852bb597a39a5dfe6714f88543a" +source = "git+https://github.com/blockworks-foundation/solana-flux-aggregator.git?rev=ca6706d05218acc84d164ed5149fac7612d3aa2b#ca6706d05218acc84d164ed5149fac7612d3aa2b" dependencies = [ "borsh 0.7.2", "borsh-derive 0.7.2", @@ -1182,21 +1238,6 @@ 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" @@ -1207,40 +1248,12 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - [[package]] name = "fuchsia-cprng" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[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.15" @@ -1258,9 +1271,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -1268,9 +1281,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" @@ -1285,42 +1298,39 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-macro" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "autocfg", - "proc-macro-hack", - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "futures-sink" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ - "autocfg", "futures-channel", "futures-core", "futures-io", @@ -1330,19 +1340,16 @@ dependencies = [ "memchr", "pin-project-lite", "pin-utils", - "proc-macro-hack", - "proc-macro-nested", "slab", ] [[package]] -name = "generic-array" -version = "0.8.4" +name = "fxhash" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2297fb0e3ea512e380da24b52dca3924028f59df5e3a17a18f81d8349ca7ebe" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" dependencies = [ - "nodrop", - "typenum", + "byteorder", ] [[package]] @@ -1356,9 +1363,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" dependencies = [ "serde", "typenum", @@ -1367,12 +1374,12 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1381,9 +1388,11 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1392,28 +1401,16 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.10.2+wasi-snapshot-preview1", ] -[[package]] -name = "gimli" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - [[package]] name = "goblin" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669cdc3826f69a51d3f8fc3f86de81c2378110254f678b8407977736122057a4" +checksum = "32401e89c6446dcd28185931a01b1093726d0356820ac744023e6850689bf926" dependencies = [ "log", "plain", @@ -1422,11 +1419,11 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.3" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ - "bytes 1.0.1", + "bytes", "fnv", "futures-core", "futures-sink", @@ -1434,7 +1431,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.6.1", + "tokio", "tokio-util", "tracing", ] @@ -1459,6 +1456,21 @@ name = "hashbrown" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] @@ -1481,17 +1493,11 @@ dependencies = [ "libc", ] -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - [[package]] name = "hidapi" -version = "1.2.6" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e07da7e8614133e88b3a93b7352eb3729e3ccd82d5ab661adf23bef1761bf8" +checksum = "38b1717343691998deb81766bfcd1dce6df0d5d6c37070b5a3de2bb6d39f7822" dependencies = [ "cc", "libc", @@ -1499,15 +1505,10 @@ dependencies = [ ] [[package]] -name = "hmac" -version = "0.4.2" +name = "histogram" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a13f4163aa0c5ca1be584aace0e2212b2e41be5478218d4f657f5f778b2ae2a" -dependencies = [ - "crypto-mac 0.4.0", - "digest 0.6.2", - "generic-array 0.8.4", -] +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" [[package]] name = "hmac" @@ -1531,33 +1532,11 @@ dependencies = [ [[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.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.0", - "digest 0.9.0", -] - -[[package]] -name = "hmac-drbg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe727d41d2eec0a6574d887914347e5ff96a3b87177817e2a9820c5c87fecc2" -dependencies = [ - "digest 0.6.2", - "generic-array 0.8.4", - "hmac 0.4.2", + "digest 0.10.3", ] [[package]] @@ -1571,15 +1550,26 @@ dependencies = [ "hmac 0.7.1", ] +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.5", + "hmac 0.8.1", +] + [[package]] name = "http" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ - "bytes 1.0.1", + "bytes", "fnv", - "itoa", + "itoa 0.4.7", ] [[package]] @@ -1588,16 +1578,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" dependencies = [ - "bytes 1.0.1", + "bytes", "http", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.4.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -1613,11 +1603,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.8" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f71a7eea53a3f8257a7b4795373ff886397178cd634430ea94e12d7fe4fe34" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ - "bytes 1.0.1", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -1626,10 +1616,10 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa", - "pin-project", - "socket2 0.4.0", - "tokio 1.6.1", + "itoa 1.0.2", + "pin-project-lite", + "socket2", + "tokio", "tower-service", "tracing", "want", @@ -1637,17 +1627,15 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ - "futures-util", + "http", "hyper", - "log", "rustls", - "tokio 1.6.1", + "tokio", "tokio-rustls", - "webpki", ] [[package]] @@ -1661,6 +1649,28 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.2", + "rand_xoshiro", + "rayon", + "serde", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "index_list" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" + [[package]] name = "indexmap" version = "1.6.2" @@ -1668,14 +1678,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.9.1", ] [[package]] name = "indicatif" -version = "0.15.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4" +checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" dependencies = [ "console 0.14.1", "lazy_static", @@ -1684,12 +1694,12 @@ dependencies = [ ] [[package]] -name = "input_buffer" -version = "0.3.1" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "bytes 0.5.6", + "generic-array 0.14.5", ] [[package]] @@ -1698,16 +1708,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", + "cfg-if", ] [[package]] @@ -1725,6 +1726,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.7" @@ -1732,36 +1742,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] -name = "jemalloc-ctl" -version = "0.3.3" +name = "itoa" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c502a5ff9dd2924f1ed32ba96e3b65735d837b4bfd978d3161b1702e66aca4b7" -dependencies = [ - "jemalloc-sys", - "libc", - "paste 0.1.18", -] - -[[package]] -name = "jemalloc-sys" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3b9f3f5c9b31aa0f5ed3260385ac205db665baa41d49bb8338008ae94ede45" -dependencies = [ - "cc", - "fs_extra", - "libc", -] - -[[package]] -name = "jemallocator" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ae63fcfc45e99ab3d1b29a46782ad679e98436c3169d15a167a1108a724b69" -dependencies = [ - "jemalloc-sys", - "libc", -] +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "jobserver" @@ -1774,20 +1758,22 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.51" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpc-core" -version = "17.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07569945133257ff557eb37b015497104cea61a2c9edaf126c1cbd6e8332397f" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.15", + "futures", + "futures-executor", + "futures-util", "log", "serde", "serde_derive", @@ -1800,53 +1786,26 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" -[[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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] [[package]] name = "libc" -version = "0.2.95" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libloading" -version = "0.6.7" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", -] - -[[package]] -name = "libsecp256k1" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688e8d65e495567c2c35ea0001b26b9debf0b4ea11f8cccc954233b75fc3428a" -dependencies = [ - "arrayref", - "digest 0.6.2", - "hmac-drbg 0.1.2", - "rand 0.4.6", - "sha2 0.6.0", - "typenum", + "cfg-if", + "winapi", ] [[package]] @@ -1865,6 +1824,54 @@ dependencies = [ "typenum", ] +[[package]] +name = "libsecp256k1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" +dependencies = [ + "arrayref", + "base64 0.12.3", + "digest 0.9.0", + "hmac-drbg 0.3.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.7.3", + "serde", + "sha2 0.9.5", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle 2.4.0", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core", +] + [[package]] name = "linked-hash-map" version = "0.5.4" @@ -1873,18 +1880,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "lock_api" -version = "0.3.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "lock_api" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -1895,12 +1893,21 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", ] [[package]] name = "mango" -version = "2.0.0" +version = "2.1.2" dependencies = [ "arrayref", "bincode", @@ -1912,6 +1919,7 @@ dependencies = [ "flux-aggregator", "num-derive", "num_enum", + "pyth-client", "safe-transmute", "serde", "serum_dex", @@ -1927,12 +1935,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.4.0" @@ -1941,22 +1943,13 @@ checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memmap2" -version = "0.1.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a" +checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.6.4" @@ -1972,6 +1965,18 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93c0d11ac30a033511ae414355d80f70d9f29a44a49140face477117a1ee90db" +[[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.2", + "zeroize", +] + [[package]] name = "mime" version = "0.3.16" @@ -1980,155 +1985,79 @@ checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "miniz_oxide" -version = "0.4.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", - "autocfg", ] [[package]] name = "mio" -version = "0.6.23" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", - "miow 0.3.7", - "ntapi", - "winapi 0.3.9", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", ] [[package]] -name = "mio-uds" -version = "0.6.8" +name = "modular-bitfield" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" dependencies = [ - "iovec", - "libc", - "mio 0.6.23", + "modular-bitfield-impl", + "static_assertions", ] [[package]] -name = "miow" -version = "0.2.2" +name = "modular-bitfield-impl" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "native-tls" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" -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", + "proc-macro2 1.0.42", + "quote 1.0.9", + "syn 1.0.98", ] [[package]] name = "nix" -version = "0.19.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" dependencies = [ "bitflags", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", + "memoffset", ] [[package]] name = "nix" -version = "0.20.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags", - "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "num-derive" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] @@ -2152,9 +2081,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" dependencies = [ "hermit-abi", "libc", @@ -2162,46 +2091,45 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" dependencies = [ - "derivative", "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.27", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", ] [[package]] name = "number_prefix" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a" - -[[package]] -name = "object" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "once_cell" -version = "1.7.2" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" -dependencies = [ - "parking_lot 0.11.1", -] +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -2215,39 +2143,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -[[package]] -name = "openssl" -version = "0.10.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - [[package]] name = "openssl-probe" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" -[[package]] -name = "openssl-sys" -version = "0.9.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "os_str_bytes" version = "2.4.0" @@ -2256,109 +2157,49 @@ checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85" [[package]] name = "ouroboros" -version = "0.5.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc04551635026d3ac7bc646698ea1836a85ed2a26b7094fe1d15d8b14854c4a2" +checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662" dependencies = [ + "aliasable", "ouroboros_macro", "stable_deref_trait", ] [[package]] name = "ouroboros_macro" -version = "0.5.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec33dfceabec83cd0e95a5ce9d20e76ab3a5cbfef59659b8c927f69b93ed8ae" +checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82" dependencies = [ "Inflector", - "proc-macro2 1.0.27", + "proc-macro-error", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "parking_lot" -version = "0.9.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.2", - "rustc_version 0.2.3", -] - -[[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", -] - -[[package]] -name = "parking_lot" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" -dependencies = [ - "instant", - "lock_api 0.4.4", - "parking_lot_core 0.8.3", + "lock_api", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.6.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ - "cfg-if 0.1.10", - "cloudabi", + "cfg-if", "libc", - "redox_syscall 0.1.57", - "rustc_version 0.2.3", - "smallvec 0.6.14", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "smallvec 1.6.1", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.8", - "smallvec 1.6.1", - "winapi 0.3.9", -] - -[[package]] -name = "paste" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" -dependencies = [ - "paste-impl", - "proc-macro-hack", + "redox_syscall", + "smallvec", + "windows-sys", ] [[package]] @@ -2367,25 +2208,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" -[[package]] -name = "paste-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" -dependencies = [ - "proc-macro-hack", -] - -[[package]] -name = "pbkdf2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" -dependencies = [ - "byteorder", - "crypto-mac 0.7.0", -] - [[package]] name = "pbkdf2" version = "0.4.0" @@ -2397,11 +2219,20 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.6.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a" +checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" dependencies = [ - "crypto-mac 0.10.0", + "digest 0.10.3", +] + +[[package]] +name = "pem" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" +dependencies = [ + "base64 0.13.0", ] [[package]] @@ -2419,26 +2250,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "pin-project" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" -dependencies = [ - "proc-macro2 1.0.27", - "quote 1.0.9", - "syn 1.0.72", -] - [[package]] name = "pin-project-lite" version = "0.2.6" @@ -2451,6 +2262,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + [[package]] name = "pkg-config" version = "0.3.19" @@ -2463,6 +2285,18 @@ 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", + "cpufeatures 0.2.2", + "opaque-debug 0.3.0", + "universal-hash", +] + [[package]] name = "ppv-lite86" version = "0.2.10" @@ -2484,6 +2318,16 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2491,9 +2335,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", "version_check", ] @@ -2503,23 +2347,11 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - [[package]] name = "proc-macro2" version = "0.4.30" @@ -2531,11 +2363,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" dependencies = [ - "unicode-xid 0.2.2", + "unicode-ident", +] + +[[package]] +name = "pyth-client" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "398f9e51e126a13903254c56f75b3201583db075d0fbb77e931f7515af9b3d16" +dependencies = [ + "borsh 0.9.3", + "borsh-derive 0.9.3", + "bytemuck", + "num-derive", + "num-traits", + "serde", + "solana-program", + "thiserror", ] [[package]] @@ -2547,6 +2395,59 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "quinn" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7542006acd6e057ff632307d219954c44048f818898da03113d6c0086bfddd9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a13a5c0a674c1ce7150c9df7bc4a1e46c2fbbe7c710f56c0dc78b1a810e779e" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.3", + "ring", + "rustls", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3149f7237331015f1a6adf065c397d1be71e032fcf110ba41da52e7926b882f" +dependencies = [ + "futures-util", + "libc", + "quinn-proto", + "socket2", + "tokio", + "tracing", +] + [[package]] name = "quote" version = "0.6.13" @@ -2562,7 +2463,7 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", ] [[package]] @@ -2575,7 +2476,7 @@ dependencies = [ "libc", "rand_core 0.3.1", "rdrand", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2684,6 +2585,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.2", +] + [[package]] name = "rayon" version = "1.5.1" @@ -2691,7 +2601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque 0.8.0", + "crossbeam-deque", "either", "rayon-core", ] @@ -2702,13 +2612,25 @@ version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ - "crossbeam-channel 0.5.1", - "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.5", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", "lazy_static", "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.11", + "yasna", +] + [[package]] name = "rdrand" version = "0.4.0" @@ -2720,15 +2642,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -2740,7 +2656,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ "getrandom 0.2.3", - "redox_syscall 0.2.8", + "redox_syscall", ] [[package]] @@ -2766,20 +2682,21 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "reqwest" -version = "0.11.3" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2296f2fac53979e8ccbc4a1136b25dcefd37be9ed7e4a1f6b05a6029c84ff124" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ "base64 0.13.0", - "bytes 1.0.1", + "bytes", "encoding_rs", "futures-core", "futures-util", + "h2", "http", "http-body", "hyper", @@ -2792,11 +2709,13 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", + "rustls-pemfile 1.0.0", "serde", "serde_json", "serde_urlencoded", - "tokio 1.6.1", + "tokio", "tokio-rustls", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2807,27 +2726,29 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.12" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba5a8ec64ee89a76c98c549af81ff14813df09c3e6dc4766c3856da48597a0c" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ "cc", - "lazy_static", "libc", + "once_cell", "spin", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] name = "rpassword" -version = "4.0.5" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" +checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" dependencies = [ "libc", - "winapi 0.3.9", + "serde", + "serde_json", + "winapi", ] [[package]] @@ -2842,15 +2763,6 @@ 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" @@ -2861,12 +2773,20 @@ dependencies = [ ] [[package]] -name = "rustls" -version = "0.19.1" +name = "rustc_version" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.12", +] + +[[package]] +name = "rustls" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ - "base64 0.13.0", "log", "ring", "sct", @@ -2874,10 +2794,40 @@ dependencies = [ ] [[package]] -name = "rustversion" -version = "1.0.5" +name = "rustls-native-certs" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.0", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64 0.13.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +dependencies = [ + "base64 0.13.0", +] + +[[package]] +name = "rustversion" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" [[package]] name = "ryu" @@ -2907,7 +2857,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" dependencies = [ "lazy_static", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2931,16 +2881,16 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "sct" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -2969,29 +2919,20 @@ dependencies = [ "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 0.10.2", + "semver-parser", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "semver" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" [[package]] name = "semver-parser" @@ -3004,9 +2945,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.126" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" dependencies = [ "serde_derive", ] @@ -3022,54 +2963,54 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ - "itoa", + "itoa 1.0.2", "ryu", "serde", ] [[package]] name = "serde_urlencoded" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa", + "itoa 1.0.2", "ryu", "serde", ] [[package]] name = "serde_yaml" -version = "0.8.17" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15654ed4ab61726bf918a39cb8d98a2e2995b002387807fa6ba58fdf7f59bb23" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "dtoa", - "linked-hash-map", + "indexmap", + "ryu", "serde", "yaml-rust", ] [[package]] name = "serum_dex" -version = "0.2.0" -source = "git+https://github.com/blockworks-foundation/serum-dex.git#dd43c91c0822fa5e22b05a25d206354d7ee49fa3" +version = "0.4.0" +source = "git+https://github.com/blockworks-foundation/serum-dex.git?rev=3104f424ee38a415418a1cdef67970771f832857#3104f424ee38a415418a1cdef67970771f832857" dependencies = [ "arrayref", "bincode", @@ -3077,7 +3018,7 @@ dependencies = [ "byteorder", "enumflags2", "field-offset", - "itertools", + "itertools 0.9.0", "num-traits", "num_enum", "safe-transmute", @@ -3091,27 +3032,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - -[[package]] -name = "sha2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d963c78ce367df26d7ea8b8cc655c651b42e8a1e584e869c1e17dae3ccb116a" -dependencies = [ - "block-buffer 0.2.0", - "byte-tools 0.2.0", - "digest 0.6.2", - "fake-simd", - "generic-array 0.8.4", + "cfg-if", + "cpufeatures 0.2.2", + "digest 0.10.3", ] [[package]] @@ -3133,12 +3060,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", + "cfg-if", + "cpufeatures 0.1.4", "digest 0.9.0", "opaque-debug 0.3.0", ] +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.2", + "digest 0.10.3", +] + [[package]] name = "sha3" version = "0.9.1" @@ -3151,6 +3089,16 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[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 = "signal-hook-registry" version = "1.3.0" @@ -3166,21 +3114,22 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" +[[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.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" -[[package]] -name = "smallvec" -version = "0.6.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] - [[package]] name = "smallvec" version = "1.6.1" @@ -3189,35 +3138,24 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "socket2" -version = "0.3.19" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "socket2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "solana-account-decoder" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a81aea14c59dcd2d2884d6dd964c9ed3aa6de655a043fa153620d662c76e76" +checksum = "f895bda8ab988f3ba439f939470a1709b55e70c640d6b4d1a7fa5ecd9ac6018f" dependencies = [ "Inflector", - "base64 0.12.3", + "base64 0.13.0", "bincode", - "bs58 0.3.1", + "bs58", "bv", "lazy_static", "serde", @@ -3225,71 +3163,106 @@ dependencies = [ "serde_json", "solana-config-program", "solana-sdk", - "solana-stake-program", "solana-vote-program", "spl-token", + "spl-token-2022", "thiserror", "zstd", ] [[package]] -name = "solana-bpf-loader-program" -version = "1.6.10" +name = "solana-address-lookup-table-program" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3475d04ccd02bb9ec597f1b12e4ff0bcce38a4e01a23c9337c82a0d869fffac" +checksum = "305bd2aa07a7d6166a75ddcc9241016ec502adfc3e7566bb7488ec4cb4fc90d9" dependencies = [ "bincode", - "byteorder", + "bytemuck", "log", "num-derive", "num-traits", - "rand_core 0.6.2", - "sha3", - "solana-measure", - "solana-runtime", + "rustc_version 0.4.0", + "serde", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-program", + "solana-program-runtime", "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dfa6e63e026daa60061c5f380509b502b9624f15a96cee4976cfccff6750355" +dependencies = [ + "bincode", + "byteorder", + "libsecp256k1 0.6.0", + "log", + "solana-measure", + "solana-metrics", + "solana-program-runtime", + "solana-sdk", + "solana-zk-token-sdk 1.10.12", "solana_rbpf", "thiserror", ] [[package]] -name = "solana-clap-utils" -version = "1.6.10" +name = "solana-bucket-map" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49536b164db3557b7b4a9a57f6d112ee98544841d70b4efc415dae3dd0507ee" +checksum = "80880add6d22db8e0ea98968ee3d5b73008c0bf0eacad1978aafbef1164e3f25" +dependencies = [ + "log", + "memmap2", + "modular-bitfield", + "rand 0.7.3", + "solana-measure", + "solana-sdk", + "tempfile", +] + +[[package]] +name = "solana-clap-utils" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d15c654581ce751047450611f36846e7572a806113a27f91335e3b54e8e489" dependencies = [ "chrono", "clap 2.33.3", "rpassword", + "solana-perf", "solana-remote-wallet", "solana-sdk", "thiserror", - "tiny-bip39 0.8.0", + "tiny-bip39", "uriparse", "url", ] [[package]] name = "solana-cli" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2a47cf09d7063209fc0f76f21b838078e576a7719db76d0c1004943f31cede" +checksum = "e69655e91fb415af24182f0b8eb05f75b1f093a556b177784756b7fcc4e88240" dependencies = [ - "Inflector", "bincode", - "bs58 0.3.1", - "chrono", + "bs58", "clap 2.33.3", - "console 0.11.3", + "console 0.15.1", + "const_format", "criterion-stats", + "crossbeam-channel", "ctrlc", - "dirs-next", "humantime", - "indicatif", "log", "num-traits", "pretty-hex", "reqwest", + "semver 1.0.12", "serde", "serde_derive", "serde_json", @@ -3302,54 +3275,55 @@ dependencies = [ "solana-config-program", "solana-faucet", "solana-logger", - "solana-net-utils", + "solana-program-runtime", "solana-remote-wallet", "solana-sdk", - "solana-stake-program", "solana-transaction-status", "solana-version", "solana-vote-program", "solana_rbpf", "spl-memo", "thiserror", - "tiny-bip39 0.7.3", - "url", + "tiny-bip39", ] [[package]] name = "solana-cli-config" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8311bcad20a678dc64c62441fd9f46c8309b470eaa852129f0c417fd6b797733" +checksum = "959e2367d23fa9144b2208ff8b21d96ae59ed1b09e57f13b1c55e1b99b0a4fba" dependencies = [ "dirs-next", "lazy_static", "serde", "serde_derive", "serde_yaml", + "solana-clap-utils", + "solana-sdk", "url", ] [[package]] name = "solana-cli-output" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01ecbc0f4193aaa37d5a70cdeef9c2b6f115710d9c53466471783d25c0c3102" +checksum = "15bbc9eee672a37440d254fb8881f03cf12dc72d927eb0b8af7bfa1921a74696" dependencies = [ "Inflector", "base64 0.13.0", "chrono", - "console 0.11.3", + "clap 2.33.3", + "console 0.15.1", "humantime", "indicatif", + "semver 1.0.12", "serde", - "serde_derive", "serde_json", "solana-account-decoder", "solana-clap-utils", + "solana-cli-config", "solana-client", "solana-sdk", - "solana-stake-program", "solana-transaction-status", "solana-vote-program", "spl-memo", @@ -3357,86 +3331,90 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5db21066222e7857cc93b0d47dde95d3d60945b6752b7b7376ff0711e91406" +checksum = "8b1b76d4221490b03b78b22ad32f96309592793a9f1ad6b4e2dacabb866521fe" dependencies = [ + "async-mutex", + "async-trait", "base64 0.13.0", "bincode", - "bs58 0.3.1", + "bs58", + "bytes", "clap 2.33.3", + "crossbeam-channel", + "futures", + "futures-util", "indicatif", + "itertools 0.10.3", "jsonrpc-core", + "lazy_static", "log", - "net2", + "lru", + "quinn", + "quinn-proto", + "rand 0.7.3", + "rand_chacha 0.2.2", "rayon", "reqwest", - "semver 0.11.0", + "rustls", + "semver 1.0.12", "serde", "serde_derive", "serde_json", "solana-account-decoder", "solana-clap-utils", "solana-faucet", + "solana-measure", + "solana-metrics", "solana-net-utils", "solana-sdk", + "solana-streamer", "solana-transaction-status", "solana-version", "solana-vote-program", "thiserror", - "tokio 1.6.1", + "tokio", + "tokio-stream", + "tokio-tungstenite", "tungstenite", "url", ] [[package]] -name = "solana-config-program" -version = "1.6.10" +name = "solana-compute-budget-program" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7713132d37ba4af2b23fd896b5f6e02de227df5310e02577a0d7f45eb30fe6" +checksum = "e5435b7dbe5873d5aa6050cdbb7fdc2d6e3c0315a0bc1b191dfade44ffa49b7e" dependencies = [ - "bincode", - "chrono", - "log", - "rand_core 0.6.2", - "serde", - "serde_derive", + "solana-program-runtime", "solana-sdk", ] [[package]] -name = "solana-crate-features" -version = "1.6.10" +name = "solana-config-program" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71ae2d9b8492644921f7f2b3a6eefe66a4010b0181c684aa8c7bdfd806a51ff" +checksum = "a123ddaa07afaf5cfe83a359c49a78e739e4c6d28f534ef9b90a201bf12be47e" dependencies = [ - "backtrace", - "bytes 0.4.12", - "cc", - "curve25519-dalek 2.1.2", - "ed25519-dalek", - "either", - "lazy_static", - "libc", - "rand_chacha 0.2.2", - "regex-syntax", - "reqwest", + "bincode", + "chrono", "serde", - "syn 0.15.44", - "syn 1.0.72", - "tokio 0.1.22", - "winapi 0.3.9", + "serde_derive", + "solana-program-runtime", + "solana-sdk", ] [[package]] name = "solana-faucet" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafc39d0da1f8a23412d5f7120daed71853987284180839a87d00b9ec090b659" +checksum = "87b5b4d4ba0161e4d46b71844d8feb7824fb8fb5b82e3e8357708277afa119b1" dependencies = [ "bincode", "byteorder", "clap 2.33.3", + "crossbeam-channel", "log", "serde", "serde_derive", @@ -3448,47 +3426,48 @@ dependencies = [ "solana-version", "spl-memo", "thiserror", - "tokio 1.6.1", + "tokio", ] [[package]] name = "solana-frozen-abi" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03201ac63bad0f18339e1631b75d10b18d4a0a0adef5551298174fb8346cf6de" +checksum = "ab258b4a9746b205eece4ddd7e28267b4442e9c9d4ebffb84318352326340413" dependencies = [ - "bs58 0.3.1", + "bs58", "bv", - "generic-array 0.14.4", + "generic-array 0.14.5", + "im", + "lazy_static", "log", "memmap2", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", + "serde_bytes", "serde_derive", - "sha2 0.9.5", + "sha2 0.10.2", "solana-frozen-abi-macro", - "solana-logger", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7817d332895c39ee895508c1327bef17eb35e34fbdc5b06ca4ae26649a0392d5" +checksum = "cda321c32c7018afd8477ef509992473c4a659b8cc97596f6280df45364a2048" dependencies = [ - "lazy_static", - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "rustc_version 0.2.3", - "syn 1.0.72", + "rustc_version 0.4.0", + "syn 1.0.98", ] [[package]] name = "solana-logger" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff64fd45c789b34870b58c48c27f2c137b95a446e3a359873608468d3efe77f" +checksum = "d0abc5fc566904cd626c7c55f26292c2cd06571c3edca2a3618694632a276a46" dependencies = [ "env_logger", "lazy_static", @@ -3497,24 +3476,21 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708191e5de87196ddc719206c1071aac00ae501bee7e3663b236444c846c74e8" +checksum = "83e609c677ae3a6269b9551e7428fda37b644d867dc6763ca1940d70d528cfd0" dependencies = [ - "jemalloc-ctl", - "jemallocator", "log", - "solana-metrics", "solana-sdk", ] [[package]] name = "solana-metrics" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0641810481c768d39a11cd586c46b1d16d7c35f657695c435cc58d13a2363d" +checksum = "3a3c48f1f301b6d084cca58adfdcf6aacf9d333a80d84133a2a10636469e3755" dependencies = [ - "env_logger", + "crossbeam-channel", "gethostname", "lazy_static", "log", @@ -3524,64 +3500,124 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968a3a8c2dfcd266d16049ee1439324db6ba6871c31859c37257b58e80f7b0ed" +checksum = "413acbf96bfea2aaf387a5162fc65e2171dcd14af8c97116b58b5cdeaa5c80aa" dependencies = [ "bincode", "clap 2.33.3", + "crossbeam-channel", "log", - "nix 0.19.1", + "nix 0.23.1", "rand 0.7.3", "serde", "serde_derive", - "socket2 0.3.19", - "solana-clap-utils", + "socket2", "solana-logger", + "solana-sdk", "solana-version", - "tokio 1.6.1", + "tokio", "url", ] [[package]] -name = "solana-program" -version = "1.6.10" +name = "solana-perf" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632dc4e769b8dbb1884167737fd390cfa4266159ce37229e6ed64d61aba192d6" +checksum = "b0aa32ade8b1d8ca1ffa3db2aa5b1f3d119a5092f74424c6b4253b83bc8d8392" dependencies = [ + "ahash", "bincode", - "blake3", - "borsh 0.8.2", - "borsh-derive 0.8.2", - "bs58 0.3.1", "bv", - "curve25519-dalek 2.1.2", - "hex", - "itertools", + "caps", + "curve25519-dalek", + "dlopen", + "dlopen_derive", + "fnv", "lazy_static", + "libc", + "log", + "nix 0.23.1", + "rand 0.7.3", + "rayon", + "serde", + "solana-metrics", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-vote-program", +] + +[[package]] +name = "solana-program" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0543a6c96b49062fb0bcd691c609e558f01994e9a56d66fd7448a9f683b3be9" +dependencies = [ + "base64 0.13.0", + "bincode", + "bitflags", + "blake3", + "borsh 0.9.3", + "borsh-derive 0.9.3", + "bs58", + "bv", + "bytemuck", + "console_error_panic_hook", + "console_log", + "curve25519-dalek", + "getrandom 0.1.16", + "itertools 0.10.3", + "js-sys", + "lazy_static", + "libsecp256k1 0.6.0", "log", "num-derive", "num-traits", + "parking_lot", "rand 0.7.3", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "rustversion", "serde", "serde_bytes", "serde_derive", - "sha2 0.9.5", - "sha3", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-sdk-macro", "thiserror", + "wasm-bindgen", +] + +[[package]] +name = "solana-program-runtime" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4130e19e76a2cdfda2c510e7f5653bb6c7eb4750a76148a136f82afeb5466313" +dependencies = [ + "base64 0.13.0", + "bincode", + "enum-iterator", + "itertools 0.10.3", + "libc", + "libloading", + "log", + "num-derive", + "num-traits", + "rustc_version 0.4.0", + "serde", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-measure", + "solana-sdk", + "thiserror", ] [[package]] name = "solana-rayon-threadlimit" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65eb9359967aa5348b177c7811009dbde9827474d2c3fdf50d065a1e7f8dfb26" +checksum = "853273fe30026ff4adbced44672347f8093178331814e256dab1c4ebea44eb18" dependencies = [ "lazy_static", "num_cpus", @@ -3589,20 +3625,19 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ab25fa0c02974dbbb8a3d355d7b91343d6e4e56eb29dd2e9bba0714e5694fb" +checksum = "d86657ae276213810aa80748a1b09ee7bc0b4d5c73606f0fd54e5d6e957191a8" dependencies = [ - "base32", - "console 0.11.3", + "console 0.15.1", "dialoguer", "hidapi", "log", "num-derive", "num-traits", - "parking_lot 0.10.2", + "parking_lot", "qstring", - "semver 0.9.0", + "semver 1.0.12", "solana-sdk", "thiserror", "uriparse", @@ -3610,25 +3645,26 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1f3440a0c77aa952b1fd21123f53d0016fd89a57532d7ef2b59325e9af2e8b" +checksum = "8a5dc8698f81eadbec9eca68f84bb570bf3d8082effcd84adb7080b96fa523a9" dependencies = [ "arrayref", "bincode", "blake3", "bv", + "bytemuck", "byteorder", "bzip2", - "crossbeam-channel 0.4.4", + "crossbeam-channel", "dashmap", "dir-diff", "flate2", "fnv", - "itertools", + "im", + "index_list", + "itertools 0.10.3", "lazy_static", - "libc", - "libloading", "log", "memmap2", "num-derive", @@ -3638,20 +3674,24 @@ dependencies = [ "rand 0.7.3", "rayon", "regex", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", "serde_derive", + "solana-address-lookup-table-program", + "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", "solana-rayon-threadlimit", "solana-sdk", - "solana-secp256k1-program", "solana-stake-program", "solana-vote-program", + "solana-zk-token-proof-program", + "solana-zk-token-sdk 1.10.12", "symlink", "tar", "tempfile", @@ -3661,44 +3701,45 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddfecb34eaf2f24bc0ef6d546654a35c28629aeccf1ac3445e210d003c6d5e0" +checksum = "cb6c2ce8c90257d41a69abc2dbc757075898bc5385e739dcf15dbd0937f7fce3" dependencies = [ "assert_matches", + "base64 0.13.0", "bincode", - "bs58 0.3.1", - "bv", + "bitflags", + "borsh 0.9.3", + "bs58", + "bytemuck", "byteorder", "chrono", "derivation-path", - "digest 0.9.0", + "digest 0.10.3", "ed25519-dalek", "ed25519-dalek-bip32", - "generic-array 0.14.4", - "hex", - "hmac 0.10.1", - "itertools", + "generic-array 0.14.5", + "hmac 0.12.1", + "itertools 0.10.3", + "js-sys", "lazy_static", - "libsecp256k1 0.3.5", + "libsecp256k1 0.6.0", "log", "memmap2", "num-derive", "num-traits", - "pbkdf2 0.6.0", + "pbkdf2 0.10.1", "qstring", "rand 0.7.3", "rand_chacha 0.2.2", - "rand_core 0.6.2", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.9.5", - "sha3", - "solana-crate-features", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -3706,125 +3747,216 @@ dependencies = [ "solana-sdk-macro", "thiserror", "uriparse", + "wasm-bindgen", ] [[package]] name = "solana-sdk-macro" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6762b630db60c40e3efbb461cc945e0c5dfb7b0bcf719f76551f0f97f0c005" +checksum = "515995f994c9750b5908d635b47672f98aee8ea65a422ea622d553a69a6fbc7b" dependencies = [ - "bs58 0.3.1", - "proc-macro2 1.0.27", + "bs58", + "proc-macro2 1.0.42", "quote 1.0.9", "rustversion", - "syn 1.0.72", -] - -[[package]] -name = "solana-secp256k1-program" -version = "1.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe57190edf73aa164facb6054eea801ca77ed51b5b70ef210b9eb12e18edc3f" -dependencies = [ - "bincode", - "digest 0.9.0", - "libsecp256k1 0.3.5", - "rand 0.7.3", - "sha3", - "solana-logger", - "solana-sdk", + "syn 1.0.98", ] [[package]] name = "solana-stake-program" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "073d59b1fa3c971dcb83c35a71b186c7014f303167de24285bada8e109189232" +checksum = "ccc419090697ee18bf236f0a3d2e3bb905dc43095955db81c76b574d2a9df684" dependencies = [ "bincode", "log", "num-derive", "num-traits", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", "serde_derive", "solana-config-program", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-metrics", + "solana-program-runtime", "solana-sdk", "solana-vote-program", "thiserror", ] [[package]] -name = "solana-transaction-status" -version = "1.6.10" +name = "solana-streamer" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35da2daa6eb03196eba8650753c02cb9161739dad9ec19c61995ec1a7ed19254" +checksum = "34661b8e4c31b1c640922e8b88b5a8245dbe398e7605d60cb7f9f39c59823ba0" +dependencies = [ + "crossbeam-channel", + "futures-util", + "histogram", + "itertools 0.10.3", + "libc", + "log", + "nix 0.23.1", + "pem", + "pkcs8", + "quinn", + "rand 0.7.3", + "rcgen", + "rustls", + "solana-metrics", + "solana-perf", + "solana-sdk", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-transaction-status" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0512229e76b136b8430e7b9bca323e587306125dbd632332506171fa1d85c01a" dependencies = [ "Inflector", - "base64 0.12.3", + "base64 0.13.0", "bincode", - "bs58 0.3.1", + "borsh 0.9.3", + "bs58", "lazy_static", + "log", "serde", "serde_derive", "serde_json", "solana-account-decoder", + "solana-measure", + "solana-metrics", "solana-runtime", "solana-sdk", - "solana-stake-program", "solana-vote-program", "spl-associated-token-account", "spl-memo", "spl-token", + "spl-token-2022", "thiserror", ] [[package]] name = "solana-version" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f16bc5ecdc45a4043a7d0b6991d6c6c7d29a6c878170cad7e38a026d92d4f7" +checksum = "c5b694f307451d9db9c383d804db192082f7899901d64555ccb9c1b5231ac6f3" dependencies = [ "log", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", "serde_derive", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-sdk", ] [[package]] name = "solana-vote-program" -version = "1.6.10" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd38526f41a03cef2994df716ad6af9cfcc634728a95fb85548fea4b9142270" +checksum = "52481154607c40c22fbf098a9eb63119c554dfa9160746bc5a9f5a174ae1c018" dependencies = [ "bincode", "log", "num-derive", "num-traits", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", "serde_derive", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-metrics", + "solana-program-runtime", "solana-sdk", "thiserror", ] [[package]] -name = "solana_rbpf" -version = "0.2.9" +name = "solana-zk-token-proof-program" +version = "1.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "debbc13545a1d972955a4fd3014e7c9d6d81da16c3626ee5f64bf3aa619548f8" +checksum = "1b1d8c4eaae1222fe45f4bcc31e85a37d192a2e3ec641c2cee8c18f0d1fdd015" +dependencies = [ + "bytemuck", + "getrandom 0.1.16", + "num-derive", + "num-traits", + "solana-program-runtime", + "solana-sdk", + "solana-zk-token-sdk 1.10.12", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b149253f9ed1afb68b3161b53b62b637d0dd7a3b328dffdc8bb5878d48358e" +dependencies = [ + "aes-gcm-siv", + "arrayref", + "base64 0.13.0", + "bincode", + "bytemuck", + "byteorder", + "cipher 0.3.0", + "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 2.4.0", + "thiserror", + "zeroize", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "1.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b92ba12ecc8cd2574a8ea57f3ccedd2a346cab03f1bf4224e927519c6d151b" +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 2.4.0", + "thiserror", + "zeroize", +] + +[[package]] +name = "solana_rbpf" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41e138f6d6d4eb6a65f8e9f01ca620bc9907d79648d5038a69dd3f07b6ed3f1f" dependencies = [ "byteorder", "combine", @@ -3833,9 +3965,10 @@ dependencies = [ "libc", "log", "rand 0.7.3", + "rustc-demangle", "scroll", "thiserror", - "time", + "time 0.1.43", ] [[package]] @@ -3845,11 +3978,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] -name = "spl-associated-token-account" -version = "1.0.2" +name = "spki" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4adc47eebe5d2b662cbaaba1843719c28a67e5ec5d0460bc3ca60900a51f74e2" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b013067447a1396303ddfc294f36e3d260a32f8a16c501c295bcdc7de39b490" +dependencies = [ + "borsh 0.9.3", "solana-program", "spl-token", ] @@ -3865,9 +4009,9 @@ dependencies = [ [[package]] name = "spl-token" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b795e50d15dfd35aa5460b80a16414503a322be115a417a43db987c5824c6798" +checksum = "0cc67166ef99d10c18cb5e9c208901e6d8255c6513bb1f877977eba48e6cc4fb" dependencies = [ "arrayref", "num-derive", @@ -3877,6 +4021,24 @@ dependencies = [ "thiserror", ] +[[package]] +name = "spl-token-2022" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce48c69350134e8678de5c0956a531b7de586b28eebdddc03211ceec0660983" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-program", + "solana-zk-token-sdk 0.8.1", + "spl-memo", + "spl-token", + "thiserror", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -3932,13 +4094,13 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.72" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "unicode-xid 0.2.2", + "unicode-ident", ] [[package]] @@ -3947,17 +4109,17 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", "unicode-xid 0.2.2", ] [[package]] name = "tar" -version = "0.4.35" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" dependencies = [ "filetime", "libc", @@ -3966,16 +4128,16 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "fastrand", "libc", - "rand 0.8.3", - "redox_syscall 0.2.8", + "redox_syscall", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3994,16 +4156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" dependencies = [ "libc", - "winapi 0.3.9", -] - -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", + "winapi", ] [[package]] @@ -4026,22 +4179,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", ] [[package]] @@ -4057,30 +4210,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] -name = "tiny-bip39" -version = "0.7.3" +name = "time" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" dependencies = [ - "failure", - "hmac 0.7.1", - "once_cell", - "pbkdf2 0.3.0", - "rand 0.7.3", - "rustc-hash", - "sha2 0.8.2", - "unicode-normalization", + "libc", + "num_threads", ] [[package]] name = "tiny-bip39" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" dependencies = [ "anyhow", "hmac 0.8.1", @@ -4091,18 +4238,19 @@ dependencies = [ "sha2 0.9.5", "thiserror", "unicode-normalization", + "wasm-bindgen", "zeroize", ] [[package]] name = "tiny-hderive" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843479427369dcfdf7c56ff1d1a2bbeca4c15b390ed493f84c77fe08a43eae68" +checksum = "01b874a4992538d4b2f4fbbac11b9419d685f4b39bdc3fed95b04e07bfd76040" dependencies = [ "base58", "hmac 0.7.1", - "libsecp256k1 0.2.2", + "libsecp256k1 0.3.5", "memzero", "sha2 0.8.2", ] @@ -4124,240 +4272,85 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "0.1.22" +version = "1.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" +checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "mio 0.6.23", - "num_cpus", - "tokio-codec", - "tokio-current-thread", - "tokio-executor", - "tokio-fs", - "tokio-io", - "tokio-reactor", - "tokio-sync", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "tokio-udp", - "tokio-uds", -] - -[[package]] -name = "tokio" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a38d31d7831c6ed7aad00aa4c12d9375fd225a6dd77da1d25b707346319a975" -dependencies = [ - "autocfg", - "bytes 1.0.1", + "bytes", "libc", "memchr", - "mio 0.7.11", + "mio", "num_cpus", "once_cell", - "parking_lot 0.11.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", + "socket2", "tokio-macros", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures 0.1.31", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", -] - -[[package]] -name = "tokio-fs" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" -dependencies = [ - "futures 0.1.31", - "tokio-io", - "tokio-threadpool", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", + "winapi", ] [[package]] name = "tokio-macros" -version = "1.2.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", -] - -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "mio 0.6.23", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", + "syn 1.0.98", ] [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls", - "tokio 1.6.1", + "tokio", "webpki", ] [[package]] -name = "tokio-sync" -version = "0.1.8" +name = "tokio-stream" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ - "fnv", - "futures 0.1.31", + "futures-core", + "pin-project-lite", + "tokio", ] [[package]] -name = "tokio-tcp" -version = "0.1.4" +name = "tokio-tungstenite" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "mio 0.6.23", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-threadpool" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" -dependencies = [ - "crossbeam-deque 0.7.3", - "crossbeam-queue", - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", + "futures-util", "log", - "num_cpus", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-udp" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", - "mio 0.6.23", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-uds" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "libc", - "log", - "mio 0.6.23", - "mio-uds", - "tokio-codec", - "tokio-io", - "tokio-reactor", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki", + "webpki-roots", ] [[package]] name = "tokio-util" -version = "0.6.7" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ - "bytes 1.0.1", + "bytes", "futures-core", "futures-sink", - "log", "pin-project-lite", - "tokio 1.6.1", + "tokio", + "tracing", ] [[package]] @@ -4381,11 +4374,23 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +dependencies = [ + "proc-macro2 1.0.42", + "quote 1.0.9", + "syn 1.0.98", +] + [[package]] name = "tracing-core" version = "0.1.18" @@ -4403,29 +4408,31 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.10.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfea31758bf674f990918962e8e5f07071a3161bd7c4138ed23e416e1ac4264e" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ - "base64 0.11.0", + "base64 0.13.0", "byteorder", - "bytes 0.5.6", + "bytes", "http", "httparse", - "input_buffer", "log", - "native-tls", - "rand 0.7.3", + "rand 0.8.3", + "rustls", "sha-1", + "thiserror", "url", "utf-8", + "webpki", + "webpki-roots", ] [[package]] name = "typenum" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" @@ -4442,6 +4449,12 @@ dependencies = [ "matches", ] +[[package]] +name = "unicode-ident" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" + [[package]] name = "unicode-normalization" version = "0.1.18" @@ -4475,6 +4488,16 @@ 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 0.14.5", + "subtle 2.4.0", +] + [[package]] name = "unreachable" version = "1.0.0" @@ -4518,12 +4541,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "vcpkg" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa" - [[package]] name = "vec_map" version = "0.8.2" @@ -4549,7 +4566,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi 0.3.9", + "winapi", "winapi-util", ] @@ -4576,29 +4593,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] -name = "wasm-bindgen" -version = "0.2.74" +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ - "cfg-if 1.0.0", - "serde", - "serde_json", + "cfg-if", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.74" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", - "proc-macro2 1.0.27", + "once_cell", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", "wasm-bindgen-shared", ] @@ -4608,7 +4629,7 @@ version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -4616,9 +4637,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.74" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote 1.0.9", "wasm-bindgen-macro-support", @@ -4626,22 +4647,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.74" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.74" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" @@ -4655,9 +4676,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" dependencies = [ "ring", "untrusted", @@ -4665,19 +4686,13 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] -[[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" @@ -4688,12 +4703,6 @@ 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" @@ -4706,7 +4715,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4716,12 +4725,55 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "winreg" -version = "0.7.0" +name = "windows-sys" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "winapi 0.3.9", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", ] [[package]] @@ -4733,16 +4785,6 @@ dependencies = [ "alloc-traits", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "xattr" version = "0.2.2" @@ -4761,6 +4803,15 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yasna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" +dependencies = [ + "time 0.3.11", +] + [[package]] name = "zeroize" version = "1.3.0" @@ -4776,26 +4827,26 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.42", "quote 1.0.9", - "syn 1.0.72", + "syn 1.0.98", "synstructure", ] [[package]] name = "zstd" -version = "0.5.4+zstd.1.4.7" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "2.0.6+zstd.1.4.7" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", @@ -4803,12 +4854,10 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.4.18+zstd.1.4.7" +version = "2.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" dependencies = [ "cc", - "glob", - "itertools", "libc", ] diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 07e7e39..fafa533 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -16,14 +16,15 @@ clap = "3.0.0-beta.2" solana-client = "^1.6.4" solana-cli = "^1.6.4" solana-sdk = "^1.6.4" -mango = { version = "*", path = "../program", features=["no-entrypoint"] } -spl-token = { version = "^3.1.0", features=["no-entrypoint"] } serde_json = "1.0.60" chrono = "*" -common = { version = "*", path = "../common" } -serum_dex = { version = "^0.2", git = "https://github.com/blockworks-foundation/serum-dex.git", features=["no-entrypoint", "program"] } - -flux-aggregator = { version = "^0.1", git = "https://github.com/blockworks-foundation/solana-flux-aggregator.git", features=["program", "no-entrypoint"] } arrayref = "^0.3.6" - fixed = { version = "^1.7.0" } + +common = { version = "*", path = "../common" } +mango = { version = "*", path = "../program", features=["no-entrypoint"] } + +spl-token = { version = "^3.0.0", features=["no-entrypoint"] } +serum_dex = { version = "0.4.0", rev="3104f424ee38a415418a1cdef67970771f832857", git = "https://github.com/blockworks-foundation/serum-dex.git", default-features=false, features = ["no-entrypoint", "program"] } +flux-aggregator = { version = "^0.1", rev="ca6706d05218acc84d164ed5149fac7612d3aa2b", git = "https://github.com/blockworks-foundation/solana-flux-aggregator.git", features=["program", "no-entrypoint"] } +pyth-client = {version = ">=0.5.0", features = ["no-entrypoint"]} diff --git a/cli/src/main.rs b/cli/src/main.rs index 7fa9f98..9eec834 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -17,7 +17,7 @@ use solana_sdk::commitment_config::CommitmentConfig; use solana_sdk::program_pack::Pack; use solana_sdk::pubkey::Pubkey; use solana_sdk::signature::{Signer}; -use mango::instruction::{init_mango_group, init_margin_account, withdraw, borrow, deposit, settle_borrow, change_borrow_limit}; +use mango::instruction::{init_mango_group, init_margin_account, withdraw, borrow, deposit, settle_borrow, change_borrow_limit, switch_oracles}; #[derive(Clap, Debug)] pub struct Opts { @@ -136,7 +136,19 @@ pub enum Command { token_symbol: String, #[clap(long)] borrow_limit: f64 - } + }, + SwitchOracle { + #[clap(long, short)] + payer: String, // assumes for now payer is same as admin + #[clap(long, short)] + ids_path: String, + #[clap(long)] + mango_group_name: String, + #[clap(long)] + pair_name: String, + #[clap(long)] + oracle: String, + }, } impl Opts { @@ -681,6 +693,48 @@ pub fn start(opts: Opts) -> Result<()> { let signers = vec![&payer]; send_instructions(&client, instructions, signers, &payer.pubkey())?; } + Command::SwitchOracle { + payer, + ids_path, + mango_group_name, + pair_name, + oracle, + } => { + println!("SwitchOracle"); + let payer = read_keypair_file(payer.as_str())?; + let ids: Value = serde_json::from_reader(File::open(&ids_path)?)?; + let cluster_name = opts.cluster.name(); + let cluster_ids = &ids[cluster_name]; + let cids = ClusterIds::load(cluster_ids); + let mgids = cids.mango_groups[&mango_group_name].clone(); + // replace old oracle with new one when assembling instruction + let old_oracle_pk = &cids.oracles[&pair_name]; + let new_oracle_pks: Vec = mgids + .oracle_pks + .iter() + .map(|o| { + if o == old_oracle_pk { + Pubkey::from_str(oracle.as_str()).unwrap() + } else { + *o + } + }) + .collect(); + let instruction = switch_oracles( + &cids.mango_program_id, + &mgids.mango_group_pk, + &payer.pubkey(), + &new_oracle_pks.as_slice(), + )?; + let instructions = vec![instruction]; + let signers = vec![&payer]; + send_instructions(&client, instructions, signers, &payer.pubkey())?; + // update ids + // let oracle_pks = ids[cluster_name][mango_group_name].get_mut("oracle_pks").unwrap(); + // oracle_pks = new_oracle_pks.iter().map(|pk| pk.to_string()).collect() as Vec; + // let f = File::create(ids_path.as_str()).unwrap(); + // serde_json::to_writer_pretty(&f, &ids).unwrap(); + } } Ok(()) } diff --git a/common/Cargo.lock b/common/Cargo.lock index 4417991..bc90700 100644 --- a/common/Cargo.lock +++ b/common/Cargo.lock @@ -414,7 +414,7 @@ dependencies = [ "bs58 0.4.0", "bytemuck", "ed25519-dalek", - "rand 0.8.4", + "rand 0.7.3", "serde_json", "solana-client", "solana-sdk", diff --git a/common/Cargo.toml b/common/Cargo.toml index 626e5e7..46d3710 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -10,11 +10,11 @@ solana-sdk = "^1.7.10" spl-token = { version = "^3.2.0", features=["no-entrypoint"] } anyhow = "^1.0.43" solana-client = "^1.7.10" -rand = "0.8.4" +rand = "^0.7.0" serde_json = "^1.0.66" bs58 = "0.4.0" bincode = "^1.3.1" bytemuck = "^1.7.2" tiny-bip39 = "0.8.0" tiny-hderive = "0.3.0" -ed25519-dalek = "1.0.0-pre.4" +ed25519-dalek = "^1.0.0" diff --git a/common/src/lib.rs b/common/src/lib.rs index 784f421..c05a0a6 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -57,7 +57,7 @@ impl std::fmt::Display for Cluster { impl Cluster { pub fn url(&self) -> &'static str { match self { - Cluster::Devnet => "https://devnet.solana.com", + Cluster::Devnet => "https://api.devnet.solana.com", Cluster::Testnet => "https://testnet.solana.com", // Cluster::Mainnet => "https://api.stakeconomy.com", Cluster::Mainnet => "https://api.mainnet-beta.solana.com", diff --git a/program/Cargo.lock b/program/Cargo.lock index 8d3bc3b..7acb411 100644 --- a/program/Cargo.lock +++ b/program/Cargo.lock @@ -86,9 +86,9 @@ version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -99,7 +99,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -215,8 +215,8 @@ checksum = "e6aaa45f8eec26e4bf71e7e5492cf53a91591af8f871f422d550e7cc43f6b927" dependencies = [ "borsh-derive-internal 0.7.2", "borsh-schema-derive-internal 0.7.2", - "proc-macro2 1.0.27", - "syn 1.0.73", + "proc-macro2 1.0.40", + "syn 1.0.98", ] [[package]] @@ -228,8 +228,8 @@ dependencies = [ "borsh-derive-internal 0.9.1", "borsh-schema-derive-internal 0.9.1", "proc-macro-crate", - "proc-macro2 1.0.27", - "syn 1.0.73", + "proc-macro2 1.0.40", + "syn 1.0.98", ] [[package]] @@ -238,9 +238,9 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61621b9d3cca65cc54e2583db84ef912d59ae60d2f04ba61bc0d7fc57556bda2" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -249,9 +249,9 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2102f62f8b6d3edeab871830782285b64cc1830168094db05c8e458f209bc5c3" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -260,9 +260,9 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b38abfda570837b0949c2c7ebd31417e15607861c23eacb2f668c69f6f3bf7" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -271,9 +271,9 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "196c978c4c9b0b142d446ef3240690bf5a8a33497074a113ff9a337ccb750483" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -282,6 +282,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + [[package]] name = "bumpalo" version = "3.7.0" @@ -303,6 +309,20 @@ name = "bytemuck" version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.9", + "syn 1.0.98", +] [[package]] name = "byteorder" @@ -380,7 +400,7 @@ dependencies = [ "num-traits", "serde", "time", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -392,15 +412,6 @@ dependencies = [ "chrono", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - [[package]] name = "combine" version = "3.8.1" @@ -458,17 +469,6 @@ dependencies = [ "crossbeam-utils 0.8.5", ] -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - [[package]] name = "crossbeam-deque" version = "0.8.0" @@ -476,25 +476,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.5", + "crossbeam-epoch", "crossbeam-utils 0.8.5", ] -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", -] - [[package]] name = "crossbeam-epoch" version = "0.9.5" @@ -504,21 +489,10 @@ dependencies = [ "cfg-if 1.0.0", "crossbeam-utils 0.8.5", "lazy_static", - "memoffset 0.6.4", + "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -628,9 +602,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -705,9 +679,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6f648515c65974bcb893b286a5c4a35adfdcfbfd03c1bbf1108f40feec65d7" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -733,9 +707,9 @@ checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -753,9 +727,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -787,9 +761,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "synstructure", ] @@ -805,7 +779,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" dependencies = [ - "memoffset 0.6.4", + "memoffset", "rustc_version 0.3.3", ] @@ -817,8 +791,8 @@ checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.8", - "winapi 0.3.9", + "redox_syscall", + "winapi", ] [[package]] @@ -854,9 +828,9 @@ dependencies = [ "fixed", "paste", "proc-macro-error", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -884,7 +858,7 @@ dependencies = [ [[package]] name = "flux-aggregator" version = "0.1.0" -source = "git+https://github.com/blockworks-foundation/solana-flux-aggregator.git#ca6706d05218acc84d164ed5149fac7612d3aa2b" +source = "git+https://github.com/blockworks-foundation/solana-flux-aggregator.git?rev=ca6706d05218acc84d164ed5149fac7612d3aa2b#ca6706d05218acc84d164ed5149fac7612d3aa2b" dependencies = [ "borsh 0.7.2", "borsh-derive 0.7.2", @@ -903,6 +877,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" @@ -913,28 +902,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[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.15" @@ -991,9 +958,9 @@ checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" dependencies = [ "autocfg", "proc-macro-hack", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -1056,7 +1023,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1118,7 +1085,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.6.1", + "tokio", "tokio-util", "tracing", ] @@ -1261,7 +1228,7 @@ dependencies = [ "itoa", "pin-project-lite", "socket2", - "tokio 1.6.1", + "tokio", "tower-service", "tracing", "want", @@ -1277,7 +1244,7 @@ dependencies = [ "hyper", "log", "rustls", - "tokio 1.6.1", + "tokio", "tokio-rustls", "webpki", ] @@ -1366,16 +1333,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" -[[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" @@ -1398,7 +1355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1449,15 +1406,6 @@ dependencies = [ "libsecp256k1-core", ] -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - [[package]] name = "lock_api" version = "0.4.4" @@ -1490,6 +1438,7 @@ dependencies = [ "flux-aggregator", "num-derive", "num_enum", + "pyth-client", "safe-transmute", "serde", "serum_dex", @@ -1528,15 +1477,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.6.4" @@ -1562,25 +1502,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.7.11" @@ -1589,32 +1510,9 @@ checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956" dependencies = [ "libc", "log", - "miow 0.3.7", + "miow", "ntapi", - "winapi 0.3.9", -] - -[[package]] -name = "mio-uds" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" -dependencies = [ - "iovec", - "libc", - "mio 0.6.23", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "winapi", ] [[package]] @@ -1623,18 +1521,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "winapi 0.3.9", -] - -[[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", + "winapi", ] [[package]] @@ -1643,7 +1530,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1663,9 +1550,9 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -1714,9 +1601,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -1740,6 +1627,45 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.9", + "syn 1.0.98", +] + +[[package]] +name = "openssl-sys" +version = "0.9.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "ouroboros" version = "0.10.1" @@ -1759,20 +1685,9 @@ checksum = "f463857a6eb96c0136b1d56e56c718350cef30412ec065b48294799a088bca68" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", -] - -[[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.2", - "rustc_version 0.2.3", + "syn 1.0.98", ] [[package]] @@ -1782,23 +1697,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", - "lock_api 0.4.4", - "parking_lot_core 0.8.3", -] - -[[package]] -name = "parking_lot_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "rustc_version 0.2.3", - "smallvec 0.6.14", - "winapi 0.3.9", + "lock_api", + "parking_lot_core", ] [[package]] @@ -1810,9 +1710,9 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.8", - "smallvec 1.6.1", - "winapi 0.3.9", + "redox_syscall", + "smallvec", + "winapi", ] [[package]] @@ -1860,9 +1760,9 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -1911,9 +1811,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "version_check", ] @@ -1923,7 +1823,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", "version_check", ] @@ -1951,11 +1851,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ - "unicode-xid 0.2.2", + "unicode-ident", +] + +[[package]] +name = "pyth-client" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "398f9e51e126a13903254c56f75b3201583db075d0fbb77e931f7515af9b3d16" +dependencies = [ + "borsh 0.9.1", + "borsh-derive 0.9.1", + "bytemuck", + "num-derive", + "num-traits", + "serde", + "solana-program", + "thiserror", ] [[package]] @@ -1982,7 +1898,7 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", ] [[package]] @@ -2083,7 +1999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque 0.8.0", + "crossbeam-deque", "either", "rayon-core", ] @@ -2095,18 +2011,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel 0.5.1", - "crossbeam-deque 0.8.0", + "crossbeam-deque", "crossbeam-utils 0.8.5", "lazy_static", "num_cpus", ] -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - [[package]] name = "redox_syscall" version = "0.2.8" @@ -2139,7 +2049,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2168,7 +2078,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.6.1", + "tokio", "tokio-rustls", "url", "wasm-bindgen", @@ -2190,7 +2100,7 @@ dependencies = [ "spin", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2278,9 +2188,9 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -2328,9 +2238,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.126" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" dependencies = [ "serde_derive", ] @@ -2346,13 +2256,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -2381,7 +2291,7 @@ dependencies = [ [[package]] name = "serum_dex" version = "0.4.0" -source = "git+https://github.com/blockworks-foundation/serum-dex.git#3104f424ee38a415418a1cdef67970771f832857" +source = "git+https://github.com/blockworks-foundation/serum-dex.git?rev=3104f424ee38a415418a1cdef67970771f832857#3104f424ee38a415418a1cdef67970771f832857" dependencies = [ "arrayref", "bincode", @@ -2447,15 +2357,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" -[[package]] -name = "smallvec" -version = "0.6.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] - [[package]] name = "smallvec" version = "1.6.1" @@ -2469,35 +2370,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "solana-banks-client" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a79b6ef4ce2ff4e0a6c515a5030dfd75c69089ddf1a85f805b904516a8bf04" +checksum = "6f3090c64615b0782cf9b39d4b68d4e282315c34d23cce525b686a0e026addcc" dependencies = [ "bincode", "borsh 0.9.1", "borsh-derive 0.9.1", - "futures 0.3.15", - "mio 0.7.11", + "futures", + "mio", "solana-banks-interface", "solana-program", "solana-sdk", "tarpc", - "tokio 1.6.1", + "tokio", "tokio-serde", ] [[package]] name = "solana-banks-interface" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70c75f0b27b97c7e27d7f6ba16e766990e9374d9a9ae0f60183619d5126b041e" +checksum = "b60ff5b54465fc3fc55dd457e265fe029cdae9d9c5d23622ea7f01c3d5a1839f" dependencies = [ - "mio 0.7.11", + "mio", "serde", "solana-sdk", "tarpc", @@ -2505,29 +2406,29 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810298b1760b59356dcccb354f913d059ce12ebf615dcf7bd4520fc991af5f38" +checksum = "ce669fda03fafdf180873f93dc61906be2843003cecab7858259f154cb6403aa" dependencies = [ "bincode", - "futures 0.3.15", + "futures", "log", - "mio 0.7.11", + "mio", "solana-banks-interface", "solana-metrics", "solana-runtime", "solana-sdk", "tarpc", - "tokio 1.6.1", + "tokio", "tokio-serde", "tokio-stream", ] [[package]] name = "solana-bpf-loader-program" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb56a6bf09f3502afc77afaf6b1ed888e1a438ba5cd3f4f471dd82f27b7d80bb" +checksum = "8b6fe9fbe327ec0ab03c5c603cfe7788dd254da7923209bc350a0b903a0fe56e" dependencies = [ "bincode", "byteorder", @@ -2535,6 +2436,7 @@ dependencies = [ "log", "num-derive", "num-traits", + "openssl", "rand_core 0.6.2", "sha3", "solana-measure", @@ -2545,10 +2447,19 @@ dependencies = [ ] [[package]] -name = "solana-config-program" -version = "1.7.10" +name = "solana-compute-budget-program" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e67bbd8b59afa4c1d9adeae9bd4b332e34ee06a0e14bbc6222caeed6951f3c" +checksum = "9cdc635648ac76057d3271698cb742c676a0abcc2d0497695bae70d83f2dc0c8" +dependencies = [ + "solana-sdk", +] + +[[package]] +name = "solana-config-program" +version = "1.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd448ff98824d6e0b6c19cb1509deb02f35bca41712ea563dbac5dfb9753475" dependencies = [ "bincode", "chrono", @@ -2561,9 +2472,9 @@ dependencies = [ [[package]] name = "solana-crate-features" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668eb5b0fd053f35e5664ef6bf3f0da1e3b9bcb5643b8c4aa80cc4433b9d47ce" +checksum = "cc1da0b01681a699e721f104aaff5f72b3757ec6dc9b5019c5f0490202af7302" dependencies = [ "backtrace", "bytes 0.4.12", @@ -2579,18 +2490,26 @@ dependencies = [ "ring", "serde", "syn 0.15.44", - "syn 1.0.73", - "tokio 0.1.22", - "winapi 0.3.9", + "syn 1.0.98", + "winapi", +] + +[[package]] +name = "solana-ed25519-program" +version = "1.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa7a684c2c82e47964c9bee5bf7c68d527d8a188c976d03df174c2e600276dc" +dependencies = [ + "solana-sdk", ] [[package]] name = "solana-frozen-abi" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f5ed8279eb2dca03341ff9ee7a5d9b84a9fc4a4a6d12f112e7ee9ec98ad6cab" +checksum = "ffb04307dae25da4bc3660ab9338703dc4b1ce6903845c14060975af1df0e0e3" dependencies = [ - "bs58", + "bs58 0.3.1", "bv", "generic-array 0.14.4", "log", @@ -2606,21 +2525,21 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "888b45e492fdc5216b982437de9ef6bff96423fbe108c01710ecc8769c994a4e" +checksum = "dd8f935309a940a2b5c5dddf0ffc9d2d3df84e71653dc4307001de422fde3a97" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", "rustc_version 0.2.3", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] name = "solana-logger" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd962c3fc95a433cd5e8368161fa54cfc9f216f66be06a71ccf05f8db3cc518" +checksum = "9208367bc527ea1ccf6c179cd293de091b0a94c2e2c4697057f99b58b0db094c" dependencies = [ "env_logger", "lazy_static", @@ -2629,9 +2548,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0405692ecd5b0daea7a6ee8d076afa627492c25623a89e3519e6b8f773e790" +checksum = "67f586d11b5b2f5323d16cf2f163eb7b3e16c81e3468f9312d3b4cb650bfac3b" dependencies = [ "log", "solana-metrics", @@ -2640,9 +2559,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b191f80988c11b6be15c33e9fcd48086e0f8d7b64a5215a562b7fefd50858f" +checksum = "720a2c07f96cb0e71e3314c83b97f06abbd1783922b0626c4ea294d96745b285" dependencies = [ "env_logger", "gethostname", @@ -2654,16 +2573,18 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd1398350ee06070854399743f4d726b1ea7f71766714b0767cc6133ba18c7b" +checksum = "3fc19c221d884394b7170f5c46aeede3ef759cc4691d5427a169a0c60e662d73" dependencies = [ + "base64 0.13.0", "bincode", "blake3", "borsh 0.9.1", "borsh-derive 0.9.1", - "bs58", + "bs58 0.3.1", "bv", + "bytemuck", "curve25519-dalek 2.1.2", "hex", "itertools", @@ -2689,9 +2610,9 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f1b0f6563b79f3cbbca0f0a5ce04eca634d82c14fa922d0ed662c1609484161" +checksum = "65230f6425ea2f172c151a8850e5996cdfe2cd31ef9fc11b68e2755631895dd7" dependencies = [ "async-trait", "base64 0.12.3", @@ -2699,7 +2620,7 @@ dependencies = [ "chrono", "chrono-humanize", "log", - "mio 0.7.11", + "mio", "serde", "serde_derive", "solana-banks-client", @@ -2710,14 +2631,14 @@ dependencies = [ "solana-sdk", "solana-vote-program", "thiserror", - "tokio 1.6.1", + "tokio", ] [[package]] name = "solana-rayon-threadlimit" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436c020428e66f511568edbb1e3d2bddee3336c2dadea4d45ecdcd57572c55bf" +checksum = "c6b557df202f7f4462e263ca6ecd29104ec2177e3837552bb1a4fc0171b49ae3" dependencies = [ "lazy_static", "num_cpus", @@ -2725,9 +2646,9 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "932185b5b954d3828a39df54487391cd5b982aa994c39c261771b8f8599210bb" +checksum = "81cb653aa2abd3e1e2a2490737f7a1c3cff8e055c30e2fb488263d86bafe97bf" dependencies = [ "arrayref", "bincode", @@ -2756,7 +2677,9 @@ dependencies = [ "rustc_version 0.2.3", "serde", "serde_derive", + "solana-compute-budget-program", "solana-config-program", + "solana-ed25519-program", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -2776,14 +2699,18 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5475909aab00963154a2748cb3ac78eacce511c2a194b28e041c926099c0d286" +checksum = "f91d3280e316e76ae40d9ca93d82ccbd070b74831c2590a3b2318cdc3955eac3" dependencies = [ "assert_matches", + "base64 0.13.0", "bincode", - "bs58", + "borsh 0.9.1", + "borsh-derive 0.9.1", + "bs58 0.4.0", "bv", + "bytemuck", "byteorder", "chrono", "derivation-path", @@ -2825,31 +2752,31 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3839bc6b8f3163878e7f1675a0faffa641edf760aec1d9a7a056f71712e94642" +checksum = "5f5f82ef15b2daa000a9b6fd1db5e4888963150355c4fc81eb1de2f9d6c9b6ea" dependencies = [ - "bs58", - "proc-macro2 1.0.27", + "bs58 0.3.1", + "proc-macro2 1.0.40", "quote 1.0.9", "rustversion", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] name = "solana-secp256k1-program" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd7e16a637da71fbb12343ea57e107c49b91ee3d3f858ff09eb65b712bfb76a" +checksum = "a24323188b2b943fd7ddf0c7493132bbc0a51ea54b4beca5137109fc04501051" dependencies = [ "solana-sdk", ] [[package]] name = "solana-stake-program" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626a1205b053064cf2824ae09c5660e6b93443591f65ff5976c9dac1bfc1675b" +checksum = "fe04437e09d083e53e668d003e1359d9dd232566c532e8d61ca9f8a8bd95d204" dependencies = [ "bincode", "log", @@ -2869,9 +2796,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.7.10" +version = "1.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c338f2c1bb6056380947a5dcfa0b132a2021a1177f944a8d805cccd14a26d29" +checksum = "fb5cd4382837ca6ae42e6cba2cc88c1655b1f6b86678d70d5c7fe571d4b84471" dependencies = [ "bincode", "log", @@ -2964,13 +2891,13 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.73" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "unicode-xid 0.2.2", + "unicode-ident", ] [[package]] @@ -2979,17 +2906,17 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "unicode-xid 0.2.2", ] [[package]] name = "tar" -version = "0.4.35" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" dependencies = [ "filetime", "libc", @@ -3004,7 +2931,7 @@ checksum = "e325774dd5b35d979e9f4db2b0f0d7d85dc2ff2b676a3150af56c09eafc14b07" dependencies = [ "anyhow", "fnv", - "futures 0.3.15", + "futures", "humantime", "log", "pin-project", @@ -3012,7 +2939,7 @@ dependencies = [ "serde", "static_assertions", "tarpc-plugins", - "tokio 1.6.1", + "tokio", "tokio-serde", "tokio-util", ] @@ -3023,9 +2950,9 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3240378a22b1195734e085ba71d1d4188d50f034aea82635acc430b7005afb5" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -3037,9 +2964,9 @@ dependencies = [ "cfg-if 1.0.0", "libc", "rand 0.8.4", - "redox_syscall 0.2.8", + "redox_syscall", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3066,9 +2993,9 @@ version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", ] [[package]] @@ -3079,7 +3006,7 @@ checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3097,30 +3024,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" -[[package]] -name = "tokio" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "mio 0.6.23", - "num_cpus", - "tokio-codec", - "tokio-current-thread", - "tokio-executor", - "tokio-fs", - "tokio-io", - "tokio-reactor", - "tokio-sync", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "tokio-udp", - "tokio-uds", -] - [[package]] name = "tokio" version = "1.6.1" @@ -3131,67 +3034,14 @@ dependencies = [ "bytes 1.0.1", "libc", "memchr", - "mio 0.7.11", + "mio", "num_cpus", "once_cell", - "parking_lot 0.11.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", "tokio-macros", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures 0.1.31", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", -] - -[[package]] -name = "tokio-fs" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" -dependencies = [ - "futures 0.1.31", - "tokio-io", - "tokio-threadpool", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", + "winapi", ] [[package]] @@ -3200,28 +3050,9 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", -] - -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "mio 0.6.23", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", + "syn 1.0.98", ] [[package]] @@ -3231,7 +3062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls", - "tokio 1.6.1", + "tokio", "webpki", ] @@ -3259,93 +3090,7 @@ checksum = "f8864d706fdb3cc0843a49647ac892720dac98a6eeb818b77190592cf4994066" dependencies = [ "futures-core", "pin-project-lite", - "tokio 1.6.1", -] - -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures 0.1.31", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "mio 0.6.23", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-threadpool" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" -dependencies = [ - "crossbeam-deque 0.7.3", - "crossbeam-queue", - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "num_cpus", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-udp" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", - "mio 0.6.23", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-uds" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "libc", - "log", - "mio 0.6.23", - "mio-uds", - "tokio-codec", - "tokio-io", - "tokio-reactor", + "tokio", ] [[package]] @@ -3359,7 +3104,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "tokio 1.6.1", + "tokio", ] [[package]] @@ -3424,6 +3169,12 @@ dependencies = [ "matches", ] +[[package]] +name = "unicode-ident" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" + [[package]] name = "unicode-normalization" version = "0.1.19" @@ -3482,6 +3233,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.3" @@ -3501,7 +3258,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi 0.3.9", + "winapi", "winapi-util", ] @@ -3548,9 +3305,9 @@ dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "wasm-bindgen-shared", ] @@ -3582,9 +3339,9 @@ version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3624,12 +3381,6 @@ dependencies = [ "webpki", ] -[[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" @@ -3640,12 +3391,6 @@ 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" @@ -3658,7 +3403,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3673,7 +3418,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3685,16 +3430,6 @@ dependencies = [ "alloc-traits", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "xattr" version = "0.2.2" @@ -3719,9 +3454,9 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" dependencies = [ - "proc-macro2 1.0.27", + "proc-macro2 1.0.40", "quote 1.0.9", - "syn 1.0.73", + "syn 1.0.98", "synstructure", ] diff --git a/program/Cargo.toml b/program/Cargo.toml index d9876b9..914ba3d 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -11,7 +11,6 @@ test-bpf = [] [dependencies] solana-program = "^1.6.4" -spl-token = { version = "^3.0.0", features=["no-entrypoint"] } byteorder = "^1.3.4" arrayref = "^0.3.6" num_enum = "^0.5.1" @@ -22,13 +21,15 @@ static_assertions = "^1.1.0" thiserror = "^1.0.24" serde = "^1.0.118" bincode = "^1.3.1" -serum_dex = { version = "0.4.0", git = "https://github.com/blockworks-foundation/serum-dex.git", default-features=false, features = ["no-entrypoint", "program"] } - num-derive = "^0.3.3" -flux-aggregator = { version = "^0.1", git = "https://github.com/blockworks-foundation/solana-flux-aggregator.git", features=["program", "no-entrypoint"] } fixed = { version = "^1.7.0", features=["serde"] } fixed-macro = "^1.1.1" +spl-token = { version = "^3.0.0", features=["no-entrypoint"] } +serum_dex = { version = "0.4.0", rev="3104f424ee38a415418a1cdef67970771f832857", git = "https://github.com/blockworks-foundation/serum-dex.git", default-features=false, features = ["no-entrypoint", "program"] } +flux-aggregator = { version = "^0.1", rev="ca6706d05218acc84d164ed5149fac7612d3aa2b", git = "https://github.com/blockworks-foundation/solana-flux-aggregator.git", features=["program", "no-entrypoint"] } +pyth-client = {version = ">=0.5.0", features = ["no-entrypoint"]} + [dev-dependencies] solana-sdk = "^1.6.4" solana-program-test = "^1.6.4" diff --git a/program/src/error.rs b/program/src/error.rs index 903cef0..2445453 100644 --- a/program/src/error.rs +++ b/program/src/error.rs @@ -67,6 +67,8 @@ pub enum MangoErrorCode { FeeDiscountFunctionality, #[error("MangoErrorCode::Deprecated")] Deprecated, + #[error("MangoErrorCode::OracleOffline")] + OracleOffline, #[error("MangoErrorCode::Default Check the source code for more info")] Default = u32::MAX_VALUE, @@ -92,6 +94,14 @@ impl From for MangoError { } } + +impl From for MangoError { + fn from(pyth_e: pyth_client::PythError) -> Self { + let prog_e: ProgramError = pyth_e.into(); + prog_e.into() + } +} + #[inline] pub fn check_assert( cond: bool, diff --git a/program/src/instruction.rs b/program/src/instruction.rs index 590937e..ea8779b 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -36,7 +36,7 @@ pub enum MangoInstruction { /// 7+2*NUM_TOKENS..7+2*NUM_TOKENS+NUM_MARKETS `[]` /// spot_market_accs - MarketState account from serum dex for each of the spot markets /// 7+2*NUM_TOKENS+NUM_MARKETS..7+2*NUM_TOKENS+2*NUM_MARKETS `[]` - /// oracle_accs - Solana Flux Aggregator accounts corresponding to each trading pair + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair InitMangoGroup { signer_nonce: u64, maint_coll_ratio: U64F64, @@ -83,7 +83,7 @@ pub enum MangoInstruction { /// 7. `[]` clock_acc - Clock sysvar account /// 8..8+NUM_MARKETS `[]` open_orders_accs - open orders for each of the spot market /// 8+NUM_MARKETS..8+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair Withdraw { quantity: u64 }, @@ -98,7 +98,7 @@ pub enum MangoInstruction { /// 3. `[]` clock_acc - Clock sysvar account /// 4..4+NUM_MARKETS `[]` open_orders_accs - open orders for each of the spot market /// 4+NUM_MARKETS..4+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair Borrow { token_index: usize, quantity: u64 @@ -128,7 +128,7 @@ pub enum MangoInstruction { /// 4. `[]` clock_acc - Clock sysvar account /// 5..5+NUM_MARKETS `[]` open_orders_accs - open orders for each of the spot market /// 5+NUM_MARKETS..5+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair /// 5+2*NUM_MARKETS..5+2*NUM_MARKETS+NUM_TOKENS `[writable]` /// vault_accs - MangoGroup vaults /// 5+2*NUM_MARKETS+NUM_TOKENS..5+2*NUM_MARKETS+2*NUM_TOKENS `[writable]` @@ -197,7 +197,7 @@ pub enum MangoInstruction { /// 16. `[writable]` srm_vault_acc - MangoGroup's srm_vault used for fee reduction /// 17..17+NUM_MARKETS `[writable]` open_orders_accs - open orders for each of the spot market /// 17+NUM_MARKETS..17+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair PlaceOrder { order: serum_dex::instruction::NewOrderInstructionV3 }, @@ -297,7 +297,7 @@ pub enum MangoInstruction { /// 18. `[]` dex_signer_acc - signer for serum dex MarketState /// 19..19+NUM_MARKETS `[writable]` open_orders_accs - open orders for each of the spot market /// 19+NUM_MARKETS..19+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair PlaceAndSettle { order: serum_dex::instruction::NewOrderInstructionV3 }, @@ -324,7 +324,7 @@ pub enum MangoInstruction { /// 15. `[]` clock_acc - Clock sysvar account /// 16..16+NUM_MARKETS `[writable]` open_orders_accs - open orders for each of the spot market /// 16+NUM_MARKETS..16+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair ForceCancelOrders { /// Max orders to cancel -- could be useful to lower this if running into compute limits /// Recommended: 5 @@ -347,7 +347,7 @@ pub enum MangoInstruction { /// 9. `[]` clock_acc - Clock sysvar account /// 10..10+NUM_MARKETS `[]` open_orders_accs - open orders for each of the spot market /// 10+NUM_MARKETS..10+2*NUM_MARKETS `[]` - /// oracle_accs - flux aggregator feed accounts + /// oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair PartialLiquidate { /// Quantity of the token being deposited to repay borrows max_deposit: u64 @@ -356,7 +356,13 @@ pub enum MangoInstruction { AddMarginAccountInfo { info: [u8; INFO_LEN] - } + }, + + /// Allows to switch the oracles to a new set + /// 0. `[writable]` mango_group_acc - the data account to store mango group state vars + /// 1. `[signer]` admin_acc - admin key that created the group + /// 2..2+NUM_MARKETS `[]` oracle_accs - Pyth Price / Solana Flux Aggregator accounts corresponding to each trading pair + SwitchOracles } @@ -508,6 +514,9 @@ impl MangoInstruction { info: *info } } + 18 => { + MangoInstruction::SwitchOracles + } _ => { return None; } }) } @@ -1233,4 +1242,26 @@ pub fn add_margin_account_info( accounts, data }) +} + +pub fn switch_oracles( + program_id: &Pubkey, + mango_group_pk: &Pubkey, + admin_pk: &Pubkey, + oracle_pks: &[Pubkey], +) -> Result { + let mut accounts = vec![ + AccountMeta::new(*mango_group_pk, false), + AccountMeta::new_readonly(*admin_pk, true), + ]; + accounts.extend(oracle_pks.iter().map( + |pk| AccountMeta::new_readonly(*pk, false)) + ); + let instr = MangoInstruction::SwitchOracles {}; + let data = instr.pack(); + Ok(Instruction { + program_id: *program_id, + accounts, + data + }) } \ No newline at end of file diff --git a/program/src/processor.rs b/program/src/processor.rs index a322d5a..016e615 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -1,11 +1,13 @@ use std::cmp; use std::cmp::min; use std::mem::size_of; +use std::ops::Neg; use arrayref::{array_ref, array_refs}; use fixed::types::U64F64; use fixed_macro::types::U64F64; use flux_aggregator::borsh_state::InitBorshState; +use pyth_client::PriceStatus; use serum_dex::matching::Side; use serum_dex::state::ToAlignedBytes; use solana_program::account_info::AccountInfo; @@ -1375,6 +1377,52 @@ impl Processor { margin_account.info = info; Ok(()) } + + #[inline(never)] + fn switch_oracles( + program_id: &Pubkey, + accounts: &[AccountInfo], + ) -> MangoResult<()> { + const NUM_FIXED: usize = 2; + let accounts = array_ref![accounts, 0, NUM_FIXED + NUM_MARKETS]; + let (fixed_accs, oracle_accs) = array_refs![accounts, NUM_FIXED, NUM_MARKETS]; + let [ + mango_group_acc, + admin_acc, + ] = fixed_accs; + + let mut mango_group = MangoGroup::load_mut_checked( + mango_group_acc, program_id)?; + check_eq!(admin_acc.key, &mango_group.admin, MangoErrorCode::InvalidGroupOwner)?; + check!(admin_acc.is_signer, MangoErrorCode::SignerNecessary)?; + + for i in 0..NUM_MARKETS { + mango_group.oracles[i] = *oracle_accs[i].key; + + // determine oracle type + let borrowed = oracle_accs[i].data.borrow(); + let magic = u32::from_le_bytes(*array_ref![borrowed, 0, 4]); + + // read oracle decimals + let decimals = if magic == pyth_client::MAGIC { + // detected pyth oracle + let price_account = pyth_client::load_price(&borrowed)?; + // usually expo is -8, verify anyways that it's within bounds + check!(price_account.expo <= 0, MangoErrorCode::Default); + check!(price_account.expo >= -255, MangoErrorCode::Default); + price_account.expo.neg() as u8 + } else { + // fall back to legacy flux aggregator + let oracle = flux_aggregator::state::Aggregator::load_initialized(&oracle_accs[i])?; + oracle.config.decimals + }; + + mango_group.oracle_decimals[i] = decimals; + } + + Ok(()) + } + pub fn process( program_id: &Pubkey, accounts: &[AccountInfo], @@ -1492,6 +1540,10 @@ impl Processor { msg!("Mango: AddMarginAccountInfo"); Self::add_margin_account_info(program_id, accounts, info)?; } + MangoInstruction::SwitchOracles => { + msg!("Mango: SwitchOracles"); + Self::switch_oracles(program_id, accounts)?; + } } Ok(()) } @@ -1671,16 +1723,27 @@ pub fn get_prices( for i in 0..NUM_MARKETS { check_eq_default!(&mango_group.oracles[i], oracle_accs[i].key)?; - // TODO store this info in MangoGroup, first make sure it cannot be changed by solink + let base_adj = U64F64::from_num(10u64.pow(mango_group.mint_decimals[i] as u32)); let quote_adj = U64F64::from_num( 10u64.pow(quote_decimals.checked_sub(mango_group.oracle_decimals[i]).unwrap() as u32) ); - let answer = flux_aggregator::read_median(&oracle_accs[i])?; // this is in USD cents + // determine oracle type + let borrowed = oracle_accs[i].data.borrow(); + let magic = u32::from_le_bytes(*array_ref![borrowed, 0, 4]); - let value = U64F64::from_num(answer.median); + // read oracle value + let value = if magic == pyth_client::MAGIC { + // detected pyth oracle + let price_account = pyth_client::load_price(&borrowed)?; + check_eq!(price_account.get_current_price_status(), PriceStatus::Trading, MangoErrorCode::OracleOffline); + U64F64::from_num(price_account.agg.price) + } else { + // fall back to legacy flux aggregator + let answer = flux_aggregator::read_median(&oracle_accs[i])?; // this is in USD cents + U64F64::from_num(answer.median) + }; - let base_adj = U64F64::from_num(10u64.pow(mango_group.mint_decimals[i] as u32)); prices[i] = quote_adj .checked_div(base_adj).unwrap() .checked_mul(value).unwrap();