From 1106de93461956c06aa1004f375056700f48efda Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Fri, 5 Jul 2024 10:24:19 +0100 Subject: [PATCH 01/19] feat: accumulator v2 (wip 1) --- runtime/src/bank.rs | 28 +++++++++++++++++-- runtime/src/bank/pyth_accumulator.rs | 42 ++++++++++++++++++++++++++++ sdk/program/src/account_info.rs | 1 + 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 runtime/src/bank/pyth_accumulator.rs diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 330f09fb80..425a834c22 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -199,6 +199,8 @@ mod builtin_programs; mod sysvar_cache; mod transaction_account_state_info; +mod pyth_accumulator; + pub const SECONDS_PER_YEAR: f64 = 365.25 * 24.0 * 60.0 * 60.0; pub const MAX_LEADER_SCHEDULE_STAKES: Epoch = 5; @@ -2242,9 +2244,31 @@ impl Bank { } info!("Accumulator: Updating accumulator. Slot: {}", self.slot()); - if let Err(e) = self.update_accumulator_impl() { - error!("Error updating accumulator: {:?}", e); + + lazy_static! { + static ref ACCUMULATOR_V2_SLOT: Option = + match std::env::var("PYTH_ACCUMULATOR_V2_FROM_SLOT") { + Ok(value) => Some( + value + .parse() + .expect("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var") + ), + Err(std::env::VarError::NotPresent) => None, + Err(std::env::VarError::NotUnicode(err)) => { + panic!("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var: {err:?}"); + } + }; } + + if ACCUMULATOR_V2_SLOT.map_or(false, |v2_slot| self.slot >= v2_slot) { + if let Err(e) = pyth_accumulator::update_v2(&self) { + error!("Error updating accumulator: {:?}", e); + } + } else { + if let Err(e) = self.update_accumulator_impl() { + error!("Error updating accumulator: {:?}", e); + } + }; } fn update_accumulator_impl(&self) -> std::result::Result<(), AccumulatorUpdateError> { diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs new file mode 100644 index 0000000000..de58e15206 --- /dev/null +++ b/runtime/src/bank/pyth_accumulator.rs @@ -0,0 +1,42 @@ +use std::env::{self, VarError}; + +use solana_sdk::pubkey::Pubkey; + +use crate::accounts_index::{ScanConfig, ScanError}; + +use super::Bank; + +#[derive(Debug, thiserror::Error)] +pub enum AccumulatorUpdateV2Error { + #[error("no oracle pubkey")] + NoOraclePubkey, + #[error("get_program_accounts failed to return accounts: {0}")] + GetProgramAccounts(#[from] ScanError), +} + +lazy_static! { + static ref ORACLE_PUBKEY: Option = match env::var("PYTH_ORACLE_PUBKEY") { + Ok(value) => Some( + value + .parse() + .expect("invalid value of PYTH_ORACLE_PUBKEY env var") + ), + Err(VarError::NotPresent) => None, + Err(VarError::NotUnicode(err)) => { + panic!("invalid value of PYTH_ORACLE_PUBKEY env var: {err:?}"); + } + }; +} + +pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateV2Error> { + let Some(oracle_pubkey) = &*ORACLE_PUBKEY else { + return Err(AccumulatorUpdateV2Error::NoOraclePubkey); + }; + + let accounts = bank + .get_program_accounts(oracle_pubkey, &ScanConfig::new(true)) + .map_err(AccumulatorUpdateV2Error::GetProgramAccounts)?; + + //... + Ok(()) +} diff --git a/sdk/program/src/account_info.rs b/sdk/program/src/account_info.rs index 3652e2251e..b78fdbcb47 100644 --- a/sdk/program/src/account_info.rs +++ b/sdk/program/src/account_info.rs @@ -184,6 +184,7 @@ impl<'a> AccountInfo<'a> { pub fn assign(&self, new_owner: &Pubkey) { // Set the non-mut owner field unsafe { + #[allow(invalid_reference_casting)] std::ptr::write_volatile( self.owner as *const Pubkey as *mut [u8; 32], new_owner.to_bytes(), From af6e6cb6fc454eae3a232e9ca811fc72992f695d Mon Sep 17 00:00:00 2001 From: Reisen Date: Fri, 5 Jul 2024 09:43:04 +0000 Subject: [PATCH 02/19] feat: accumulator v2 (wip 2) --- Cargo.lock | 346 +++++++++++++---------- runtime/Cargo.toml | 5 +- runtime/src/bank.rs | 359 +----------------------- runtime/src/bank/pyth_accumulator.rs | 395 ++++++++++++++++++++++++++- sdk/program/src/account_info.rs | 1 - 5 files changed, 589 insertions(+), 517 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03742437b5..0ec72be96c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,8 +156,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "synstructure", ] @@ -168,8 +168,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -232,8 +232,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -243,8 +243,8 @@ version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -369,14 +369,18 @@ dependencies = [ "bitflags", "cexpr", "clang-sys", + "clap 3.1.8", + "env_logger", "lazy_static", "lazycell", + "log", "peeking_take_while", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "regex", "rustc-hash", "shlex", + "which", ] [[package]] @@ -488,7 +492,7 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.52", + "proc-macro2 1.0.86", "syn 1.0.109", ] @@ -498,8 +502,8 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -509,8 +513,8 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -617,8 +621,8 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aca418a974d83d40a0c1f0c5cba6ff4bc28d8df099109ca459a2118d40b6322" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -835,8 +839,8 @@ checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1" dependencies = [ "heck 0.4.0", "proc-macro-error", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -909,8 +913,8 @@ version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "unicode-xid 0.2.2", ] @@ -1163,8 +1167,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" dependencies = [ "convert_case", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version 0.3.3", "syn 1.0.109", ] @@ -1251,8 +1255,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1339,8 +1343,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f86b50932a01e7ec5c06160492ab660fb19b6bb2a7878030dd6cd68d21df9d4d" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1380,8 +1384,8 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1393,8 +1397,8 @@ checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef" dependencies = [ "num-bigint 0.4.3", "num-traits", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1405,8 +1409,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" dependencies = [ "once_cell", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1649,8 +1653,8 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2305,8 +2309,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2678,8 +2682,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2802,8 +2806,8 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2875,8 +2879,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" dependencies = [ "proc-macro-crate 1.1.0", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2943,8 +2947,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3024,8 +3028,8 @@ checksum = "084fd65d5dd8b3772edccb5ffd1e4b7eba43897ecd0f9401e330e8c542959408" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3172,8 +3176,8 @@ checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3223,8 +3227,8 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3320,7 +3324,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b83ec2d0af5c5c556257ff52c9f98934e243b9fd39604bfb2a9b75ec2e97f18" dependencies = [ - "proc-macro2 1.0.52", + "proc-macro2 1.0.86", "syn 1.0.109", ] @@ -3350,8 +3354,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "version_check", ] @@ -3362,8 +3366,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "version_check", ] @@ -3378,9 +3382,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -3473,8 +3477,8 @@ checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3486,8 +3490,8 @@ checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3520,6 +3524,38 @@ dependencies = [ "autotools", ] +[[package]] +name = "pyth-oracle" +version = "2.26.0" +dependencies = [ + "bindgen", + "bytemuck", + "byteorder", + "num-derive", + "num-traits", + "pythnet-sdk 1.13.6 (git+https://github.com/pyth-network/pyth-crosschain?rev=60144002053a93f424be70decd8a8ccb8d618d81)", + "solana-program 1.14.17", + "thiserror", +] + +[[package]] +name = "pythnet-sdk" +version = "1.13.6" +source = "git+https://github.com/pyth-network/pyth-crosschain?rev=60144002053a93f424be70decd8a8ccb8d618d81#60144002053a93f424be70decd8a8ccb8d618d81" +dependencies = [ + "bincode", + "borsh", + "bytemuck", + "byteorder", + "fast-math", + "hex", + "rustc_version 0.4.0", + "serde", + "sha3 0.10.8", + "slow_primes", + "thiserror", +] + [[package]] name = "pythnet-sdk" version = "1.13.6" @@ -3624,11 +3660,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.52", + "proc-macro2 1.0.86", ] [[package]] @@ -4129,8 +4165,8 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "serde_derive_internals", "syn 1.0.109", ] @@ -4156,8 +4192,8 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -4255,8 +4291,8 @@ version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -4266,8 +4302,8 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -4338,8 +4374,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1b95bb2f4f624565e8fe8140c789af7e2082c0e0561b5a82a1b678baa9703dc" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -5243,9 +5279,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b4953578272ac0fadec245e85e83ae86454611f0c0a7fff7d906835124bdcf" +checksum = "f53e63c8f2aac07bc21167e7ede9b9d010ae25523fff5c01b171d9bab9a5a394" dependencies = [ "ahash", "blake3", @@ -5270,7 +5306,7 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "solana-frozen-abi-macro 1.14.16", + "solana-frozen-abi-macro 1.14.17", "subtle", "thiserror", ] @@ -5310,12 +5346,12 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57892538250428ad3dc3cbe05f6cd75ad14f4f16734fcb91bc7cd5fbb63d6315" +checksum = "daeaaa2713c06a2fe4bcdcfe7e1af55ee8a89c4d6693860b4041997af667207a" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -5324,8 +5360,8 @@ dependencies = [ name = "solana-frozen-abi-macro" version = "1.14.174" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -5628,9 +5664,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06aa701c49493e93085dd1e800c05475baca15a9d4d527b59794f2ed0b66e055" +checksum = "2b502866be84a799633c0744e1d72b819a256337149e9fb6c7eee4db84ec63f5" dependencies = [ "env_logger", "lazy_static", @@ -5801,9 +5837,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f99052873619df68913cb8e92e28ff251a5483828925e87fa97ba15a9cbad51" +checksum = "d66c02ad6002fbe7903ec96edd16352fe7964d3ee43b02053112f5304529849f" dependencies = [ "base64 0.13.0", "bincode", @@ -5839,9 +5875,9 @@ dependencies = [ "serde_json", "sha2 0.10.2", "sha3 0.10.8", - "solana-frozen-abi 1.14.16", - "solana-frozen-abi-macro 1.14.16", - "solana-sdk-macro 1.14.16", + "solana-frozen-abi 1.14.17", + "solana-frozen-abi-macro 1.14.17", + "solana-sdk-macro 1.14.17", "thiserror", "tiny-bip39", "wasm-bindgen", @@ -6085,7 +6121,8 @@ dependencies = [ "num_cpus", "once_cell", "ouroboros", - "pythnet-sdk", + "pyth-oracle", + "pythnet-sdk 1.13.6 (git+https://github.com/pyth-network/pyth-crosschain?rev=e670f57f89b05398ca352e4accb1e32724a8e1b4)", "rand 0.7.3", "rand_chacha 0.2.2", "rayon", @@ -6112,17 +6149,19 @@ dependencies = [ "strum", "strum_macros", "symlink", + "syn 2.0.15", "tar", "tempfile", "thiserror", + "thiserror-impl", "zstd", ] [[package]] name = "solana-sdk" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb47da3e18cb669f6ace0b40cee0610e278903783e0c9f7fce1e1beb881a1b7" +checksum = "60cbad77fa09d23fa5e05029dec6c88e4b784be76cf6ae390f82cc04b8089e73" dependencies = [ "assert_matches", "base64 0.13.0", @@ -6159,11 +6198,11 @@ dependencies = [ "serde_json", "sha2 0.10.2", "sha3 0.10.8", - "solana-frozen-abi 1.14.16", - "solana-frozen-abi-macro 1.14.16", - "solana-logger 1.14.16", - "solana-program 1.14.16", - "solana-sdk-macro 1.14.16", + "solana-frozen-abi 1.14.17", + "solana-frozen-abi-macro 1.14.17", + "solana-logger 1.14.17", + "solana-program 1.14.17", + "solana-sdk-macro 1.14.17", "thiserror", "uriparse", "wasm-bindgen", @@ -6225,13 +6264,13 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d41a09b9cecd0a4df63c78a192adee99ebf2d3757c19713a68246e1d9789c7c" +checksum = "b73f54502e7d537472bf393ffce0c252c55b534f16797029a1614d79ec0209c9" dependencies = [ "bs58", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -6241,8 +6280,8 @@ name = "solana-sdk-macro" version = "1.14.174" dependencies = [ "bs58", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -6639,9 +6678,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab38abd096769f79fd8e3fe8465070f04742395db724606a5263c8ebc215567" +checksum = "b28c5ec36aa1393174f7ea18c0cb809af82c10977bc5b2e1240a6b4b048b8f24" dependencies = [ "aes-gcm-siv", "arrayref", @@ -6661,8 +6700,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.16", - "solana-sdk 1.14.16", + "solana-program 1.14.17", + "solana-sdk 1.14.17", "subtle", "thiserror", "zeroize", @@ -6747,7 +6786,7 @@ dependencies = [ "borsh", "num-derive", "num-traits", - "solana-program 1.14.16", + "solana-program 1.14.17", "spl-token", "spl-token-2022 0.5.0", "thiserror", @@ -6759,7 +6798,7 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" dependencies = [ - "solana-program 1.14.16", + "solana-program 1.14.17", ] [[package]] @@ -6773,7 +6812,7 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", + "solana-program 1.14.17", "thiserror", ] @@ -6788,8 +6827,8 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", - "solana-zk-token-sdk 1.14.16", + "solana-program 1.14.17", + "solana-zk-token-sdk 1.14.17", "spl-memo", "spl-token", "thiserror", @@ -6806,8 +6845,8 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", - "solana-zk-token-sdk 1.14.16", + "solana-program 1.14.17", + "solana-zk-token-sdk 1.14.17", "spl-memo", "spl-token", "thiserror", @@ -6864,8 +6903,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef" dependencies = [ "heck 0.4.0", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -6899,8 +6938,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", "unicode-ident", ] @@ -6916,8 +6966,8 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "unicode-xid 0.2.2", ] @@ -7000,8 +7050,8 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -7061,8 +7111,8 @@ checksum = "8dd461f47ade621665c9f4e44b20449341769911c253275dc5cb03726cbb852c" dependencies = [ "cfg-if 1.0.0", "proc-macro-error", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -7083,22 +7133,22 @@ checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", - "syn 1.0.109", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.15", ] [[package]] @@ -7235,8 +7285,8 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -7426,9 +7476,9 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" dependencies = [ - "proc-macro2 1.0.52", + "proc-macro2 1.0.86", "prost-build 0.9.0", - "quote 1.0.18", + "quote 1.0.36", "syn 1.0.109", ] @@ -7439,9 +7489,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fbcd2800e34e743b9ae795867d5f77b535d3a3be69fd731e39145719752df8c" dependencies = [ "prettyplease", - "proc-macro2 1.0.52", + "proc-macro2 1.0.86", "prost-build 0.11.0", - "quote 1.0.18", + "quote 1.0.36", "syn 1.0.109", ] @@ -7515,8 +7565,8 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -7836,8 +7886,8 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "wasm-bindgen-shared", ] @@ -7860,7 +7910,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ - "quote 1.0.18", + "quote 1.0.36", "wasm-bindgen-macro-support", ] @@ -7870,8 +7920,8 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -8145,8 +8195,8 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" dependencies = [ - "proc-macro2 1.0.52", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "synstructure", ] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 35201ba479..9e6b8d0272 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,6 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" +pyth-oracle = { path = "../../pyth-client/program/rust" } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" @@ -59,9 +60,11 @@ solana-zk-token-sdk = { path = "../zk-token-sdk", version = "=1.14.174" } strum = { version = "0.24", features = ["derive"] } strum_macros = "0.24" symlink = "0.1.0" +syn = "=2.0.15" tar = "0.4.38" tempfile = "3.3.0" -thiserror = "1.0" +thiserror-impl = "=1.0.40" +thiserror = "=1.0.40" zstd = "0.11.2" [lib] diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 425a834c22..ce98dae1b9 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -205,8 +205,6 @@ pub const SECONDS_PER_YEAR: f64 = 365.25 * 24.0 * 60.0 * 60.0; pub const MAX_LEADER_SCHEDULE_STAKES: Epoch = 5; -pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; - pub type Rewrites = RwLock>; #[derive(Default)] @@ -444,26 +442,6 @@ pub struct LoadAndExecuteTransactionsOutput { pub error_counters: TransactionErrorMetrics, } -/// Accumulator specific error type. It would be nice to use `transaction::Error` but it does -/// not include any `Custom` style variant we can leverage, so we introduce our own. -#[derive(Debug, thiserror::Error)] -pub enum AccumulatorUpdateError { - #[error("get_program_accounts failed to return accounts")] - GetProgramAccounts, - - #[error("failed to serialize sequence account")] - FailedSequenceSerialization, - - #[error("failed to serialize message account")] - FailedMessageSerialization, - - #[error("io error")] - Io(#[from] std::io::Error), - - #[error("could not parse Pubkey from environment")] - InvalidEnvPubkey(#[from] solana_sdk::pubkey::ParsePubkeyError), -} - #[derive(Debug, Clone)] pub enum DurableNonceFee { Valid(u64), @@ -1430,7 +1408,7 @@ impl Bank { // state before the accumulator is used. bank is in a fully // updated state before the accumulator is used. if !accumulator_moved_to_end_of_block { - bank.update_accumulator(); + pyth_accumulator::update_accumulator(&bank); } bank @@ -1816,7 +1794,7 @@ impl Bank { // the accumulator sysvar updates. sysvars are in a fully updated // state before the accumulator sysvar updates. if !accumulator_moved_to_end_of_block { - new.update_accumulator(); + pyth_accumulator::update_accumulator(&new); } }); @@ -2224,337 +2202,6 @@ impl Bank { ) } - /// Updates the Accumulator Sysvar at the start of a new slot. See `update_clock` to see a similar - /// sysvar this is based on. - /// - /// Note: - /// - Library imports are placed within this function to keep the diff against upstream small. - /// - This update will incur a performance hit on each slot, so must be kept efficient. - /// - Focused on Merkle for initial release but will generalise to more accumulators in future. - fn update_accumulator(&self) { - if !self - .feature_set - .is_active(&feature_set::enable_accumulator_sysvar::id()) - { - info!( - "Accumulator: Skipping because the feature is disabled. Slot: {}", - self.slot() - ); - return; - } - - info!("Accumulator: Updating accumulator. Slot: {}", self.slot()); - - lazy_static! { - static ref ACCUMULATOR_V2_SLOT: Option = - match std::env::var("PYTH_ACCUMULATOR_V2_FROM_SLOT") { - Ok(value) => Some( - value - .parse() - .expect("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var") - ), - Err(std::env::VarError::NotPresent) => None, - Err(std::env::VarError::NotUnicode(err)) => { - panic!("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var: {err:?}"); - } - }; - } - - if ACCUMULATOR_V2_SLOT.map_or(false, |v2_slot| self.slot >= v2_slot) { - if let Err(e) = pyth_accumulator::update_v2(&self) { - error!("Error updating accumulator: {:?}", e); - } - } else { - if let Err(e) = self.update_accumulator_impl() { - error!("Error updating accumulator: {:?}", e); - } - }; - } - - fn update_accumulator_impl(&self) -> std::result::Result<(), AccumulatorUpdateError> { - use { - byteorder::ReadBytesExt, - pythnet_sdk::{ - accumulators::{merkle::MerkleAccumulator, Accumulator}, - hashers::keccak256_160::Keccak160, - MESSAGE_BUFFER_PID, - }, - solana_sdk::borsh, - }; - - // Use the current Clock to determine the index into the accumulator ring buffer. - let ring_index = (self.slot() % 10_000) as u32; - - // Find all accounts owned by the Message Buffer program using get_program_accounts, and - // extract the account data. - let message_buffer_pid = self.env_pubkey_or( - "MESSAGE_BUFFER_PID", - Pubkey::new_from_array(MESSAGE_BUFFER_PID), - )?; - - let accounts = self - .get_program_accounts(&message_buffer_pid, &ScanConfig::new(true)) - .map_err(|_| AccumulatorUpdateError::GetProgramAccounts)?; - - let preimage = b"account:MessageBuffer"; - let mut expected_sighash = [0u8; 8]; - expected_sighash.copy_from_slice(&hashv(&[preimage]).to_bytes()[..8]); - - // Filter accounts that don't match the Anchor sighash. - let accounts = accounts.iter().filter(|(_, account)| { - // Remove accounts that do not start with the expected Anchor sighash. - let mut sighash = [0u8; 8]; - sighash.copy_from_slice(&account.data()[..8]); - sighash == expected_sighash - }); - - // This code, using the offsets in each Account, extracts the various data versions from - // the account. We deduplicate this result because the accumulator expects a set. - let accounts = accounts - .map(|(_, account)| { - let data = account.data(); - let mut cursor = std::io::Cursor::new(&data); - let _sighash = cursor.read_u64::()?; - let _bump = cursor.read_u8()?; - let _version = cursor.read_u8()?; - let header_len = cursor.read_u16::()?; - let mut header_begin = header_len; - let mut inputs = Vec::new(); - let mut cur_end_offsets_idx: usize = 0; - while let Some(end) = cursor.read_u16::().ok() { - if end == 0 || cur_end_offsets_idx == (u8::MAX as usize) { - break; - } - - let end_offset = header_len + end; - if end_offset as usize > data.len() { - break; - } - let accumulator_input_data = &data[header_begin as usize..end_offset as usize]; - inputs.push(accumulator_input_data); - header_begin = end_offset; - cur_end_offsets_idx += 1; - } - - Ok(inputs) - }) - .collect::, std::io::Error>>()? - .into_iter() - .flatten() - .sorted_unstable() - .dedup(); - - // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof - // Set. The derivation includes the ring buffer index to simulate a ring buffer in order - // for RPC users to select the correct proof for an associated VAA. - let (accumulator_account, _) = Pubkey::find_program_address( - &[b"AccumulatorState", &ring_index.to_be_bytes()], - &solana_sdk::system_program::id(), - ); - - let accumulator_data = { - let mut data = vec![]; - let acc_state_magic = &mut b"PAS1".to_vec(); - let accounts_data = - &mut borsh::BorshSerialize::try_to_vec(&accounts.clone().collect::>())?; - data.append(acc_state_magic); - data.append(&mut borsh::BorshSerialize::try_to_vec(&self.slot())?); - data.append(&mut borsh::BorshSerialize::try_to_vec( - &ACCUMULATOR_RING_SIZE, - )?); - data.append(accounts_data); - let owner = solana_sdk::system_program::id(); - let balance = self.get_minimum_balance_for_rent_exemption(data.len()); - let mut account = AccountSharedData::new(balance, data.len(), &owner); - account.set_data(data); - account - }; - - // Generate a Message owned by Wormhole to be sent cross-chain. This short-circuits the - // Wormhole message generation code that would normally be called, but the Guardian - // set filters our messages so this does not pose a security risk. - if let Some(accumulator) = MerkleAccumulator::::from_set(accounts) { - self.post_accumulator_attestation(accumulator, ring_index)?; - } - - // Write the Account Set into `accumulator_state` so that the hermes application can - // request historical data to prove. - info!( - "Accumulator: Writing accumulator state to {:?}", - accumulator_account - ); - self.store_account_and_update_capitalization(&accumulator_account, &accumulator_data); - - Ok(()) - } - - /// TODO: Safe integer conversion checks if any are missed. - fn post_accumulator_attestation( - &self, - acc: pythnet_sdk::accumulators::merkle::MerkleAccumulator< - pythnet_sdk::hashers::keccak256_160::Keccak160, - >, - ring_index: u32, - ) -> std::result::Result<(), AccumulatorUpdateError> { - use { - pythnet_sdk::{ - pythnet, - wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, - ACCUMULATOR_EMITTER_ADDRESS, - }, - solana_sdk::borsh::try_from_slice_unchecked, - }; - - let accumulator_sequence_addr = self.env_pubkey_or( - "ACCUMULATOR_SEQUENCE_ADDR", - Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), - )?; - - let accumulator_emitter_addr = self.env_pubkey_or( - "ACCUMULATOR_EMITTER_ADDR", - Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), - )?; - - // Wormhole uses a Sequence account that is incremented each time a message is posted. As - // we aren't calling Wormhole we need to bump this ourselves. If it doesn't exist, we just - // create it instead. - let mut sequence: AccumulatorSequenceTracker = { - let data = self - .get_account_with_fixed_root(&accumulator_sequence_addr) - .unwrap_or_default(); - let data = data.data(); - solana_sdk::borsh::try_from_slice_unchecked(data) - .unwrap_or(AccumulatorSequenceTracker { sequence: 0 }) - }; - - debug!("Accumulator: accumulator sequence: {:?}", sequence.sequence); - - // Generate the Message to emit via Wormhole. - let message = PostedMessageUnreliableData { - message: if !self - .feature_set - .is_active(&feature_set::zero_wormhole_message_timestamps::id()) - { - MessageData { - vaa_version: 1, - consistency_level: 1, - vaa_time: 1u32, - vaa_signature_account: Pubkey::default().to_bytes(), - submission_time: self.clock().unix_timestamp as u32, - nonce: 0, - sequence: sequence.sequence, - emitter_chain: 26, - emitter_address: accumulator_emitter_addr.to_bytes(), - payload: acc.serialize(self.slot(), ACCUMULATOR_RING_SIZE), - } - } else { - // Use Default::default() to ensure zeroed VAA fields. - MessageData { - vaa_version: 1, - consistency_level: 1, - submission_time: self.clock().unix_timestamp as u32, - sequence: sequence.sequence, - emitter_chain: 26, - emitter_address: accumulator_emitter_addr.to_bytes(), - payload: acc.serialize(self.slot(), ACCUMULATOR_RING_SIZE), - ..Default::default() - } - }, - }; - - debug!("Accumulator: Wormhole message data: {:?}", message.message); - let wormhole_pid = self.env_pubkey_or( - "WORMHOLE_PID", - Pubkey::new_from_array(pythnet::WORMHOLE_PID), - )?; - - // Now we can bump and write the Sequence account. - sequence.sequence += 1; - let sequence = solana_sdk::borsh::BorshSerialize::try_to_vec(&sequence) - .map_err(|_| AccumulatorUpdateError::FailedSequenceSerialization)?; - let sequence_balance = self.get_minimum_balance_for_rent_exemption(sequence.len()); - let sequence_account = { - let owner = &wormhole_pid; - let mut account = AccountSharedData::new(sequence_balance, sequence.len(), owner); - account.set_data(sequence); - account - }; - - // Serialize into (and create if necessary) the message account. - let message = solana_sdk::borsh::BorshSerialize::try_to_vec(&message) - .map_err(|_| AccumulatorUpdateError::FailedMessageSerialization)?; - let message_balance = self.get_minimum_balance_for_rent_exemption(message.len()); - let message_account = { - let owner = &wormhole_pid; - let mut account = AccountSharedData::new(message_balance, message.len(), owner); - account.set_data(message); - account - }; - - // The message_pda derivation includes the ring buffer index to simulate a ring buffer in order - // for RPC users to select the message for an associated VAA. - let (message_pda, _) = Pubkey::find_program_address( - &[b"AccumulatorMessage", &ring_index.to_be_bytes()], - &wormhole_pid, - ); - - self.store_account_and_update_capitalization(&accumulator_sequence_addr, &sequence_account); - - info!("Accumulator: Writing wormhole message to {:?}", message_pda); - self.store_account_and_update_capitalization(&message_pda, &message_account); - - Ok(()) - } - - /// Read the pubkey from the environment variable `var` or return `default` - /// if the variable is not set. - fn env_pubkey_or( - &self, - var: &str, - default: Pubkey, - ) -> std::result::Result { - Ok(std::env::var(var) - .as_deref() - .map(Pubkey::from_str) - .ok() - .transpose()? - .unwrap_or(default)) - } - - /// Get all accumulator related pubkeys from environment variables - /// or return default if the variable is not set. - pub fn get_accumulator_keys( - &self, - ) -> Vec<(&str, std::result::Result)> { - use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; - let accumulator_keys = vec![ - ( - "MESSAGE_BUFFER_PID", - Pubkey::new_from_array(MESSAGE_BUFFER_PID), - ), - // accumulator emitter address should always be the same regardless - // of environment but checking here for completeness - ( - "ACCUMULATOR_EMITTER_ADDR", - Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), - ), - ( - "ACCUMULATOR_SEQUENCE_ADDR", - Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), - ), - ( - "WORMHOLE_PID", - Pubkey::new_from_array(pythnet::WORMHOLE_PID), - ), - ]; - let accumulator_pubkeys: Vec<(&str, std::result::Result)> = - accumulator_keys - .iter() - .map(|(k, d)| (*k, self.env_pubkey_or(k, *d))) - .collect(); - accumulator_pubkeys - } - pub fn clock(&self) -> sysvar::clock::Clock { from_account(&self.get_account(&sysvar::clock::id()).unwrap_or_default()) .unwrap_or_default() @@ -3588,7 +3235,7 @@ impl Bank { // If accumulator move to end of block is active update the accumulator before doing // other tasks when freezing to avoid any conflicts. if accumulator_moved_to_end_of_block { - self.update_accumulator(); + pyth_accumulator::update_accumulator(self); } else { info!( "Accumulator: Skipping accumulating end of block because the feature is disabled. Slot: {}", diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index de58e15206..4125d50362 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -1,10 +1,23 @@ -use std::env::{self, VarError}; +use { + super::Bank, + crate::accounts_index::{ScanConfig, ScanError}, + byteorder::LittleEndian, + itertools::Itertools, + log::*, + solana_sdk::{ + account::{AccountSharedData, ReadableAccount}, + clock::Slot, + feature_set, + hash::hashv, + pubkey::Pubkey, + }, + std::{ + env::{self, VarError}, + str::FromStr, + }, +}; -use solana_sdk::pubkey::Pubkey; - -use crate::accounts_index::{ScanConfig, ScanError}; - -use super::Bank; +pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; #[derive(Debug, thiserror::Error)] pub enum AccumulatorUpdateV2Error { @@ -28,15 +41,375 @@ lazy_static! { }; } -pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateV2Error> { - let Some(oracle_pubkey) = &*ORACLE_PUBKEY else { - return Err(AccumulatorUpdateV2Error::NoOraclePubkey); +/// Accumulator specific error type. It would be nice to use `transaction::Error` but it does +/// not include any `Custom` style variant we can leverage, so we introduce our own. +#[derive(Debug, thiserror::Error)] +pub enum AccumulatorUpdateErrorV1 { + #[error("get_program_accounts failed to return accounts")] + GetProgramAccounts, + + #[error("failed to serialize sequence account")] + FailedSequenceSerialization, + + #[error("failed to serialize message account")] + FailedMessageSerialization, + + #[error("io error")] + Io(#[from] std::io::Error), + + #[error("could not parse Pubkey from environment")] + InvalidEnvPubkey(#[from] solana_sdk::pubkey::ParsePubkeyError), +} + +/// Updates the Accumulator Sysvar at the start of a new slot. See `update_clock` to see a similar +/// sysvar this is based on. +/// +/// Note: +/// - Library imports are placed within this function to keep the diff against upstream small. +/// - This update will incur a performance hit on each slot, so must be kept efficient. +/// - Focused on Merkle for initial release but will generalise to more accumulators in future. +pub fn update_accumulator(bank: &Bank) { + if !bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id()) + { + info!( + "Accumulator: Skipping because the feature is disabled. Slot: {}", + bank.slot() + ); + return; + } + + info!("Accumulator: Updating accumulator. Slot: {}", bank.slot()); + + lazy_static! { + static ref ACCUMULATOR_V2_SLOT: Option = + match std::env::var("PYTH_ACCUMULATOR_V2_FROM_SLOT") { + Ok(value) => Some( + value + .parse() + .expect("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var") + ), + Err(std::env::VarError::NotPresent) => None, + Err(std::env::VarError::NotUnicode(err)) => { + panic!("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var: {err:?}"); + } + }; + } + + if (*ACCUMULATOR_V2_SLOT).map_or(false, |v2_slot| bank.slot() >= v2_slot) { + if let Err(e) = update_v2(bank) { + error!("Error updating accumulator: {:?}", e); + } + } else { + if let Err(e) = update_v1(bank) { + error!("Error updating accumulator: {:?}", e); + } + }; +} + +/// Read the pubkey from the environment variable `var` or return `default` +/// if the variable is not set. +fn env_pubkey_or( + var: &str, + default: Pubkey, +) -> std::result::Result { + Ok(std::env::var(var) + .as_deref() + .map(Pubkey::from_str) + .ok() + .transpose()? + .unwrap_or(default)) +} + +/// Get all accumulator related pubkeys from environment variables +/// or return default if the variable is not set. +pub fn get_accumulator_keys() -> Vec<( + &'static str, + std::result::Result, +)> { + use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; + let accumulator_keys = vec![ + ( + "MESSAGE_BUFFER_PID", + Pubkey::new_from_array(MESSAGE_BUFFER_PID), + ), + // accumulator emitter address should always be the same regardless + // of environment but checking here for completeness + ( + "ACCUMULATOR_EMITTER_ADDR", + Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), + ), + ( + "ACCUMULATOR_SEQUENCE_ADDR", + Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), + ), + ( + "WORMHOLE_PID", + Pubkey::new_from_array(pythnet::WORMHOLE_PID), + ), + ]; + let accumulator_pubkeys: Vec<(&str, std::result::Result)> = + accumulator_keys + .iter() + .map(|(k, d)| (*k, env_pubkey_or(k, *d))) + .collect(); + accumulator_pubkeys +} + +pub fn update_v1(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { + use { + byteorder::ReadBytesExt, + pythnet_sdk::{ + accumulators::{merkle::MerkleAccumulator, Accumulator}, + hashers::keccak256_160::Keccak160, + MESSAGE_BUFFER_PID, + }, + solana_sdk::borsh, }; + // Use the current Clock to determine the index into the accumulator ring buffer. + let ring_index = (bank.slot() % 10_000) as u32; + + // Find all accounts owned by the Message Buffer program using get_program_accounts, and + // extract the account data. + let message_buffer_pid = env_pubkey_or( + "MESSAGE_BUFFER_PID", + Pubkey::new_from_array(MESSAGE_BUFFER_PID), + )?; + let accounts = bank - .get_program_accounts(oracle_pubkey, &ScanConfig::new(true)) + .get_program_accounts(&message_buffer_pid, &ScanConfig::new(true)) + .map_err(|_| AccumulatorUpdateErrorV1::GetProgramAccounts)?; + + let preimage = b"account:MessageBuffer"; + let mut expected_sighash = [0u8; 8]; + expected_sighash.copy_from_slice(&hashv(&[preimage]).to_bytes()[..8]); + + // Filter accounts that don't match the Anchor sighash. + let accounts = accounts.iter().filter(|(_, account)| { + // Remove accounts that do not start with the expected Anchor sighash. + let mut sighash = [0u8; 8]; + sighash.copy_from_slice(&account.data()[..8]); + sighash == expected_sighash + }); + + // This code, using the offsets in each Account, extracts the various data versions from + // the account. We deduplicate this result because the accumulator expects a set. + let accounts = accounts + .map(|(_, account)| { + let data = account.data(); + let mut cursor = std::io::Cursor::new(&data); + let _sighash = cursor.read_u64::()?; + let _bump = cursor.read_u8()?; + let _version = cursor.read_u8()?; + let header_len = cursor.read_u16::()?; + let mut header_begin = header_len; + let mut inputs = Vec::new(); + let mut cur_end_offsets_idx: usize = 0; + while let Some(end) = cursor.read_u16::().ok() { + if end == 0 || cur_end_offsets_idx == (u8::MAX as usize) { + break; + } + + let end_offset = header_len + end; + if end_offset as usize > data.len() { + break; + } + let accumulator_input_data = &data[header_begin as usize..end_offset as usize]; + inputs.push(accumulator_input_data); + header_begin = end_offset; + cur_end_offsets_idx += 1; + } + + Ok(inputs) + }) + .collect::, std::io::Error>>()? + .into_iter() + .flatten() + .sorted_unstable() + .dedup(); + + // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof + // Set. The derivation includes the ring buffer index to simulate a ring buffer in order + // for RPC users to select the correct proof for an associated VAA. + let (accumulator_account, _) = Pubkey::find_program_address( + &[b"AccumulatorState", &ring_index.to_be_bytes()], + &solana_sdk::system_program::id(), + ); + + let accumulator_data = { + let mut data = vec![]; + let acc_state_magic = &mut b"PAS1".to_vec(); + let accounts_data = + &mut borsh::BorshSerialize::try_to_vec(&accounts.clone().collect::>())?; + data.append(acc_state_magic); + data.append(&mut borsh::BorshSerialize::try_to_vec(&bank.slot())?); + data.append(&mut borsh::BorshSerialize::try_to_vec( + &ACCUMULATOR_RING_SIZE, + )?); + data.append(accounts_data); + let owner = solana_sdk::system_program::id(); + let balance = bank.get_minimum_balance_for_rent_exemption(data.len()); + let mut account = AccountSharedData::new(balance, data.len(), &owner); + account.set_data(data); + account + }; + + // Generate a Message owned by Wormhole to be sent cross-chain. This short-circuits the + // Wormhole message generation code that would normally be called, but the Guardian + // set filters our messages so this does not pose a security risk. + if let Some(accumulator) = MerkleAccumulator::::from_set(accounts) { + post_accumulator_attestation(bank, accumulator, ring_index)?; + } + + // Write the Account Set into `accumulator_state` so that the hermes application can + // request historical data to prove. + info!( + "Accumulator: Writing accumulator state to {:?}", + accumulator_account + ); + bank.store_account_and_update_capitalization(&accumulator_account, &accumulator_data); + + Ok(()) +} + +/// TODO: Safe integer conversion checks if any are missed. +fn post_accumulator_attestation( + bank: &Bank, + acc: pythnet_sdk::accumulators::merkle::MerkleAccumulator< + pythnet_sdk::hashers::keccak256_160::Keccak160, + >, + ring_index: u32, +) -> std::result::Result<(), AccumulatorUpdateErrorV1> { + use { + pythnet_sdk::{ + pythnet, + wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, + ACCUMULATOR_EMITTER_ADDRESS, + }, + solana_sdk::borsh::try_from_slice_unchecked, + }; + + let accumulator_sequence_addr = env_pubkey_or( + "ACCUMULATOR_SEQUENCE_ADDR", + Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), + )?; + + let accumulator_emitter_addr = env_pubkey_or( + "ACCUMULATOR_EMITTER_ADDR", + Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), + )?; + + // Wormhole uses a Sequence account that is incremented each time a message is posted. As + // we aren't calling Wormhole we need to bump this ourselves. If it doesn't exist, we just + // create it instead. + let mut sequence: AccumulatorSequenceTracker = { + let data = bank + .get_account_with_fixed_root(&accumulator_sequence_addr) + .unwrap_or_default(); + let data = data.data(); + solana_sdk::borsh::try_from_slice_unchecked(data) + .unwrap_or(AccumulatorSequenceTracker { sequence: 0 }) + }; + + debug!("Accumulator: accumulator sequence: {:?}", sequence.sequence); + + // Generate the Message to emit via Wormhole. + let message = PostedMessageUnreliableData { + message: if !bank + .feature_set + .is_active(&feature_set::zero_wormhole_message_timestamps::id()) + { + MessageData { + vaa_version: 1, + consistency_level: 1, + vaa_time: 1u32, + vaa_signature_account: Pubkey::default().to_bytes(), + submission_time: bank.clock().unix_timestamp as u32, + nonce: 0, + sequence: sequence.sequence, + emitter_chain: 26, + emitter_address: accumulator_emitter_addr.to_bytes(), + payload: acc.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), + } + } else { + // Use Default::default() to ensure zeroed VAA fields. + MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: sequence.sequence, + emitter_chain: 26, + emitter_address: accumulator_emitter_addr.to_bytes(), + payload: acc.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), + ..Default::default() + } + }, + }; + + debug!("Accumulator: Wormhole message data: {:?}", message.message); + let wormhole_pid = env_pubkey_or( + "WORMHOLE_PID", + Pubkey::new_from_array(pythnet::WORMHOLE_PID), + )?; + + // Now we can bump and write the Sequence account. + sequence.sequence += 1; + let sequence = solana_sdk::borsh::BorshSerialize::try_to_vec(&sequence) + .map_err(|_| AccumulatorUpdateErrorV1::FailedSequenceSerialization)?; + let sequence_balance = bank.get_minimum_balance_for_rent_exemption(sequence.len()); + let sequence_account = { + let owner = &wormhole_pid; + let mut account = AccountSharedData::new(sequence_balance, sequence.len(), owner); + account.set_data(sequence); + account + }; + + // Serialize into (and create if necessary) the message account. + let message = solana_sdk::borsh::BorshSerialize::try_to_vec(&message) + .map_err(|_| AccumulatorUpdateErrorV1::FailedMessageSerialization)?; + let message_balance = bank.get_minimum_balance_for_rent_exemption(message.len()); + let message_account = { + let owner = &wormhole_pid; + let mut account = AccountSharedData::new(message_balance, message.len(), owner); + account.set_data(message); + account + }; + + // The message_pda derivation includes the ring buffer index to simulate a ring buffer in order + // for RPC users to select the message for an associated VAA. + let (message_pda, _) = Pubkey::find_program_address( + &[b"AccumulatorMessage", &ring_index.to_be_bytes()], + &wormhole_pid, + ); + + bank.store_account_and_update_capitalization(&accumulator_sequence_addr, &sequence_account); + + info!("Accumulator: Writing wormhole message to {:?}", message_pda); + bank.store_account_and_update_capitalization(&message_pda, &message_account); + + Ok(()) +} + +pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateV2Error> { + // 1. Find Oracle + let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateV2Error::NoOraclePubkey)?; + + // 2. Find Oracle Accounts + let accounts = bank + .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) .map_err(AccumulatorUpdateV2Error::GetProgramAccounts)?; - //... + // 3. Filter for Price Accounts + let accounts = accounts.iter().filter(|(_, account)| true); + + // 4. Pass the PriceAccounts to the Oracle Code + // - Change Oracle to not run update code. + // - Change Oracle to have the aggregation code itself as a pure function. + // - Call aggregation with PriceAccount as input. + // 5. Merkleize the results. + // 6. Create Wormhole Message Account + Ok(()) } diff --git a/sdk/program/src/account_info.rs b/sdk/program/src/account_info.rs index b78fdbcb47..3652e2251e 100644 --- a/sdk/program/src/account_info.rs +++ b/sdk/program/src/account_info.rs @@ -184,7 +184,6 @@ impl<'a> AccountInfo<'a> { pub fn assign(&self, new_owner: &Pubkey) { // Set the non-mut owner field unsafe { - #[allow(invalid_reference_casting)] std::ptr::write_volatile( self.owner as *const Pubkey as *mut [u8; 32], new_owner.to_bytes(), From 266b7b15e305f98bbc5a5b2ee485e2d03ebfb6f7 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Fri, 5 Jul 2024 18:27:20 +0100 Subject: [PATCH 03/19] chore: fix some warnings and fix validator build --- Cargo.lock | 74 +++++++++++++++++++--------- core/src/validator.rs | 16 +++--- ledger/src/blockstore.rs | 2 + runtime/src/bank.rs | 3 +- runtime/src/bank/pyth_accumulator.rs | 19 +++---- 5 files changed, 70 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0ec72be96c..637efb097f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,7 +282,7 @@ checksum = "47594e438a243791dba58124b6669561f5baa14cb12046641d8008bf035e5a25" dependencies = [ "async-trait", "axum-core", - "bitflags", + "bitflags 1.3.2", "bytes", "futures-util", "http", @@ -366,7 +366,7 @@ version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "clap 3.1.8", @@ -383,6 +383,26 @@ dependencies = [ "which", ] +[[package]] +name = "bindgen" +version = "0.64.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2 1.0.86", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 1.0.109", +] + [[package]] name = "bit-set" version = "0.5.2" @@ -404,6 +424,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "bytemuck", +] + [[package]] name = "bitmaps" version = "2.1.0" @@ -807,7 +836,7 @@ checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -821,7 +850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71c47df61d9e16dc010b55dba1952a57d8c215dbb533fd13cdd13369aac73b1c" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_derive", "indexmap", "lazy_static", @@ -1881,7 +1910,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" dependencies = [ "base64 0.13.0", - "bitflags", + "bitflags 1.3.2", "bytes", "headers-core", "http", @@ -2433,11 +2462,11 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "librocksdb-sys" -version = "0.8.0+7.4.4" +version = "0.8.3+7.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611804e4666a25136fcc5f8cf425ab4d26c7f74ea245ffe92ea23b85b6420b5d" +checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" dependencies = [ - "bindgen", + "bindgen 0.64.0", "bzip2-sys", "cc", "glob", @@ -2728,7 +2757,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset", @@ -2932,7 +2961,7 @@ version = "0.10.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -3396,7 +3425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0d9cc07f18492d879586c92b485def06bc850da3118075cd45d50e9c95b0e5" dependencies = [ "bit-set", - "bitflags", + "bitflags 1.3.2", "byteorder", "lazy_static", "num-traits", @@ -3528,7 +3557,8 @@ dependencies = [ name = "pyth-oracle" version = "2.26.0" dependencies = [ - "bindgen", + "bindgen 0.60.1", + "bitflags 2.6.0", "bytemuck", "byteorder", "num-derive", @@ -3855,7 +3885,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -4041,7 +4071,7 @@ version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb617eb09c4ef1536405e357e3b63f39e3ab4cc2159db05395278ad5c352bb16" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -4223,7 +4253,7 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -5528,7 +5558,7 @@ version = "1.14.174" dependencies = [ "assert_matches", "bincode", - "bitflags", + "bitflags 1.3.2", "bs58", "byteorder", "chrono", @@ -5843,7 +5873,7 @@ checksum = "d66c02ad6002fbe7903ec96edd16352fe7964d3ee43b02053112f5304529849f" dependencies = [ "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "blake3", "borsh", "borsh-derive", @@ -5892,7 +5922,7 @@ dependencies = [ "assert_matches", "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "blake3", "borsh", "borsh-derive", @@ -6166,7 +6196,7 @@ dependencies = [ "assert_matches", "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "borsh", "bs58", "bytemuck", @@ -6216,7 +6246,7 @@ dependencies = [ "assert_matches", "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "borsh", "bs58", "bytemuck", @@ -6988,7 +7018,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1123645dfaf2b5eac6b6c88addafc359c789b8ef2a770ecaef758c1ddf363ea4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "thiserror", @@ -7521,7 +7551,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", diff --git a/core/src/validator.rs b/core/src/validator.rs index 79a0162f22..4c7fef4e21 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -1,6 +1,7 @@ //! The `validator` module hosts all the validator microservices. pub use solana_perf::report_target_features; +use solana_runtime::bank::pyth_accumulator; use { crate::{ accounts_hash_verifier::AccountsHashVerifier, @@ -1521,15 +1522,12 @@ fn load_blockstore( } } - { - let bank = bank_forks.write().unwrap().working_bank(); - for (key_name, pk_res) in bank.get_accumulator_keys() { - match pk_res { - Ok(pk) => info!("Accumulator {}: {}", key_name, pk), - Err(err) => { - error!("Failed to get Accumulator {}: {:?}", key_name, err); - std::process::abort(); - } + for (key_name, pk_res) in pyth_accumulator::get_accumulator_keys() { + match pk_res { + Ok(pk) => info!("Accumulator {}: {}", key_name, pk), + Err(err) => { + error!("Failed to get Accumulator {}: {:?}", key_name, err); + std::process::abort(); } } } diff --git a/ledger/src/blockstore.rs b/ledger/src/blockstore.rs index 2f0f799aa0..d7bcd29bdb 100644 --- a/ledger/src/blockstore.rs +++ b/ledger/src/blockstore.rs @@ -4323,11 +4323,13 @@ pub fn make_chaining_slot_entries( } #[cfg(not(unix))] +#[allow(dead_code)] // No longer called. fn adjust_ulimit_nofile(_enforce_ulimit_nofile: bool) -> Result<()> { Ok(()) } #[cfg(unix)] +#[allow(dead_code)] // No longer called. fn adjust_ulimit_nofile(enforce_ulimit_nofile: bool) -> Result<()> { // Rocks DB likes to have many open files. The default open file descriptor limit is // usually not enough diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index ce98dae1b9..9254625cff 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -158,7 +158,6 @@ use { ops::{Deref, RangeInclusive}, path::PathBuf, rc::Rc, - str::FromStr, sync::{ atomic::{ AtomicBool, AtomicI64, AtomicU64, AtomicUsize, @@ -199,7 +198,7 @@ mod builtin_programs; mod sysvar_cache; mod transaction_account_state_info; -mod pyth_accumulator; +pub mod pyth_accumulator; pub const SECONDS_PER_YEAR: f64 = 365.25 * 24.0 * 60.0 * 60.0; diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 4125d50362..dcf4ef0477 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -20,7 +20,7 @@ use { pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; #[derive(Debug, thiserror::Error)] -pub enum AccumulatorUpdateV2Error { +pub enum AccumulatorUpdateErrorV2 { #[error("no oracle pubkey")] NoOraclePubkey, #[error("get_program_accounts failed to return accounts: {0}")] @@ -282,13 +282,10 @@ fn post_accumulator_attestation( >, ring_index: u32, ) -> std::result::Result<(), AccumulatorUpdateErrorV1> { - use { - pythnet_sdk::{ - pythnet, - wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, - ACCUMULATOR_EMITTER_ADDRESS, - }, - solana_sdk::borsh::try_from_slice_unchecked, + use pythnet_sdk::{ + pythnet, + wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, + ACCUMULATOR_EMITTER_ADDRESS, }; let accumulator_sequence_addr = env_pubkey_or( @@ -392,14 +389,14 @@ fn post_accumulator_attestation( Ok(()) } -pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateV2Error> { +pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV2> { // 1. Find Oracle - let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateV2Error::NoOraclePubkey)?; + let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateErrorV2::NoOraclePubkey)?; // 2. Find Oracle Accounts let accounts = bank .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) - .map_err(AccumulatorUpdateV2Error::GetProgramAccounts)?; + .map_err(AccumulatorUpdateErrorV2::GetProgramAccounts)?; // 3. Filter for Price Accounts let accounts = accounts.iter().filter(|(_, account)| true); From 62b19ab40d10dc22b4ef4d3d43c7c1ef78d80653 Mon Sep 17 00:00:00 2001 From: Reisen Date: Mon, 8 Jul 2024 08:24:56 +0000 Subject: [PATCH 04/19] feat: accumulator v2 (wip 3) --- Cargo.lock | 1 + runtime/Cargo.toml | 2 +- runtime/src/bank/pyth_accumulator.rs | 27 +++++++++++++++++++++------ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 637efb097f..58a5932bdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3565,6 +3565,7 @@ dependencies = [ "num-traits", "pythnet-sdk 1.13.6 (git+https://github.com/pyth-network/pyth-crosschain?rev=60144002053a93f424be70decd8a8ccb8d618d81)", "solana-program 1.14.17", + "solana-sdk 1.14.17", "thiserror", ] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 9e6b8d0272..46c61e480c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,7 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" -pyth-oracle = { path = "../../pyth-client/program/rust" } +pyth-oracle = { path = "../../pyth-client/program/rust", features = ["library"] } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index dcf4ef0477..2b37f4ac0a 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -97,6 +97,7 @@ pub fn update_accumulator(bank: &Bank) { }; } + // TODO: No longer a slot or feature flag, based on price account flag. if (*ACCUMULATOR_V2_SLOT).map_or(false, |v2_slot| bank.slot() >= v2_slot) { if let Err(e) = update_v2(bank) { error!("Error updating accumulator: {:?}", e); @@ -398,14 +399,28 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV2::GetProgramAccounts)?; - // 3. Filter for Price Accounts - let accounts = accounts.iter().filter(|(_, account)| true); + // 3. Call Aggregation on Price Accounts. + for (pubkey, mut account) in accounts { + let mut price_account_data = account.data().to_owned(); + + // Perform Accumulation + match pyth_oracle::validator::aggregate_price( + bank.slot(), + bank.clock().unix_timestamp, + &mut price_account_data, + ) { + Ok(success) => { + if success { + account.set_data(price_account_data); + bank.store_account_and_update_capitalization(&pubkey, &account); + } + } + Err(err) => trace!("Aggregation: failed to update_price_cumulative, {:?}", err), + } + } - // 4. Pass the PriceAccounts to the Oracle Code - // - Change Oracle to not run update code. - // - Change Oracle to have the aggregation code itself as a pure function. - // - Call aggregation with PriceAccount as input. // 5. Merkleize the results. + // 6. Create Wormhole Message Account Ok(()) From 0582205e3a33c069ece8e1eaa7d785dfe98ac400 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Mon, 8 Jul 2024 13:47:20 +0100 Subject: [PATCH 05/19] feat: skip message buffer aggregation if all price feeds use v2 aggregation --- runtime/src/bank/pyth_accumulator.rs | 188 +++++++++++++-------------- 1 file changed, 92 insertions(+), 96 deletions(-) diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 2b37f4ac0a..d5d31ea56d 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -4,9 +4,9 @@ use { byteorder::LittleEndian, itertools::Itertools, log::*, + pyth_oracle::validator::AggregationError, solana_sdk::{ account::{AccountSharedData, ReadableAccount}, - clock::Slot, feature_set, hash::hashv, pubkey::Pubkey, @@ -19,14 +19,6 @@ use { pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; -#[derive(Debug, thiserror::Error)] -pub enum AccumulatorUpdateErrorV2 { - #[error("no oracle pubkey")] - NoOraclePubkey, - #[error("get_program_accounts failed to return accounts: {0}")] - GetProgramAccounts(#[from] ScanError), -} - lazy_static! { static ref ORACLE_PUBKEY: Option = match env::var("PYTH_ORACLE_PUBKEY") { Ok(value) => Some( @@ -45,8 +37,8 @@ lazy_static! { /// not include any `Custom` style variant we can leverage, so we introduce our own. #[derive(Debug, thiserror::Error)] pub enum AccumulatorUpdateErrorV1 { - #[error("get_program_accounts failed to return accounts")] - GetProgramAccounts, + #[error("get_program_accounts failed to return accounts: {0}")] + GetProgramAccounts(#[from] ScanError), #[error("failed to serialize sequence account")] FailedSequenceSerialization, @@ -59,6 +51,9 @@ pub enum AccumulatorUpdateErrorV1 { #[error("could not parse Pubkey from environment")] InvalidEnvPubkey(#[from] solana_sdk::pubkey::ParsePubkeyError), + + #[error("no oracle pubkey")] + NoOraclePubkey, } /// Updates the Accumulator Sysvar at the start of a new slot. See `update_clock` to see a similar @@ -82,31 +77,9 @@ pub fn update_accumulator(bank: &Bank) { info!("Accumulator: Updating accumulator. Slot: {}", bank.slot()); - lazy_static! { - static ref ACCUMULATOR_V2_SLOT: Option = - match std::env::var("PYTH_ACCUMULATOR_V2_FROM_SLOT") { - Ok(value) => Some( - value - .parse() - .expect("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var") - ), - Err(std::env::VarError::NotPresent) => None, - Err(std::env::VarError::NotUnicode(err)) => { - panic!("invalid value of PYTH_ACCUMULATOR_V2_FROM_SLOT env var: {err:?}"); - } - }; + if let Err(e) = update_v2(bank) { + error!("Error updating accumulator v2: {:?}", e); } - - // TODO: No longer a slot or feature flag, based on price account flag. - if (*ACCUMULATOR_V2_SLOT).map_or(false, |v2_slot| bank.slot() >= v2_slot) { - if let Err(e) = update_v2(bank) { - error!("Error updating accumulator: {:?}", e); - } - } else { - if let Err(e) = update_v1(bank) { - error!("Error updating accumulator: {:?}", e); - } - }; } /// Read the pubkey from the environment variable `var` or return `default` @@ -158,7 +131,11 @@ pub fn get_accumulator_keys() -> Vec<( accumulator_pubkeys } -pub fn update_v1(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { +pub fn update_v1( + bank: &Bank, + v2_messages: Vec<&[u8]>, + use_message_buffers: bool, +) -> std::result::Result<(), AccumulatorUpdateErrorV1> { use { byteorder::ReadBytesExt, pythnet_sdk::{ @@ -179,57 +156,66 @@ pub fn update_v1(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV Pubkey::new_from_array(MESSAGE_BUFFER_PID), )?; - let accounts = bank - .get_program_accounts(&message_buffer_pid, &ScanConfig::new(true)) - .map_err(|_| AccumulatorUpdateErrorV1::GetProgramAccounts)?; - - let preimage = b"account:MessageBuffer"; - let mut expected_sighash = [0u8; 8]; - expected_sighash.copy_from_slice(&hashv(&[preimage]).to_bytes()[..8]); - - // Filter accounts that don't match the Anchor sighash. - let accounts = accounts.iter().filter(|(_, account)| { - // Remove accounts that do not start with the expected Anchor sighash. - let mut sighash = [0u8; 8]; - sighash.copy_from_slice(&account.data()[..8]); - sighash == expected_sighash - }); - - // This code, using the offsets in each Account, extracts the various data versions from - // the account. We deduplicate this result because the accumulator expects a set. - let accounts = accounts - .map(|(_, account)| { - let data = account.data(); - let mut cursor = std::io::Cursor::new(&data); - let _sighash = cursor.read_u64::()?; - let _bump = cursor.read_u8()?; - let _version = cursor.read_u8()?; - let header_len = cursor.read_u16::()?; - let mut header_begin = header_len; - let mut inputs = Vec::new(); - let mut cur_end_offsets_idx: usize = 0; - while let Some(end) = cursor.read_u16::().ok() { - if end == 0 || cur_end_offsets_idx == (u8::MAX as usize) { - break; + let message_buffer_accounts; + let v1_messages = if use_message_buffers { + message_buffer_accounts = bank + .get_program_accounts(&message_buffer_pid, &ScanConfig::new(true)) + .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; + + let preimage = b"account:MessageBuffer"; + let mut expected_sighash = [0u8; 8]; + expected_sighash.copy_from_slice(&hashv(&[preimage]).to_bytes()[..8]); + + // Filter accounts that don't match the Anchor sighash. + let message_buffer_accounts = message_buffer_accounts.iter().filter(|(_, account)| { + // Remove accounts that do not start with the expected Anchor sighash. + let mut sighash = [0u8; 8]; + sighash.copy_from_slice(&account.data()[..8]); + sighash == expected_sighash + }); + + // This code, using the offsets in each Account, extracts the various data versions from + // the account. We deduplicate this result because the accumulator expects a set. + message_buffer_accounts + .map(|(_, account)| { + let data = account.data(); + let mut cursor = std::io::Cursor::new(&data); + let _sighash = cursor.read_u64::()?; + let _bump = cursor.read_u8()?; + let _version = cursor.read_u8()?; + let header_len = cursor.read_u16::()?; + let mut header_begin = header_len; + let mut inputs = Vec::new(); + let mut cur_end_offsets_idx: usize = 0; + while let Some(end) = cursor.read_u16::().ok() { + if end == 0 || cur_end_offsets_idx == (u8::MAX as usize) { + break; + } + + let end_offset = header_len + end; + if end_offset as usize > data.len() { + break; + } + let accumulator_input_data = &data[header_begin as usize..end_offset as usize]; + inputs.push(accumulator_input_data); + header_begin = end_offset; + cur_end_offsets_idx += 1; } - let end_offset = header_len + end; - if end_offset as usize > data.len() { - break; - } - let accumulator_input_data = &data[header_begin as usize..end_offset as usize]; - inputs.push(accumulator_input_data); - header_begin = end_offset; - cur_end_offsets_idx += 1; - } + Ok(inputs) + }) + .collect::, std::io::Error>>()? + .into_iter() + .flatten() + .sorted_unstable() + .dedup() + .collect() + } else { + Vec::new() + }; - Ok(inputs) - }) - .collect::, std::io::Error>>()? - .into_iter() - .flatten() - .sorted_unstable() - .dedup(); + let mut messages = v1_messages; + messages.extend(v2_messages); // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof // Set. The derivation includes the ring buffer index to simulate a ring buffer in order @@ -242,8 +228,7 @@ pub fn update_v1(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV let accumulator_data = { let mut data = vec![]; let acc_state_magic = &mut b"PAS1".to_vec(); - let accounts_data = - &mut borsh::BorshSerialize::try_to_vec(&accounts.clone().collect::>())?; + let accounts_data = &mut borsh::BorshSerialize::try_to_vec(&messages)?; data.append(acc_state_magic); data.append(&mut borsh::BorshSerialize::try_to_vec(&bank.slot())?); data.append(&mut borsh::BorshSerialize::try_to_vec( @@ -260,7 +245,7 @@ pub fn update_v1(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV // Generate a Message owned by Wormhole to be sent cross-chain. This short-circuits the // Wormhole message generation code that would normally be called, but the Guardian // set filters our messages so this does not pose a security risk. - if let Some(accumulator) = MerkleAccumulator::::from_set(accounts) { + if let Some(accumulator) = MerkleAccumulator::::from_set(messages.into_iter()) { post_accumulator_attestation(bank, accumulator, ring_index)?; } @@ -390,14 +375,16 @@ fn post_accumulator_attestation( Ok(()) } -pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV2> { +pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { // 1. Find Oracle - let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateErrorV2::NoOraclePubkey)?; + let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateErrorV1::NoOraclePubkey)?; // 2. Find Oracle Accounts let accounts = bank .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) - .map_err(AccumulatorUpdateErrorV2::GetProgramAccounts)?; + .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; + + let mut any_legacy_mode = false; // 3. Call Aggregation on Price Accounts. for (pubkey, mut account) in accounts { @@ -409,16 +396,25 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV bank.clock().unix_timestamp, &mut price_account_data, ) { - Ok(success) => { - if success { - account.set_data(price_account_data); - bank.store_account_and_update_capitalization(&pubkey, &account); - } + Ok(()) => { + account.set_data(price_account_data); + bank.store_account_and_update_capitalization(&pubkey, &account); } - Err(err) => trace!("Aggregation: failed to update_price_cumulative, {:?}", err), + Err(err) => match err { + AggregationError::NotPriceFeedAccount => {} + AggregationError::LegacyAggregationMode => { + any_legacy_mode = true; + } + AggregationError::NotTradingStatus => { + trace!("Aggregation: failed to update_price_cumulative, {:?}", err); + } + }, } } + // TODO: make new messages + update_v1(bank, Vec::new(), any_legacy_mode)?; + // 5. Merkleize the results. // 6. Create Wormhole Message Account From c7e3834e82fe49e6dfe4d89663a00f4526933ba7 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Mon, 8 Jul 2024 14:40:02 +0100 Subject: [PATCH 06/19] feat: combine v1 and v2 aggregation price feed messages in the merkle tree --- runtime/src/bank/pyth_accumulator.rs | 34 ++++++++++++++++------------ 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index d5d31ea56d..3167f5cc17 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -131,9 +131,9 @@ pub fn get_accumulator_keys() -> Vec<( accumulator_pubkeys } -pub fn update_v1( +pub fn update_v1<'a>( bank: &Bank, - v2_messages: Vec<&[u8]>, + v2_messages: Vec<&'a [u8]>, use_message_buffers: bool, ) -> std::result::Result<(), AccumulatorUpdateErrorV1> { use { @@ -214,8 +214,8 @@ pub fn update_v1( Vec::new() }; - let mut messages = v1_messages; - messages.extend(v2_messages); + let mut messages = v2_messages; + messages.extend(v1_messages); // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof // Set. The derivation includes the ring buffer index to simulate a ring buffer in order @@ -384,7 +384,8 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; - let mut any_legacy_mode = false; + let mut any_v1_aggregations = false; + let mut v2_messages = Vec::new(); // 3. Call Aggregation on Price Accounts. for (pubkey, mut account) in accounts { @@ -394,26 +395,31 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV match pyth_oracle::validator::aggregate_price( bank.slot(), bank.clock().unix_timestamp, + &pubkey.to_bytes().into(), &mut price_account_data, ) { - Ok(()) => { - account.set_data(price_account_data); - bank.store_account_and_update_capitalization(&pubkey, &account); + Ok(outcome) => { + if outcome.commit { + account.set_data(price_account_data); + bank.store_account_and_update_capitalization(&pubkey, &account); + } + v2_messages.extend(outcome.messages); } Err(err) => match err { AggregationError::NotPriceFeedAccount => {} - AggregationError::LegacyAggregationMode => { - any_legacy_mode = true; - } - AggregationError::NotTradingStatus => { - trace!("Aggregation: failed to update_price_cumulative, {:?}", err); + AggregationError::V1AggregationMode => { + any_v1_aggregations = true; } }, } } // TODO: make new messages - update_v1(bank, Vec::new(), any_legacy_mode)?; + update_v1( + bank, + v2_messages.iter().map(|x| &**x).collect(), + any_v1_aggregations, + )?; // 5. Merkleize the results. From 4e730d09e311f95946301c522ca36a58ae278dc9 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Tue, 9 Jul 2024 10:07:28 +0100 Subject: [PATCH 07/19] refactor: clean up and avoid extra vector --- Cargo.lock | 1 + runtime/Cargo.toml | 2 +- runtime/src/bank/pyth_accumulator.rs | 22 ++++------------------ 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 58a5932bdc..2c7ea1b08d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3556,6 +3556,7 @@ dependencies = [ [[package]] name = "pyth-oracle" version = "2.26.0" +source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#27212eeda219b5d8d5d7c1e128fc2dd407861a8a" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 46c61e480c..3c62e70df8 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,7 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" -pyth-oracle = { path = "../../pyth-client/program/rust", features = ["library"] } +pyth-oracle = { git = "https://github.com/pyth-network/pyth-client", branch = "accumulator-v2", features = ["library"] } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 3167f5cc17..146e71a2cf 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -133,7 +133,7 @@ pub fn get_accumulator_keys() -> Vec<( pub fn update_v1<'a>( bank: &Bank, - v2_messages: Vec<&'a [u8]>, + v2_messages: &[Vec], use_message_buffers: bool, ) -> std::result::Result<(), AccumulatorUpdateErrorV1> { use { @@ -214,8 +214,8 @@ pub fn update_v1<'a>( Vec::new() }; - let mut messages = v2_messages; - messages.extend(v1_messages); + let mut messages = v1_messages; + messages.extend(v2_messages.iter().map(|x| &**x)); // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof // Set. The derivation includes the ring buffer index to simulate a ring buffer in order @@ -376,10 +376,8 @@ fn post_accumulator_attestation( } pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { - // 1. Find Oracle let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateErrorV1::NoOraclePubkey)?; - // 2. Find Oracle Accounts let accounts = bank .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; @@ -387,7 +385,6 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV let mut any_v1_aggregations = false; let mut v2_messages = Vec::new(); - // 3. Call Aggregation on Price Accounts. for (pubkey, mut account) in accounts { let mut price_account_data = account.data().to_owned(); @@ -414,16 +411,5 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV } } - // TODO: make new messages - update_v1( - bank, - v2_messages.iter().map(|x| &**x).collect(), - any_v1_aggregations, - )?; - - // 5. Merkleize the results. - - // 6. Create Wormhole Message Account - - Ok(()) + update_v1(bank, &v2_messages, any_v1_aggregations) } From c64a43b5fcf6599815ba9f77b610631c23ee1b8c Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 10 Jul 2024 17:23:23 +0100 Subject: [PATCH 08/19] fix: don't aggregate if already aggregated in the program --- Cargo.lock | 2 +- runtime/src/bank/pyth_accumulator.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c7ea1b08d..72e8a040e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3556,7 +3556,7 @@ dependencies = [ [[package]] name = "pyth-oracle" version = "2.26.0" -source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#27212eeda219b5d8d5d7c1e128fc2dd407861a8a" +source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#f0ac2678d738d659ea4ef94f1db81e7d7e439183" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 146e71a2cf..17ecb155fd 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -404,7 +404,7 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV } Err(err) => match err { AggregationError::NotPriceFeedAccount => {} - AggregationError::V1AggregationMode => { + AggregationError::V1AggregationMode | AggregationError::AlreadyAggregated => { any_v1_aggregations = true; } }, From 159a5ed698f86f1b94ea231bcc2c33e7aaf65c03 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 10 Jul 2024 18:02:11 +0100 Subject: [PATCH 09/19] test: bring back old pyth tests (wip) --- runtime/src/bank.rs | 3 + runtime/src/bank/pyth_accumulator_tests.rs | 646 +++++++++++++++++++++ 2 files changed, 649 insertions(+) create mode 100644 runtime/src/bank/pyth_accumulator_tests.rs diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 9254625cff..f81ab66a35 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -200,6 +200,9 @@ mod transaction_account_state_info; pub mod pyth_accumulator; +#[cfg(test)] +mod pyth_accumulator_tests; + pub const SECONDS_PER_YEAR: f64 = 365.25 * 24.0 * 60.0 * 60.0; pub const MAX_LEADER_SCHEDULE_STAKES: Epoch = 5; diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs new file mode 100644 index 0000000000..53af505c12 --- /dev/null +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -0,0 +1,646 @@ +use crate::{ + bank::{ + pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE}, + Bank, + }, + genesis_utils::{create_genesis_config_with_leader, GenesisConfigInfo}, +}; +use byteorder::ByteOrder; +use byteorder::{LittleEndian, ReadBytesExt}; +use itertools::Itertools; +use pythnet_sdk::{ + accumulators::{merkle::MerkleAccumulator, Accumulator}, + hashers::{keccak256_160::Keccak160, Hasher}, + wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, + ACCUMULATOR_EMITTER_ADDRESS, +}; +use solana_sdk::{ + account::{AccountSharedData, ReadableAccount, WritableAccount}, + borsh::{BorshDeserialize, BorshSerialize}, + epoch_schedule::EpochSchedule, + feature::{self, Feature}, + feature_set, + hash::hashv, + pubkey::Pubkey, + signature::keypair_from_seed, + signer::Signer, +}; +use std::{io::Read, sync::Arc}; + +// Create Message Account Bytes +// +// NOTE: This was serialized by hand, but should be replaced with the pythnet-sdk +// serializer once implemented. +fn create_message_buffer_bytes(msgs: Vec>) -> Vec { + let mut buffer = Vec::new(); + let preimage = b"account:MessageBuffer"; + buffer.extend_from_slice(&hashv(&[preimage]).to_bytes()[..8]); + buffer.extend_from_slice(&[0, 1, 10, 2]); + let mut sums: Vec = msgs.iter().map(|m| m.len() as u16).collect(); + sums.resize(255, 0u16); + buffer.extend( + sums.into_iter() + .scan(0, |acc, v| { + *acc += v; + Some(if v == 0 { v } else { *acc }.to_le_bytes()) + }) + .flatten(), + ); + buffer.extend(msgs.into_iter().flatten()); + buffer +} + +fn get_acc_sequence_tracker(bank: &Bank) -> AccumulatorSequenceTracker { + let account = bank + .get_account(&Pubkey::new_from_array( + pythnet_sdk::pythnet::ACCUMULATOR_SEQUENCE_ADDR, + )) + .unwrap(); + AccumulatorSequenceTracker::try_from_slice(&mut account.data()).unwrap() +} + +fn get_wormhole_message_account(bank: &Bank, ring_index: u32) -> AccountSharedData { + let (wormhole_message_pubkey, _bump) = Pubkey::find_program_address( + &[b"AccumulatorMessage", &ring_index.to_be_bytes()], + &Pubkey::new_from_array(pythnet_sdk::pythnet::WORMHOLE_PID), + ); + bank.get_account(&wormhole_message_pubkey) + .unwrap_or_default() +} + +fn get_accumulator_state(bank: &Bank, ring_index: u32) -> Vec { + let (accumulator_state_pubkey, _) = Pubkey::find_program_address( + &[b"AccumulatorState", &ring_index.to_be_bytes()], + &solana_sdk::system_program::id(), + ); + + let account = bank.get_account(&accumulator_state_pubkey).unwrap(); + account.data().to_vec() +} + +#[test] +fn test_update_accumulator_sysvar() { + let leader_pubkey = solana_sdk::pubkey::new_rand(); + let GenesisConfigInfo { + mut genesis_config, .. + } = create_genesis_config_with_leader(5, &leader_pubkey, 3); + + // The genesis create function uses `Develompent` mode which enables all feature flags, so + // we need to remove the accumulator sysvar in order to test the validator behaves + // correctly when the feature is disabled. We will re-enable it further into this test. + genesis_config + .accounts + .remove(&feature_set::enable_accumulator_sysvar::id()) + .unwrap(); + genesis_config + .accounts + .remove(&feature_set::move_accumulator_to_end_of_block::id()) + .unwrap(); + + // Set epoch length to 32 so we can advance epochs quickly. We also skip past slot 0 here + // due to slot 0 having special handling. + let slots_in_epoch = 32; + genesis_config.epoch_schedule = EpochSchedule::new(slots_in_epoch); + let mut bank = Bank::new_for_tests(&genesis_config); + bank = new_from_parent(&Arc::new(bank)); + bank = new_from_parent(&Arc::new(bank)); + + let message_0 = vec![1u8; 127]; + let message_1 = vec![2u8; 127]; + // insert into message buffer in reverse order to test that accumulator + // sorts first + let messages = vec![message_1, message_0]; + + let message_buffer_bytes = create_message_buffer_bytes(messages.clone()); + + // Create a Message account. + let price_message_key = keypair_from_seed(&[1u8; 32]).unwrap(); + let mut price_message_account = bank + .get_account(&price_message_key.pubkey()) + .unwrap_or_default(); + price_message_account.set_lamports(1_000_000_000); + price_message_account.set_owner(Pubkey::new_from_array(pythnet_sdk::MESSAGE_BUFFER_PID)); + price_message_account.set_data(message_buffer_bytes); + + // Store Message account so the accumulator sysvar updater can find it. + bank.store_account(&price_message_key.pubkey(), &price_message_account); + + // Derive the Wormhole Message Account that will be generated by the sysvar updater. + let (wormhole_message_pubkey, _bump) = Pubkey::find_program_address( + &[b"AccumulatorMessage", &(bank.slot() as u32).to_be_bytes()], + &Pubkey::new_from_array(pythnet_sdk::pythnet::WORMHOLE_PID), + ); + + // Account Data should be empty at this point. Check account data is []. + let wormhole_message_account = bank + .get_account(&wormhole_message_pubkey) + .unwrap_or_default(); + assert_eq!(wormhole_message_account.data().len(), 0); + + // Run accumulator by creating a new bank from parent,the feature is + // disabled so account data should still be empty. Check account data is + // still []. + bank = new_from_parent(&Arc::new(bank)); + + let wormhole_message_account = bank + .get_account(&wormhole_message_pubkey) + .unwrap_or_default(); + assert_eq!( + bank.feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id()), + false + ); + assert_eq!(wormhole_message_account.data().len(), 0); + + // Enable Accumulator Feature (42 = random lamport balance, and the meaning of the universe). + let feature_id = feature_set::enable_accumulator_sysvar::id(); + let feature = Feature { + activated_at: Some(30), + }; + bank.store_account(&feature_id, &feature::create_account(&feature, 42)); + bank.compute_active_feature_set(true); + for _ in 0..slots_in_epoch { + bank = new_from_parent(&Arc::new(bank)); + } + + // Feature should now be enabled on the new bank as the epoch has changed. + assert_eq!( + bank.feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id()), + true + ); + + // The current sequence value will be used in the message when the bank advances, so we snapshot + // it here before advancing the slot so we can assert the correct sequence is present in the message. + let sequence_tracker_before_bank_advance = get_acc_sequence_tracker(&bank); + bank = new_from_parent(&Arc::new(bank)); + + // get the timestamp & slot for the message + let ring_index = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let wormhole_message_account = get_wormhole_message_account(&bank, ring_index); + + assert_ne!(wormhole_message_account.data().len(), 0); + + let wormhole_message = + PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); + + let messages = messages.iter().map(|m| m.as_slice()).collect::>(); + let accumulator_elements = messages.clone().into_iter().sorted_unstable().dedup(); + let expected_accumulator = + MerkleAccumulator::::from_set(accumulator_elements).unwrap(); + let expected_wormhole_message_payload = + expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE); + assert_eq!( + wormhole_message.message.payload, + expected_wormhole_message_payload + ); + + let expected_wormhole_message = PostedMessageUnreliableData { + message: MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: sequence_tracker_before_bank_advance.sequence, // sequence is incremented after the message is processed + emitter_chain: 26, + emitter_address: ACCUMULATOR_EMITTER_ADDRESS, + payload: expected_wormhole_message_payload, + ..Default::default() + }, + }; + + assert_eq!( + wormhole_message_account.data().to_vec(), + expected_wormhole_message.try_to_vec().unwrap() + ); + + // verify hashes verify in accumulator + for msg in messages { + let msg_hash = Keccak160::hashv(&[[0u8].as_ref(), msg]); + let msg_proof = expected_accumulator.prove(msg).unwrap(); + + assert!(expected_accumulator.nodes.contains(&msg_hash)); + assert!(expected_accumulator.check(msg_proof, msg)); + } + + // verify accumulator state account + let accumulator_state = get_accumulator_state(&bank, ring_index); + let acc_state_magic = &accumulator_state[..4]; + let acc_state_slot = LittleEndian::read_u64(&accumulator_state[4..12]); + let acc_state_ring_size = LittleEndian::read_u32(&accumulator_state[12..16]); + + assert_eq!(acc_state_magic, b"PAS1"); + assert_eq!(acc_state_slot, bank.slot()); + assert_eq!(acc_state_ring_size, ACCUMULATOR_RING_SIZE); + + let mut cursor = std::io::Cursor::new(&accumulator_state[16..]); + let num_elems = cursor.read_u32::().unwrap(); + for _ in 0..(num_elems as usize) { + let element_len = cursor.read_u32::().unwrap(); + let mut element_data = vec![0u8; element_len as usize]; + cursor.read_exact(&mut element_data).unwrap(); + + let elem_hash = Keccak160::hashv(&[[0u8].as_ref(), element_data.as_slice()]); + let elem_proof = expected_accumulator.prove(element_data.as_slice()).unwrap(); + + assert!(expected_accumulator.nodes.contains(&elem_hash)); + assert!(expected_accumulator.check(elem_proof, element_data.as_slice())); + } + + // verify sequence_tracker increments + assert_eq!( + get_acc_sequence_tracker(&bank).sequence, + sequence_tracker_before_bank_advance.sequence + 1 + ); + + // verify ring buffer cycles + let ring_index_before_buffer_cycle = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let target_slot = bank.slot() + ACCUMULATOR_RING_SIZE as u64; + // advance ACCUMULATOR_RING_SIZE slots using warp_from_parent since doing large loops + // with new_from_parent takes a long time. warp_from_parent results in a bank that is frozen. + bank = Bank::warp_from_parent(&Arc::new(bank), &Pubkey::default(), target_slot); + + // accumulator messages should still be the same before looping around + let ring_index_after_buffer_cycle = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + assert_eq!( + ring_index_before_buffer_cycle, + ring_index_after_buffer_cycle + ); + + let accumulator_state_after_skip = get_accumulator_state(&bank, ring_index_after_buffer_cycle); + assert_eq!( + &accumulator_state[16..], + &accumulator_state_after_skip[16..] + ); + + // insert new message to make sure the update is written in the right position + // in the ring buffer and overwrites the existing message + + // advance the bank to unfreeze it (to be able to store accounts). see the comment on warp_from_parent above. + bank = new_from_parent(&Arc::new(bank)); + + let wh_sequence_before_acc_update = get_acc_sequence_tracker(&bank).sequence; + + let message_0 = vec![1u8; 127]; + let message_1 = vec![2u8; 127]; + let message_2 = vec![3u8; 254]; + + let updated_messages = vec![message_1.clone(), message_2.clone(), message_0.clone()]; + + let updated_message_buffer_bytes = create_message_buffer_bytes(updated_messages.clone()); + price_message_account.set_data(updated_message_buffer_bytes); + + // Store Message account so the accumulator sysvar updater can find it. + bank.store_account(&price_message_key.pubkey(), &price_message_account); + + // Run accumulator, update clock & other sysvars etc + bank = new_from_parent(&Arc::new(bank)); + + let ring_index = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let updated_wormhole_message_account = get_wormhole_message_account(&bank, ring_index); + + let updated_wormhole_message = + PostedMessageUnreliableData::deserialize(&mut updated_wormhole_message_account.data()) + .unwrap(); + + let updated_messages = updated_messages + .iter() + .map(|m| m.as_slice()) + .collect::>(); + let updated_accumulator_elements = updated_messages + .clone() + .into_iter() + .sorted_unstable() + .dedup(); + + let expected_accumulator = + MerkleAccumulator::::from_set(updated_accumulator_elements).unwrap(); + assert_eq!( + updated_wormhole_message.message.payload, + expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE) + ); + + let expected_wormhole_message = PostedMessageUnreliableData { + message: MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: wh_sequence_before_acc_update, + emitter_chain: 26, + emitter_address: ACCUMULATOR_EMITTER_ADDRESS, + payload: expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), + ..Default::default() + }, + }; + + assert_eq!( + updated_wormhole_message_account.data(), + expected_wormhole_message.try_to_vec().unwrap() + ); + + // TODO: Should be done as additional tests. + // + // 1. Verify the accumulator state stays intact after the bank is advanced. + // done in this test but can be moved to a separate test. + // 2. Intentionally add corrupted accounts that do not appear in the accumulator. + // 3. Check if message offset is > message size to prevent validator crash. +} + +fn new_from_parent(parent: &Arc) -> Bank { + Bank::new_from_parent(parent, &Pubkey::default(), parent.slot() + 1) +} + +#[test] +fn test_update_accumulator_end_of_block() { + let leader_pubkey = solana_sdk::pubkey::new_rand(); + let GenesisConfigInfo { + mut genesis_config, .. + } = create_genesis_config_with_leader(5, &leader_pubkey, 3); + + // The genesis create function uses `Develompent` mode which enables all feature flags, so + // we need to remove the accumulator sysvar in order to test the validator behaves + // correctly when the feature is disabled. We will re-enable it further into this test. + genesis_config + .accounts + .remove(&feature_set::enable_accumulator_sysvar::id()) + .unwrap(); + genesis_config + .accounts + .remove(&feature_set::move_accumulator_to_end_of_block::id()) + .unwrap(); + + // Set epoch length to 32 so we can advance epochs quickly. We also skip past slot 0 here + // due to slot 0 having special handling. + let slots_in_epoch = 32; + genesis_config.epoch_schedule = EpochSchedule::new(slots_in_epoch); + let mut bank = Bank::new_for_tests(&genesis_config); + bank = new_from_parent(&Arc::new(bank)); + bank = new_from_parent(&Arc::new(bank)); + + let message_0 = vec![1u8; 127]; + let message_1 = vec![2u8; 127]; + // insert into message buffer in reverse order to test that accumulator + // sorts first + let messages = vec![message_1, message_0]; + + let message_buffer_bytes = create_message_buffer_bytes(messages.clone()); + + // Create a Message account. + let price_message_key = keypair_from_seed(&[1u8; 32]).unwrap(); + let mut price_message_account = bank + .get_account(&price_message_key.pubkey()) + .unwrap_or_default(); + price_message_account.set_lamports(1_000_000_000); + price_message_account.set_owner(Pubkey::new_from_array(pythnet_sdk::MESSAGE_BUFFER_PID)); + price_message_account.set_data(message_buffer_bytes); + + // Store Message account so the accumulator sysvar updater can find it. + bank.store_account(&price_message_key.pubkey(), &price_message_account); + + // Derive the Wormhole Message Account that will be generated by the sysvar updater. + let (wormhole_message_pubkey, _bump) = Pubkey::find_program_address( + &[b"AccumulatorMessage", &(bank.slot() as u32).to_be_bytes()], + &Pubkey::new_from_array(pythnet_sdk::pythnet::WORMHOLE_PID), + ); + + // Account Data should be empty at this point. Check account data is []. + let wormhole_message_account = bank + .get_account(&wormhole_message_pubkey) + .unwrap_or_default(); + assert_eq!(wormhole_message_account.data().len(), 0); + + // Run accumulator by creating a new bank from parent, the feature is + // disabled so account data should still be empty. Check account data is + // still []. + bank = new_from_parent(&Arc::new(bank)); + + assert_eq!( + bank.feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id()), + false + ); + assert_eq!( + bank.feature_set + .is_active(&feature_set::move_accumulator_to_end_of_block::id()), + false + ); + + let wormhole_message_account = bank + .get_account(&wormhole_message_pubkey) + .unwrap_or_default(); + assert_eq!(wormhole_message_account.data().len(), 0); + + // Enable Accumulator Features (42 = random lamport balance, and the meaning of the universe). + let feature_id = feature_set::enable_accumulator_sysvar::id(); + let feature = Feature { + activated_at: Some(30), + }; + bank.store_account(&feature_id, &feature::create_account(&feature, 42)); + + let feature_id = feature_set::move_accumulator_to_end_of_block::id(); + let feature = Feature { + activated_at: Some(30), + }; + bank.store_account(&feature_id, &feature::create_account(&feature, 42)); + + bank.compute_active_feature_set(true); + for _ in 0..slots_in_epoch { + bank = new_from_parent(&Arc::new(bank)); + } + + // Features should now be enabled on the new bank as the epoch has changed. + assert_eq!( + bank.feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id()), + true + ); + assert_eq!( + bank.feature_set + .is_active(&feature_set::move_accumulator_to_end_of_block::id()), + true + ); + + // The current sequence value will be used in the message when the bank advances, so we snapshot + // it here before freezing the bank so we can assert the correct sequence is present in the message. + let sequence_tracker_before_bank_freeze = get_acc_sequence_tracker(&bank); + // Freeze the bank to make sure accumulator is updated + bank.freeze(); + + // get the timestamp & slot for the message + let ring_index = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let wormhole_message_account = get_wormhole_message_account(&bank, ring_index); + + assert_ne!(wormhole_message_account.data().len(), 0); + + let wormhole_message = + PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); + + let messages = messages.iter().map(|m| m.as_slice()).collect::>(); + let accumulator_elements = messages.clone().into_iter().sorted_unstable().dedup(); + let expected_accumulator = + MerkleAccumulator::::from_set(accumulator_elements).unwrap(); + let expected_wormhole_message_payload = + expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE); + assert_eq!( + wormhole_message.message.payload, + expected_wormhole_message_payload + ); + + let expected_wormhole_message = PostedMessageUnreliableData { + message: MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: sequence_tracker_before_bank_freeze.sequence, // sequence is incremented after the message is processed + emitter_chain: 26, + emitter_address: ACCUMULATOR_EMITTER_ADDRESS, + payload: expected_wormhole_message_payload, + ..Default::default() + }, + }; + + assert_eq!( + wormhole_message_account.data().to_vec(), + expected_wormhole_message.try_to_vec().unwrap() + ); + + // verify hashes verify in accumulator + for msg in messages { + let msg_hash = Keccak160::hashv(&[[0u8].as_ref(), msg]); + let msg_proof = expected_accumulator.prove(msg).unwrap(); + + assert!(expected_accumulator.nodes.contains(&msg_hash)); + assert!(expected_accumulator.check(msg_proof, msg)); + } + + // verify accumulator state account + let accumulator_state = get_accumulator_state(&bank, ring_index); + let acc_state_magic = &accumulator_state[..4]; + let acc_state_slot = LittleEndian::read_u64(&accumulator_state[4..12]); + let acc_state_ring_size = LittleEndian::read_u32(&accumulator_state[12..16]); + + assert_eq!(acc_state_magic, b"PAS1"); + assert_eq!(acc_state_slot, bank.slot()); + assert_eq!(acc_state_ring_size, ACCUMULATOR_RING_SIZE); + + let mut cursor = std::io::Cursor::new(&accumulator_state[16..]); + let num_elems = cursor.read_u32::().unwrap(); + for _ in 0..(num_elems as usize) { + let element_len = cursor.read_u32::().unwrap(); + let mut element_data = vec![0u8; element_len as usize]; + cursor.read_exact(&mut element_data).unwrap(); + + let elem_hash = Keccak160::hashv(&[[0u8].as_ref(), element_data.as_slice()]); + let elem_proof = expected_accumulator.prove(element_data.as_slice()).unwrap(); + + assert!(expected_accumulator.nodes.contains(&elem_hash)); + assert!(expected_accumulator.check(elem_proof, element_data.as_slice())); + } + + // verify sequence_tracker increments + assert_eq!( + get_acc_sequence_tracker(&bank).sequence, + sequence_tracker_before_bank_freeze.sequence + 1 + ); + + // verify ring buffer cycles + let ring_index_before_buffer_cycle = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let target_slot = bank.slot() + ACCUMULATOR_RING_SIZE as u64; + // advance ACCUMULATOR_RING_SIZE slots using warp_from_parent since doing large loops + // with new_from_parent takes a long time. warp_from_parent results in a bank that is frozen. + bank = Bank::warp_from_parent(&Arc::new(bank), &Pubkey::default(), target_slot); + + // accumulator messages should still be the same before looping around + let ring_index_after_buffer_cycle = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + assert_eq!( + ring_index_before_buffer_cycle, + ring_index_after_buffer_cycle + ); + + let accumulator_state_after_skip = get_accumulator_state(&bank, ring_index_after_buffer_cycle); + assert_eq!( + &accumulator_state[16..], + &accumulator_state_after_skip[16..] + ); + + // insert new message to make sure the update is written in the right position + // in the ring buffer and overwrites the existing message + + // advance the bank to unfreeze it (to be able to store accounts). see the comment on warp_from_parent above. + bank = new_from_parent(&Arc::new(bank)); + + let wh_sequence_before_acc_update = get_acc_sequence_tracker(&bank).sequence; + + let message_0 = vec![1u8; 127]; + let message_1 = vec![2u8; 127]; + let message_2 = vec![3u8; 254]; + + let updated_messages = vec![message_1.clone(), message_2.clone(), message_0.clone()]; + + let updated_message_buffer_bytes = create_message_buffer_bytes(updated_messages.clone()); + price_message_account.set_data(updated_message_buffer_bytes); + + // Store Message account so the accumulator sysvar updater can find it. + bank.store_account(&price_message_key.pubkey(), &price_message_account); + + // Freeze the bank to run accumulator + bank.freeze(); + + let ring_index = (bank.slot() % ACCUMULATOR_RING_SIZE as u64) as u32; + let updated_wormhole_message_account = get_wormhole_message_account(&bank, ring_index); + + let updated_wormhole_message = + PostedMessageUnreliableData::deserialize(&mut updated_wormhole_message_account.data()) + .unwrap(); + + let updated_messages = updated_messages + .iter() + .map(|m| m.as_slice()) + .collect::>(); + let updated_accumulator_elements = updated_messages + .clone() + .into_iter() + .sorted_unstable() + .dedup(); + + let expected_accumulator = + MerkleAccumulator::::from_set(updated_accumulator_elements).unwrap(); + assert_eq!( + updated_wormhole_message.message.payload, + expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE) + ); + + let expected_wormhole_message = PostedMessageUnreliableData { + message: MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: wh_sequence_before_acc_update, + emitter_chain: 26, + emitter_address: ACCUMULATOR_EMITTER_ADDRESS, + payload: expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), + ..Default::default() + }, + }; + + assert_eq!( + updated_wormhole_message_account.data(), + expected_wormhole_message.try_to_vec().unwrap() + ); +} + +#[test] +fn test_get_accumulator_keys() { + use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; + let leader_pubkey = solana_sdk::pubkey::new_rand(); + let accumulator_keys: Vec = get_accumulator_keys() + .iter() + .map(|(_, pk_res)| *pk_res.as_ref().unwrap()) + .collect(); + let expected_pyth_keys = vec![ + Pubkey::new_from_array(MESSAGE_BUFFER_PID), + Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), + Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), + Pubkey::new_from_array(pythnet::WORMHOLE_PID), + ]; + assert_eq!(accumulator_keys, expected_pyth_keys); +} From c8f9b8d939c2a6441198495186eae28d3094bdc9 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Fri, 12 Jul 2024 12:20:16 +0100 Subject: [PATCH 10/19] test: fix old pyth tests --- Cargo.lock | 2 +- runtime/src/bank/pyth_accumulator.rs | 32 ++++++--------- runtime/src/bank/pyth_accumulator_tests.rs | 46 ++++++++++++++++++++-- 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 72e8a040e9..838a2f1a67 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3556,7 +3556,7 @@ dependencies = [ [[package]] name = "pyth-oracle" version = "2.26.0" -source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#f0ac2678d738d659ea4ef94f1db81e7d7e439183" +source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#a59effe7d77cfe88488fd3c4c34f3d5e33719f96" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 17ecb155fd..b4ba93ccde 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -20,13 +20,14 @@ use { pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; lazy_static! { - static ref ORACLE_PUBKEY: Option = match env::var("PYTH_ORACLE_PUBKEY") { - Ok(value) => Some( - value - .parse() - .expect("invalid value of PYTH_ORACLE_PUBKEY env var") - ), - Err(VarError::NotPresent) => None, + pub static ref ORACLE_PUBKEY: Pubkey = match env::var("PYTH_ORACLE_PUBKEY") { + Ok(value) => value + .parse() + .expect("invalid value of PYTH_ORACLE_PUBKEY env var"), + Err(VarError::NotPresent) => { + // Pythnet oracle program address + "FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH".parse().unwrap() + } Err(VarError::NotUnicode(err)) => { panic!("invalid value of PYTH_ORACLE_PUBKEY env var: {err:?}"); } @@ -51,9 +52,6 @@ pub enum AccumulatorUpdateErrorV1 { #[error("could not parse Pubkey from environment")] InvalidEnvPubkey(#[from] solana_sdk::pubkey::ParsePubkeyError), - - #[error("no oracle pubkey")] - NoOraclePubkey, } /// Updates the Accumulator Sysvar at the start of a new slot. See `update_clock` to see a similar @@ -376,10 +374,8 @@ fn post_accumulator_attestation( } pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { - let oracle_pubkey = ORACLE_PUBKEY.ok_or(AccumulatorUpdateErrorV1::NoOraclePubkey)?; - let accounts = bank - .get_program_accounts(&oracle_pubkey, &ScanConfig::new(true)) + .get_program_accounts(&ORACLE_PUBKEY, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; let mut any_v1_aggregations = false; @@ -395,12 +391,10 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV &pubkey.to_bytes().into(), &mut price_account_data, ) { - Ok(outcome) => { - if outcome.commit { - account.set_data(price_account_data); - bank.store_account_and_update_capitalization(&pubkey, &account); - } - v2_messages.extend(outcome.messages); + Ok(messages) => { + account.set_data(price_account_data); + bank.store_account_and_update_capitalization(&pubkey, &account); + v2_messages.extend(messages); } Err(err) => match err { AggregationError::NotPriceFeedAccount => {} diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index 53af505c12..8a03a0d833 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -1,6 +1,6 @@ use crate::{ bank::{ - pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE}, + pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE, ORACLE_PUBKEY}, Bank, }, genesis_utils::{create_genesis_config_with_leader, GenesisConfigInfo}, @@ -8,6 +8,8 @@ use crate::{ use byteorder::ByteOrder; use byteorder::{LittleEndian, ReadBytesExt}; use itertools::Itertools; +use pyth_oracle::solana_program::account_info::AccountInfo; +use pyth_oracle::{PriceAccount, PythAccount}; use pythnet_sdk::{ accumulators::{merkle::MerkleAccumulator, Accumulator}, hashers::{keccak256_160::Keccak160, Hasher}, @@ -17,6 +19,7 @@ use pythnet_sdk::{ use solana_sdk::{ account::{AccountSharedData, ReadableAccount, WritableAccount}, borsh::{BorshDeserialize, BorshSerialize}, + clock::Epoch, epoch_schedule::EpochSchedule, feature::{self, Feature}, feature_set, @@ -25,7 +28,7 @@ use solana_sdk::{ signature::keypair_from_seed, signer::Signer, }; -use std::{io::Read, sync::Arc}; +use std::{io::Read, mem::size_of, sync::Arc}; // Create Message Account Bytes // @@ -125,6 +128,25 @@ fn test_update_accumulator_sysvar() { // Store Message account so the accumulator sysvar updater can find it. bank.store_account(&price_message_key.pubkey(), &price_message_account); + let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PUBKEY); + let mut price_feed_account = + AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + PriceAccount::initialize( + &AccountInfo::new( + &price_feed_key.to_bytes().into(), + false, + true, + &mut 0, + &mut price_feed_account.data_mut(), + &ORACLE_PUBKEY.to_bytes().into(), + false, + Epoch::default(), + ), + 0, + ) + .unwrap(); + bank.store_account(&price_feed_key, &price_feed_account); + // Derive the Wormhole Message Account that will be generated by the sysvar updater. let (wormhole_message_pubkey, _bump) = Pubkey::find_program_address( &[b"AccumulatorMessage", &(bank.slot() as u32).to_be_bytes()], @@ -396,6 +418,25 @@ fn test_update_accumulator_end_of_block() { // Store Message account so the accumulator sysvar updater can find it. bank.store_account(&price_message_key.pubkey(), &price_message_account); + let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PUBKEY); + let mut price_feed_account = + AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + PriceAccount::initialize( + &AccountInfo::new( + &price_feed_key.to_bytes().into(), + false, + true, + &mut 0, + &mut price_feed_account.data_mut(), + &ORACLE_PUBKEY.to_bytes().into(), + false, + Epoch::default(), + ), + 0, + ) + .unwrap(); + bank.store_account(&price_feed_key, &price_feed_account); + // Derive the Wormhole Message Account that will be generated by the sysvar updater. let (wormhole_message_pubkey, _bump) = Pubkey::find_program_address( &[b"AccumulatorMessage", &(bank.slot() as u32).to_be_bytes()], @@ -631,7 +672,6 @@ fn test_update_accumulator_end_of_block() { #[test] fn test_get_accumulator_keys() { use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; - let leader_pubkey = solana_sdk::pubkey::new_rand(); let accumulator_keys: Vec = get_accumulator_keys() .iter() .map(|(_, pk_res)| *pk_res.as_ref().unwrap()) From 3daebe2e8def8f4b0d7d7ffb5d3c194594af044b Mon Sep 17 00:00:00 2001 From: Reisen Date: Tue, 16 Jul 2024 15:53:52 +0000 Subject: [PATCH 11/19] test: add initial v2 tests to validator --- Cargo.lock | 1 - runtime/Cargo.toml | 2 +- runtime/src/bank/pyth_accumulator_tests.rs | 201 ++++++++++++++++++++- 3 files changed, 200 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 838a2f1a67..58a5932bdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3556,7 +3556,6 @@ dependencies = [ [[package]] name = "pyth-oracle" version = "2.26.0" -source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#a59effe7d77cfe88488fd3c4c34f3d5e33719f96" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 3c62e70df8..4e6c07f744 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,7 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" -pyth-oracle = { git = "https://github.com/pyth-network/pyth-client", branch = "accumulator-v2", features = ["library"] } +pyth-oracle = { path = "/code/pyth-network/pyth-client/program/rust", features = ["library"] } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index 8a03a0d833..d24d4f37a4 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -8,7 +8,8 @@ use crate::{ use byteorder::ByteOrder; use byteorder::{LittleEndian, ReadBytesExt}; use itertools::Itertools; -use pyth_oracle::solana_program::account_info::AccountInfo; +use pyth_oracle::PythOracleSerialize; +use pyth_oracle::{solana_program::account_info::AccountInfo, PriceAccountFlags}; use pyth_oracle::{PriceAccount, PythAccount}; use pythnet_sdk::{ accumulators::{merkle::MerkleAccumulator, Accumulator}, @@ -131,7 +132,7 @@ fn test_update_accumulator_sysvar() { let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PUBKEY); let mut price_feed_account = AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); - PriceAccount::initialize( + let _ = PriceAccount::initialize( &AccountInfo::new( &price_feed_key.to_bytes().into(), false, @@ -669,6 +670,202 @@ fn test_update_accumulator_end_of_block() { ); } +// This test will +#[test] +fn test_accumulator_v2() { + let leader_pubkey = solana_sdk::pubkey::new_rand(); + let GenesisConfigInfo { + mut genesis_config, .. + } = create_genesis_config_with_leader(5, &leader_pubkey, 3); + + // Set epoch length to 32 so we can advance epochs quickly. We also skip past slot 0 here + // due to slot 0 having special handling. + let slots_in_epoch = 32; + genesis_config.epoch_schedule = EpochSchedule::new(slots_in_epoch); + let mut bank = Bank::new_for_tests(&genesis_config); + + bank = new_from_parent(&Arc::new(bank)); // Advance slot 1. + bank = new_from_parent(&Arc::new(bank)); // Advance slot 2. + + let generate_price = |seeds, generate_buffers: bool| { + let (price_feed_key, _bump) = Pubkey::find_program_address(&[seeds], &ORACLE_PUBKEY); + let mut price_feed_account = + AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + + let messages = { + let price_feed_info_key = &price_feed_key.to_bytes().into(); + let price_feed_info_lamports = &mut 0; + let price_feed_info_owner = &ORACLE_PUBKEY.to_bytes().into(); + let price_feed_info_data = price_feed_account.data_mut(); + let price_feed_info = AccountInfo::new( + price_feed_info_key, + false, + true, + price_feed_info_lamports, + price_feed_info_data, + price_feed_info_owner, + false, + Epoch::default(), + ); + + let mut price_account = PriceAccount::initialize(&price_feed_info, 0).unwrap(); + if !generate_buffers { + price_account.flags.insert( + PriceAccountFlags::ACCUMULATOR_V2 | PriceAccountFlags::MESSAGE_BUFFER_CLEARED, + ); + } + + vec![ + price_account + .as_price_feed_message(&price_feed_key.to_bytes().into()) + .to_bytes(), + price_account + .as_twap_message(&price_feed_key.to_bytes().into()) + .to_bytes(), + ] + }; + + bank.store_account(&price_feed_key, &price_feed_account); + + if generate_buffers { + // Insert into message buffer in reverse order to test that accumulator + // sorts first. + let message_buffer_bytes = create_message_buffer_bytes(messages.clone()); + + // Create a Message account. + let price_message_key = keypair_from_seed(&[1u8; 32]).unwrap(); + let mut price_message_account = bank + .get_account(&price_message_key.pubkey()) + .unwrap_or_default(); + + price_message_account.set_lamports(1_000_000_000); + price_message_account + .set_owner(Pubkey::new_from_array(pythnet_sdk::MESSAGE_BUFFER_PID)); + price_message_account.set_data(message_buffer_bytes); + + // Store Message account so the accumulator sysvar updater can find it. + bank.store_account(&price_message_key.pubkey(), &price_message_account); + } + + (price_feed_key, messages) + }; + + // TODO: New test functionality here. + // 1. Create Price Feed Accounts owned by ORACLE_PUBKEY + // 2. Populate Price Feed Accounts + // 3. Call update_v2() + // - Cases: + // - No V1 Messages, Only Price Accounts with no V2 + // - No V1 Messages, Some Price Accounts with no V2 + // - Some V1 Messages, No Price Accounts with no V2 + // - Some V1 Messages, Some Price Accounts with no V2 + // - Simulate PriceUpdate that WOULD trigger a real V1 aggregate before End of Slot + // - Simulate PriceUpdate that doesn't trigger a real V1 aggregate, only V2. + + assert!(bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id())); + assert!(bank + .feature_set + .is_active(&feature_set::move_accumulator_to_end_of_block::id())); + assert!(bank + .feature_set + .is_active(&feature_set::undo_move_accumulator_to_end_of_block::id())); + assert!(bank + .feature_set + .is_active(&feature_set::redo_move_accumulator_to_end_of_block::id())); + + let prices_with_messages = [ + generate_price(b"seeds_1", false), + generate_price(b"seeds_2", false), + generate_price(b"seeds_3", false), + generate_price(b"seeds_4", false), + ]; + + let messages = prices_with_messages + .iter() + .map(|(_, messages)| messages) + .flatten() + .map(|message| &message[..]); + + // Trigger Aggregation. We freeze instead of new_from_parent so + // we can keep access to the bank. + let sequence_tracker_before_bank_freeze = get_acc_sequence_tracker(&bank); + bank.freeze(); + + // Get the wormhole message generated by freezed. We don't need + // to offset the ring index as our test is always below 10K slots. + let wormhole_message_account = get_wormhole_message_account(&bank, bank.slot() as u32); + assert_ne!(wormhole_message_account.data().len(), 0); + PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); + + // Create MerkleAccumulator by hand to verify that the Wormhole message + // contents are correctg. + let expected_accumulator = + MerkleAccumulator::::from_set(messages.clone().sorted_unstable().dedup()) + .unwrap(); + + let expected_wormhole_message_payload = + expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE); + + let expected_wormhole_message = PostedMessageUnreliableData { + message: MessageData { + vaa_version: 1, + consistency_level: 1, + submission_time: bank.clock().unix_timestamp as u32, + sequence: sequence_tracker_before_bank_freeze.sequence, // sequence is incremented after the message is processed + emitter_chain: 26, + emitter_address: ACCUMULATOR_EMITTER_ADDRESS, + payload: expected_wormhole_message_payload, + ..Default::default() + }, + }; + + assert_eq!( + wormhole_message_account.data().to_vec(), + expected_wormhole_message.try_to_vec().unwrap() + ); + + // Verify hashes in accumulator. + for msg in messages { + let msg_hash = Keccak160::hashv(&[[0u8].as_ref(), msg]); + let msg_proof = expected_accumulator.prove(msg).unwrap(); + assert!(expected_accumulator.nodes.contains(&msg_hash)); + assert!(expected_accumulator.check(msg_proof, msg)); + } + + // Verify accumulator state account. + let accumulator_state = get_accumulator_state(&bank, bank.slot() as u32); + let acc_state_magic = &accumulator_state[..4]; + let acc_state_slot = LittleEndian::read_u64(&accumulator_state[4..12]); + let acc_state_ring_size = LittleEndian::read_u32(&accumulator_state[12..16]); + + assert_eq!(acc_state_magic, b"PAS1"); + assert_eq!(acc_state_slot, bank.slot()); + assert_eq!(acc_state_ring_size, ACCUMULATOR_RING_SIZE); + + // Verify the messages within the accumulator state account + // were in the accumulator as well. + let mut cursor = std::io::Cursor::new(&accumulator_state[16..]); + let num_elems = cursor.read_u32::().unwrap(); + for _ in 0..(num_elems as usize) { + let element_len = cursor.read_u32::().unwrap(); + let mut element_data = vec![0u8; element_len as usize]; + cursor.read_exact(&mut element_data).unwrap(); + + let elem_hash = Keccak160::hashv(&[[0u8].as_ref(), element_data.as_slice()]); + let elem_proof = expected_accumulator.prove(element_data.as_slice()).unwrap(); + + assert!(expected_accumulator.nodes.contains(&elem_hash)); + assert!(expected_accumulator.check(elem_proof, element_data.as_slice())); + } + + // Verify sequence_tracker increments for wormhole to accept it. + assert_eq!( + get_acc_sequence_tracker(&bank).sequence, + sequence_tracker_before_bank_freeze.sequence + 1 + ); +} #[test] fn test_get_accumulator_keys() { use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; From 9c49fcb61c74f27b00a88ebc4403954177530999 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Thu, 18 Jul 2024 09:54:06 +0100 Subject: [PATCH 12/19] refactor: unify env var handling --- runtime/src/bank/pyth_accumulator.rs | 155 ++++++++------------- runtime/src/bank/pyth_accumulator_tests.rs | 22 ++- 2 files changed, 68 insertions(+), 109 deletions(-) diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index b4ba93ccde..4bfd8eac14 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -2,36 +2,49 @@ use { super::Bank, crate::accounts_index::{ScanConfig, ScanError}, byteorder::LittleEndian, + byteorder::ReadBytesExt, itertools::Itertools, log::*, pyth_oracle::validator::AggregationError, + pythnet_sdk::{ + accumulators::{merkle::MerkleAccumulator, Accumulator}, + hashers::keccak256_160::Keccak160, + wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, + }, solana_sdk::{ account::{AccountSharedData, ReadableAccount}, - feature_set, + borsh, feature_set, hash::hashv, pubkey::Pubkey, }, - std::{ - env::{self, VarError}, - str::FromStr, - }, + std::env::{self, VarError}, }; pub const ACCUMULATOR_RING_SIZE: u32 = 10_000; lazy_static! { - pub static ref ORACLE_PUBKEY: Pubkey = match env::var("PYTH_ORACLE_PUBKEY") { - Ok(value) => value + pub static ref MESSAGE_BUFFER_PID: Pubkey = env_pubkey_or( + "MESSAGE_BUFFER_PID", + Pubkey::new_from_array(pythnet_sdk::MESSAGE_BUFFER_PID), + ); + pub static ref ACCUMULATOR_EMITTER_ADDR: Pubkey = env_pubkey_or( + "ACCUMULATOR_EMITTER_ADDR", + Pubkey::new_from_array(pythnet_sdk::ACCUMULATOR_EMITTER_ADDRESS), + ); + pub static ref ACCUMULATOR_SEQUENCE_ADDR: Pubkey = env_pubkey_or( + "ACCUMULATOR_SEQUENCE_ADDR", + Pubkey::new_from_array(pythnet_sdk::pythnet::ACCUMULATOR_SEQUENCE_ADDR), + ); + pub static ref WORMHOLE_PID: Pubkey = env_pubkey_or( + "WORMHOLE_PID", + Pubkey::new_from_array(pythnet_sdk::pythnet::WORMHOLE_PID), + ); + pub static ref ORACLE_PID: Pubkey = env_pubkey_or( + "ORACLE_PID", + "FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH" .parse() - .expect("invalid value of PYTH_ORACLE_PUBKEY env var"), - Err(VarError::NotPresent) => { - // Pythnet oracle program address - "FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH".parse().unwrap() - } - Err(VarError::NotUnicode(err)) => { - panic!("invalid value of PYTH_ORACLE_PUBKEY env var: {err:?}"); - } - }; + .unwrap(), + ); } /// Accumulator specific error type. It would be nice to use `transaction::Error` but it does @@ -82,16 +95,19 @@ pub fn update_accumulator(bank: &Bank) { /// Read the pubkey from the environment variable `var` or return `default` /// if the variable is not set. -fn env_pubkey_or( - var: &str, - default: Pubkey, -) -> std::result::Result { - Ok(std::env::var(var) - .as_deref() - .map(Pubkey::from_str) - .ok() - .transpose()? - .unwrap_or(default)) +fn env_pubkey_or(var: &str, default: Pubkey) -> Pubkey { + match env::var(var) { + Ok(value) => value.parse().unwrap_or_else(|err| { + panic!( + "failed to parse env var {}={:?} as pubkey: {}", + var, value, err + ) + }), + Err(VarError::NotPresent) => default, + Err(VarError::NotUnicode(value)) => { + panic!("invalid value of env var {}={:?}: not unicode", var, value); + } + } } /// Get all accumulator related pubkeys from environment variables @@ -100,33 +116,13 @@ pub fn get_accumulator_keys() -> Vec<( &'static str, std::result::Result, )> { - use pythnet_sdk::{pythnet, ACCUMULATOR_EMITTER_ADDRESS, MESSAGE_BUFFER_PID}; - let accumulator_keys = vec![ - ( - "MESSAGE_BUFFER_PID", - Pubkey::new_from_array(MESSAGE_BUFFER_PID), - ), - // accumulator emitter address should always be the same regardless - // of environment but checking here for completeness - ( - "ACCUMULATOR_EMITTER_ADDR", - Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), - ), - ( - "ACCUMULATOR_SEQUENCE_ADDR", - Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), - ), - ( - "WORMHOLE_PID", - Pubkey::new_from_array(pythnet::WORMHOLE_PID), - ), - ]; - let accumulator_pubkeys: Vec<(&str, std::result::Result)> = - accumulator_keys - .iter() - .map(|(k, d)| (*k, env_pubkey_or(k, *d))) - .collect(); - accumulator_pubkeys + vec![ + ("MESSAGE_BUFFER_PID", Ok(*MESSAGE_BUFFER_PID)), + ("ACCUMULATOR_EMITTER_ADDR", Ok(*ACCUMULATOR_EMITTER_ADDR)), + ("ACCUMULATOR_SEQUENCE_ADDR", Ok(*ACCUMULATOR_SEQUENCE_ADDR)), + ("WORMHOLE_PID", Ok(*WORMHOLE_PID)), + ("ORACLE_PID", Ok(*ORACLE_PID)), + ] } pub fn update_v1<'a>( @@ -134,30 +130,16 @@ pub fn update_v1<'a>( v2_messages: &[Vec], use_message_buffers: bool, ) -> std::result::Result<(), AccumulatorUpdateErrorV1> { - use { - byteorder::ReadBytesExt, - pythnet_sdk::{ - accumulators::{merkle::MerkleAccumulator, Accumulator}, - hashers::keccak256_160::Keccak160, - MESSAGE_BUFFER_PID, - }, - solana_sdk::borsh, - }; - // Use the current Clock to determine the index into the accumulator ring buffer. let ring_index = (bank.slot() % 10_000) as u32; // Find all accounts owned by the Message Buffer program using get_program_accounts, and // extract the account data. - let message_buffer_pid = env_pubkey_or( - "MESSAGE_BUFFER_PID", - Pubkey::new_from_array(MESSAGE_BUFFER_PID), - )?; let message_buffer_accounts; let v1_messages = if use_message_buffers { message_buffer_accounts = bank - .get_program_accounts(&message_buffer_pid, &ScanConfig::new(true)) + .get_program_accounts(&MESSAGE_BUFFER_PID, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; let preimage = b"account:MessageBuffer"; @@ -266,28 +248,12 @@ fn post_accumulator_attestation( >, ring_index: u32, ) -> std::result::Result<(), AccumulatorUpdateErrorV1> { - use pythnet_sdk::{ - pythnet, - wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, - ACCUMULATOR_EMITTER_ADDRESS, - }; - - let accumulator_sequence_addr = env_pubkey_or( - "ACCUMULATOR_SEQUENCE_ADDR", - Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), - )?; - - let accumulator_emitter_addr = env_pubkey_or( - "ACCUMULATOR_EMITTER_ADDR", - Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), - )?; - // Wormhole uses a Sequence account that is incremented each time a message is posted. As // we aren't calling Wormhole we need to bump this ourselves. If it doesn't exist, we just // create it instead. let mut sequence: AccumulatorSequenceTracker = { let data = bank - .get_account_with_fixed_root(&accumulator_sequence_addr) + .get_account_with_fixed_root(&ACCUMULATOR_SEQUENCE_ADDR) .unwrap_or_default(); let data = data.data(); solana_sdk::borsh::try_from_slice_unchecked(data) @@ -311,7 +277,7 @@ fn post_accumulator_attestation( nonce: 0, sequence: sequence.sequence, emitter_chain: 26, - emitter_address: accumulator_emitter_addr.to_bytes(), + emitter_address: ACCUMULATOR_EMITTER_ADDR.to_bytes(), payload: acc.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), } } else { @@ -322,7 +288,7 @@ fn post_accumulator_attestation( submission_time: bank.clock().unix_timestamp as u32, sequence: sequence.sequence, emitter_chain: 26, - emitter_address: accumulator_emitter_addr.to_bytes(), + emitter_address: ACCUMULATOR_EMITTER_ADDR.to_bytes(), payload: acc.serialize(bank.slot(), ACCUMULATOR_RING_SIZE), ..Default::default() } @@ -330,18 +296,13 @@ fn post_accumulator_attestation( }; debug!("Accumulator: Wormhole message data: {:?}", message.message); - let wormhole_pid = env_pubkey_or( - "WORMHOLE_PID", - Pubkey::new_from_array(pythnet::WORMHOLE_PID), - )?; - // Now we can bump and write the Sequence account. sequence.sequence += 1; let sequence = solana_sdk::borsh::BorshSerialize::try_to_vec(&sequence) .map_err(|_| AccumulatorUpdateErrorV1::FailedSequenceSerialization)?; let sequence_balance = bank.get_minimum_balance_for_rent_exemption(sequence.len()); let sequence_account = { - let owner = &wormhole_pid; + let owner = &WORMHOLE_PID; let mut account = AccountSharedData::new(sequence_balance, sequence.len(), owner); account.set_data(sequence); account @@ -352,7 +313,7 @@ fn post_accumulator_attestation( .map_err(|_| AccumulatorUpdateErrorV1::FailedMessageSerialization)?; let message_balance = bank.get_minimum_balance_for_rent_exemption(message.len()); let message_account = { - let owner = &wormhole_pid; + let owner = &WORMHOLE_PID; let mut account = AccountSharedData::new(message_balance, message.len(), owner); account.set_data(message); account @@ -362,10 +323,10 @@ fn post_accumulator_attestation( // for RPC users to select the message for an associated VAA. let (message_pda, _) = Pubkey::find_program_address( &[b"AccumulatorMessage", &ring_index.to_be_bytes()], - &wormhole_pid, + &WORMHOLE_PID, ); - bank.store_account_and_update_capitalization(&accumulator_sequence_addr, &sequence_account); + bank.store_account_and_update_capitalization(&ACCUMULATOR_SEQUENCE_ADDR, &sequence_account); info!("Accumulator: Writing wormhole message to {:?}", message_pda); bank.store_account_and_update_capitalization(&message_pda, &message_account); @@ -375,7 +336,7 @@ fn post_accumulator_attestation( pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> { let accounts = bank - .get_program_accounts(&ORACLE_PUBKEY, &ScanConfig::new(true)) + .get_program_accounts(&ORACLE_PID, &ScanConfig::new(true)) .map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?; let mut any_v1_aggregations = false; diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index d24d4f37a4..8528a584c5 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -1,6 +1,6 @@ use crate::{ bank::{ - pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE, ORACLE_PUBKEY}, + pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE, ORACLE_PID}, Bank, }, genesis_utils::{create_genesis_config_with_leader, GenesisConfigInfo}, @@ -129,9 +129,8 @@ fn test_update_accumulator_sysvar() { // Store Message account so the accumulator sysvar updater can find it. bank.store_account(&price_message_key.pubkey(), &price_message_account); - let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PUBKEY); - let mut price_feed_account = - AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PID); + let mut price_feed_account = AccountSharedData::new(42, size_of::(), &ORACLE_PID); let _ = PriceAccount::initialize( &AccountInfo::new( &price_feed_key.to_bytes().into(), @@ -139,7 +138,7 @@ fn test_update_accumulator_sysvar() { true, &mut 0, &mut price_feed_account.data_mut(), - &ORACLE_PUBKEY.to_bytes().into(), + &ORACLE_PID.to_bytes().into(), false, Epoch::default(), ), @@ -419,9 +418,8 @@ fn test_update_accumulator_end_of_block() { // Store Message account so the accumulator sysvar updater can find it. bank.store_account(&price_message_key.pubkey(), &price_message_account); - let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PUBKEY); - let mut price_feed_account = - AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + let (price_feed_key, _bump) = Pubkey::find_program_address(&[b"123"], &ORACLE_PID); + let mut price_feed_account = AccountSharedData::new(42, size_of::(), &ORACLE_PID); PriceAccount::initialize( &AccountInfo::new( &price_feed_key.to_bytes().into(), @@ -429,7 +427,7 @@ fn test_update_accumulator_end_of_block() { true, &mut 0, &mut price_feed_account.data_mut(), - &ORACLE_PUBKEY.to_bytes().into(), + &ORACLE_PID.to_bytes().into(), false, Epoch::default(), ), @@ -688,14 +686,14 @@ fn test_accumulator_v2() { bank = new_from_parent(&Arc::new(bank)); // Advance slot 2. let generate_price = |seeds, generate_buffers: bool| { - let (price_feed_key, _bump) = Pubkey::find_program_address(&[seeds], &ORACLE_PUBKEY); + let (price_feed_key, _bump) = Pubkey::find_program_address(&[seeds], &ORACLE_PID); let mut price_feed_account = - AccountSharedData::new(42, size_of::(), &ORACLE_PUBKEY); + AccountSharedData::new(42, size_of::(), &ORACLE_PID); let messages = { let price_feed_info_key = &price_feed_key.to_bytes().into(); let price_feed_info_lamports = &mut 0; - let price_feed_info_owner = &ORACLE_PUBKEY.to_bytes().into(); + let price_feed_info_owner = &ORACLE_PID.to_bytes().into(); let price_feed_info_data = price_feed_account.data_mut(); let price_feed_info = AccountInfo::new( price_feed_info_key, From abffa06a4bdc774bbf0f3709caec0923ef91b5c8 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Fri, 19 Jul 2024 11:41:30 +0100 Subject: [PATCH 13/19] chore: fix build for stable Rust by ignoring lints --- programs/bpf_loader/src/syscalls/cpi.rs | 4 +++- runtime/src/append_vec.rs | 4 ++++ sdk/program/src/account_info.rs | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/programs/bpf_loader/src/syscalls/cpi.rs b/programs/bpf_loader/src/syscalls/cpi.rs index bf65d47d04..a3abf6a871 100644 --- a/programs/bpf_loader/src/syscalls/cpi.rs +++ b/programs/bpf_loader/src/syscalls/cpi.rs @@ -539,7 +539,9 @@ impl<'a, 'b> SyscallInvokeSigned<'a, 'b> for SyscallInvokeSignedC<'a, 'b> { vm_addr, size_of::() as u64, )?; - let ref_to_len_in_vm = unsafe { &mut *(addr as *mut u64) }; + // This lint was not present on Rust 1.60. + #[allow(unknown_lints, invalid_reference_casting)] + let ref_to_len_in_vm = { unsafe { &mut *(addr as *mut u64) } }; let ref_of_len_in_input_buffer = (account_info.data_addr as *mut u8 as u64).saturating_sub(8); diff --git a/runtime/src/append_vec.rs b/runtime/src/append_vec.rs index 50b7f6719b..be829e1407 100644 --- a/runtime/src/append_vec.rs +++ b/runtime/src/append_vec.rs @@ -585,6 +585,8 @@ pub mod tests { #[allow(clippy::cast_ref_to_mut)] fn set_data_len_unsafe(&self, new_data_len: u64) { // UNSAFE: cast away & (= const ref) to &mut to force to mutate append-only (=read-only) AppendVec + // This lint was not present on Rust 1.60. + #[allow(unknown_lints, invalid_reference_casting)] unsafe { *(&self.meta.data_len as *const u64 as *mut u64) = new_data_len; } @@ -600,6 +602,8 @@ pub mod tests { #[allow(clippy::cast_ref_to_mut)] fn set_executable_as_byte(&self, new_executable_byte: u8) { // UNSAFE: Force to interpret mmap-backed &bool as &u8 to write some crafted value; + // This lint was not present on Rust 1.60. + #[allow(unknown_lints, invalid_reference_casting)] unsafe { *(&self.account_meta.executable as *const bool as *mut u8) = new_executable_byte; } diff --git a/sdk/program/src/account_info.rs b/sdk/program/src/account_info.rs index 3652e2251e..5ab7d0b2d4 100644 --- a/sdk/program/src/account_info.rs +++ b/sdk/program/src/account_info.rs @@ -183,6 +183,8 @@ impl<'a> AccountInfo<'a> { pub fn assign(&self, new_owner: &Pubkey) { // Set the non-mut owner field + // This lint was not present on Rust 1.60. + #[allow(unknown_lints, invalid_reference_casting)] unsafe { std::ptr::write_volatile( self.owner as *const Pubkey as *mut [u8; 32], From 5cd4657f5670db514395d1982dc5b89f6914f11b Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Mon, 22 Jul 2024 13:02:38 +0100 Subject: [PATCH 14/19] test: fix and expand accumulator-v2 tests --- Cargo.lock | 1 + runtime/Cargo.toml | 2 +- runtime/src/bank/pyth_accumulator.rs | 5 +-- runtime/src/bank/pyth_accumulator_tests.rs | 51 ++++++++++++++++------ 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 58a5932bdc..92d4fc9640 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3556,6 +3556,7 @@ dependencies = [ [[package]] name = "pyth-oracle" version = "2.26.0" +source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#d949c27e14010427ce654055827c1610e577ecec" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 4e6c07f744..3c62e70df8 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,7 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" -pyth-oracle = { path = "/code/pyth-network/pyth-client/program/rust", features = ["library"] } +pyth-oracle = { git = "https://github.com/pyth-network/pyth-client", branch = "accumulator-v2", features = ["library"] } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 4bfd8eac14..819ab79ea5 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -3,7 +3,6 @@ use { crate::accounts_index::{ScanConfig, ScanError}, byteorder::LittleEndian, byteorder::ReadBytesExt, - itertools::Itertools, log::*, pyth_oracle::validator::AggregationError, pythnet_sdk::{ @@ -187,8 +186,6 @@ pub fn update_v1<'a>( .collect::, std::io::Error>>()? .into_iter() .flatten() - .sorted_unstable() - .dedup() .collect() } else { Vec::new() @@ -196,6 +193,8 @@ pub fn update_v1<'a>( let mut messages = v1_messages; messages.extend(v2_messages.iter().map(|x| &**x)); + messages.sort_unstable(); + messages.dedup(); // We now generate a Proof PDA (Owned by the System Program) to store the resulting Proof // Set. The derivation includes the ring buffer index to simulate a ring buffer in order diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index 8528a584c5..69032fea6d 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -668,9 +668,22 @@ fn test_update_accumulator_end_of_block() { ); } -// This test will #[test] -fn test_accumulator_v2() { +fn test_accumulator_v2_all_v2() { + test_accumulator_v2([false, false, false, false]); +} + +#[test] +fn test_accumulator_v2_all_v1() { + test_accumulator_v2([true, true, true, true]); +} + +#[test] +fn test_accumulator_v2_mixed() { + test_accumulator_v2([true, true, false, false]); +} + +fn test_accumulator_v2(generate_buffers: [bool; 4]) { let leader_pubkey = solana_sdk::pubkey::new_rand(); let GenesisConfigInfo { mut genesis_config, .. @@ -682,9 +695,6 @@ fn test_accumulator_v2() { genesis_config.epoch_schedule = EpochSchedule::new(slots_in_epoch); let mut bank = Bank::new_for_tests(&genesis_config); - bank = new_from_parent(&Arc::new(bank)); // Advance slot 1. - bank = new_from_parent(&Arc::new(bank)); // Advance slot 2. - let generate_price = |seeds, generate_buffers: bool| { let (price_feed_key, _bump) = Pubkey::find_program_address(&[seeds], &ORACLE_PID); let mut price_feed_account = @@ -730,8 +740,10 @@ fn test_accumulator_v2() { // sorts first. let message_buffer_bytes = create_message_buffer_bytes(messages.clone()); + let mut seed = vec![1; 32]; + seed[..seeds.len()].copy_from_slice(seeds); // Create a Message account. - let price_message_key = keypair_from_seed(&[1u8; 32]).unwrap(); + let price_message_key = keypair_from_seed(&seed).unwrap(); let mut price_message_account = bank .get_account(&price_message_key.pubkey()) .unwrap_or_default(); @@ -774,17 +786,23 @@ fn test_accumulator_v2() { .is_active(&feature_set::redo_move_accumulator_to_end_of_block::id())); let prices_with_messages = [ - generate_price(b"seeds_1", false), - generate_price(b"seeds_2", false), - generate_price(b"seeds_3", false), - generate_price(b"seeds_4", false), + generate_price(b"seeds_1", generate_buffers[0]), + generate_price(b"seeds_2", generate_buffers[1]), + generate_price(b"seeds_3", generate_buffers[2]), + generate_price(b"seeds_4", generate_buffers[3]), ]; + bank = new_from_parent(&Arc::new(bank)); // Advance slot 1. + bank = new_from_parent(&Arc::new(bank)); // Advance slot 2. + let messages = prices_with_messages .iter() .map(|(_, messages)| messages) .flatten() - .map(|message| &message[..]); + .map(|message| &message[..]) + .sorted_unstable() + .dedup() + .collect::>(); // Trigger Aggregation. We freeze instead of new_from_parent so // we can keep access to the bank. @@ -795,13 +813,13 @@ fn test_accumulator_v2() { // to offset the ring index as our test is always below 10K slots. let wormhole_message_account = get_wormhole_message_account(&bank, bank.slot() as u32); assert_ne!(wormhole_message_account.data().len(), 0); - PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); + let deserialized_wormhole_message = + PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); // Create MerkleAccumulator by hand to verify that the Wormhole message // contents are correctg. let expected_accumulator = - MerkleAccumulator::::from_set(messages.clone().sorted_unstable().dedup()) - .unwrap(); + MerkleAccumulator::::from_set(messages.iter().copied()).unwrap(); let expected_wormhole_message_payload = expected_accumulator.serialize(bank.slot(), ACCUMULATOR_RING_SIZE); @@ -818,6 +836,10 @@ fn test_accumulator_v2() { ..Default::default() }, }; + assert_eq!( + deserialized_wormhole_message.payload, + expected_wormhole_message.payload + ); assert_eq!( wormhole_message_account.data().to_vec(), @@ -876,6 +898,7 @@ fn test_get_accumulator_keys() { Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS), Pubkey::new_from_array(pythnet::ACCUMULATOR_SEQUENCE_ADDR), Pubkey::new_from_array(pythnet::WORMHOLE_PID), + *ORACLE_PID, ]; assert_eq!(accumulator_keys, expected_pyth_keys); } From 287cb0630e48a4dd7d986c7698ea4027aa0aa517 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 24 Jul 2024 10:05:46 +0100 Subject: [PATCH 15/19] chore: clean up comments --- runtime/src/bank/pyth_accumulator_tests.rs | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index 69032fea6d..aafa39e116 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -736,8 +736,6 @@ fn test_accumulator_v2(generate_buffers: [bool; 4]) { bank.store_account(&price_feed_key, &price_feed_account); if generate_buffers { - // Insert into message buffer in reverse order to test that accumulator - // sorts first. let message_buffer_bytes = create_message_buffer_bytes(messages.clone()); let mut seed = vec![1; 32]; @@ -760,18 +758,6 @@ fn test_accumulator_v2(generate_buffers: [bool; 4]) { (price_feed_key, messages) }; - // TODO: New test functionality here. - // 1. Create Price Feed Accounts owned by ORACLE_PUBKEY - // 2. Populate Price Feed Accounts - // 3. Call update_v2() - // - Cases: - // - No V1 Messages, Only Price Accounts with no V2 - // - No V1 Messages, Some Price Accounts with no V2 - // - Some V1 Messages, No Price Accounts with no V2 - // - Some V1 Messages, Some Price Accounts with no V2 - // - Simulate PriceUpdate that WOULD trigger a real V1 aggregate before End of Slot - // - Simulate PriceUpdate that doesn't trigger a real V1 aggregate, only V2. - assert!(bank .feature_set .is_active(&feature_set::enable_accumulator_sysvar::id())); From 9f1b93afbac24c86a1ba84c2630b948c11e7e503 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 24 Jul 2024 17:14:08 +0100 Subject: [PATCH 16/19] chore: update dependency --- Cargo.lock | 4 ++-- runtime/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 92d4fc9640..38893e6033 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3555,8 +3555,8 @@ dependencies = [ [[package]] name = "pyth-oracle" -version = "2.26.0" -source = "git+https://github.com/pyth-network/pyth-client?branch=accumulator-v2#d949c27e14010427ce654055827c1610e577ecec" +version = "2.32.0" +source = "git+https://github.com/pyth-network/pyth-client?tag=oracle-v2.32.0#a2786818bbd612ed512befe6c6863745b1b67c06" dependencies = [ "bindgen 0.60.1", "bitflags 2.6.0", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 3c62e70df8..812323babc 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,7 +35,7 @@ num-traits = { version = "0.2" } num_cpus = "1.13.1" once_cell = "1.12.0" ouroboros = "0.15.0" -pyth-oracle = { git = "https://github.com/pyth-network/pyth-client", branch = "accumulator-v2", features = ["library"] } +pyth-oracle = { git = "https://github.com/pyth-network/pyth-client", tag = "oracle-v2.32.0", features = ["library"] } pythnet-sdk = { git = "https://github.com/pyth-network/pyth-crosschain", version = "1.13.6", rev = "e670f57f89b05398ca352e4accb1e32724a8e1b4" } rand = "0.7.0" rayon = "1.5.3" From 65b352e27c10406e061811d9d33d1165a50525ac Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 24 Jul 2024 17:36:17 +0100 Subject: [PATCH 17/19] chore: fix clippy and fmt --- core/src/validator.rs | 3 +- runtime/src/bank/pyth_accumulator.rs | 7 +- runtime/src/bank/pyth_accumulator_tests.rs | 125 +++++++++----------- runtime/src/genesis_utils.rs | 2 +- transaction-status/src/option_serializer.rs | 3 +- 5 files changed, 64 insertions(+), 76 deletions(-) diff --git a/core/src/validator.rs b/core/src/validator.rs index 4c7fef4e21..923be65d65 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -1,7 +1,6 @@ //! The `validator` module hosts all the validator microservices. pub use solana_perf::report_target_features; -use solana_runtime::bank::pyth_accumulator; use { crate::{ accounts_hash_verifier::AccountsHashVerifier, @@ -75,7 +74,7 @@ use { accounts_db::{AccountShrinkThreshold, AccountsDbConfig}, accounts_index::AccountSecondaryIndexes, accounts_update_notifier_interface::AccountsUpdateNotifier, - bank::Bank, + bank::{pyth_accumulator, Bank}, bank_forks::BankForks, commitment::BlockCommitmentCache, cost_model::CostModel, diff --git a/runtime/src/bank/pyth_accumulator.rs b/runtime/src/bank/pyth_accumulator.rs index 819ab79ea5..5ef19dbed1 100644 --- a/runtime/src/bank/pyth_accumulator.rs +++ b/runtime/src/bank/pyth_accumulator.rs @@ -1,8 +1,7 @@ use { super::Bank, crate::accounts_index::{ScanConfig, ScanError}, - byteorder::LittleEndian, - byteorder::ReadBytesExt, + byteorder::{LittleEndian, ReadBytesExt}, log::*, pyth_oracle::validator::AggregationError, pythnet_sdk::{ @@ -124,7 +123,7 @@ pub fn get_accumulator_keys() -> Vec<( ] } -pub fn update_v1<'a>( +pub fn update_v1( bank: &Bank, v2_messages: &[Vec], use_message_buffers: bool, @@ -166,7 +165,7 @@ pub fn update_v1<'a>( let mut header_begin = header_len; let mut inputs = Vec::new(); let mut cur_end_offsets_idx: usize = 0; - while let Some(end) = cursor.read_u16::().ok() { + while let Ok(end) = cursor.read_u16::() { if end == 0 || cur_end_offsets_idx == (u8::MAX as usize) { break; } diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index aafa39e116..0f2c8093b6 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -1,35 +1,37 @@ -use crate::{ - bank::{ - pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE, ORACLE_PID}, - Bank, +use { + crate::{ + bank::{ + pyth_accumulator::{get_accumulator_keys, ACCUMULATOR_RING_SIZE, ORACLE_PID}, + Bank, + }, + genesis_utils::{create_genesis_config_with_leader, GenesisConfigInfo}, }, - genesis_utils::{create_genesis_config_with_leader, GenesisConfigInfo}, -}; -use byteorder::ByteOrder; -use byteorder::{LittleEndian, ReadBytesExt}; -use itertools::Itertools; -use pyth_oracle::PythOracleSerialize; -use pyth_oracle::{solana_program::account_info::AccountInfo, PriceAccountFlags}; -use pyth_oracle::{PriceAccount, PythAccount}; -use pythnet_sdk::{ - accumulators::{merkle::MerkleAccumulator, Accumulator}, - hashers::{keccak256_160::Keccak160, Hasher}, - wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, - ACCUMULATOR_EMITTER_ADDRESS, -}; -use solana_sdk::{ - account::{AccountSharedData, ReadableAccount, WritableAccount}, - borsh::{BorshDeserialize, BorshSerialize}, - clock::Epoch, - epoch_schedule::EpochSchedule, - feature::{self, Feature}, - feature_set, - hash::hashv, - pubkey::Pubkey, - signature::keypair_from_seed, - signer::Signer, + byteorder::{ByteOrder, LittleEndian, ReadBytesExt}, + itertools::Itertools, + pyth_oracle::{ + solana_program::account_info::AccountInfo, PriceAccount, PriceAccountFlags, PythAccount, + PythOracleSerialize, + }, + pythnet_sdk::{ + accumulators::{merkle::MerkleAccumulator, Accumulator}, + hashers::{keccak256_160::Keccak160, Hasher}, + wormhole::{AccumulatorSequenceTracker, MessageData, PostedMessageUnreliableData}, + ACCUMULATOR_EMITTER_ADDRESS, + }, + solana_sdk::{ + account::{AccountSharedData, ReadableAccount, WritableAccount}, + borsh::{BorshDeserialize, BorshSerialize}, + clock::Epoch, + epoch_schedule::EpochSchedule, + feature::{self, Feature}, + feature_set, + hash::hashv, + pubkey::Pubkey, + signature::keypair_from_seed, + signer::Signer, + }, + std::{io::Read, mem::size_of, sync::Arc}, }; -use std::{io::Read, mem::size_of, sync::Arc}; // Create Message Account Bytes // @@ -60,7 +62,7 @@ fn get_acc_sequence_tracker(bank: &Bank) -> AccumulatorSequenceTracker { pythnet_sdk::pythnet::ACCUMULATOR_SEQUENCE_ADDR, )) .unwrap(); - AccumulatorSequenceTracker::try_from_slice(&mut account.data()).unwrap() + AccumulatorSequenceTracker::try_from_slice(account.data()).unwrap() } fn get_wormhole_message_account(bank: &Bank, ring_index: u32) -> AccountSharedData { @@ -137,7 +139,7 @@ fn test_update_accumulator_sysvar() { false, true, &mut 0, - &mut price_feed_account.data_mut(), + price_feed_account.data_mut(), &ORACLE_PID.to_bytes().into(), false, Epoch::default(), @@ -167,11 +169,9 @@ fn test_update_accumulator_sysvar() { let wormhole_message_account = bank .get_account(&wormhole_message_pubkey) .unwrap_or_default(); - assert_eq!( - bank.feature_set - .is_active(&feature_set::enable_accumulator_sysvar::id()), - false - ); + assert!(!bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id())); assert_eq!(wormhole_message_account.data().len(), 0); // Enable Accumulator Feature (42 = random lamport balance, and the meaning of the universe). @@ -186,11 +186,9 @@ fn test_update_accumulator_sysvar() { } // Feature should now be enabled on the new bank as the epoch has changed. - assert_eq!( - bank.feature_set - .is_active(&feature_set::enable_accumulator_sysvar::id()), - true - ); + assert!(!bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id())); // The current sequence value will be used in the message when the bank advances, so we snapshot // it here before advancing the slot so we can assert the correct sequence is present in the message. @@ -306,7 +304,7 @@ fn test_update_accumulator_sysvar() { let message_1 = vec![2u8; 127]; let message_2 = vec![3u8; 254]; - let updated_messages = vec![message_1.clone(), message_2.clone(), message_0.clone()]; + let updated_messages = vec![message_1, message_2, message_0]; let updated_message_buffer_bytes = create_message_buffer_bytes(updated_messages.clone()); price_message_account.set_data(updated_message_buffer_bytes); @@ -426,7 +424,7 @@ fn test_update_accumulator_end_of_block() { false, true, &mut 0, - &mut price_feed_account.data_mut(), + price_feed_account.data_mut(), &ORACLE_PID.to_bytes().into(), false, Epoch::default(), @@ -453,16 +451,12 @@ fn test_update_accumulator_end_of_block() { // still []. bank = new_from_parent(&Arc::new(bank)); - assert_eq!( - bank.feature_set - .is_active(&feature_set::enable_accumulator_sysvar::id()), - false - ); - assert_eq!( - bank.feature_set - .is_active(&feature_set::move_accumulator_to_end_of_block::id()), - false - ); + assert!(!bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id())); + assert!(!bank + .feature_set + .is_active(&feature_set::move_accumulator_to_end_of_block::id())); let wormhole_message_account = bank .get_account(&wormhole_message_pubkey) @@ -488,16 +482,12 @@ fn test_update_accumulator_end_of_block() { } // Features should now be enabled on the new bank as the epoch has changed. - assert_eq!( - bank.feature_set - .is_active(&feature_set::enable_accumulator_sysvar::id()), - true - ); - assert_eq!( - bank.feature_set - .is_active(&feature_set::move_accumulator_to_end_of_block::id()), - true - ); + assert!(bank + .feature_set + .is_active(&feature_set::enable_accumulator_sysvar::id())); + assert!(bank + .feature_set + .is_active(&feature_set::move_accumulator_to_end_of_block::id())); // The current sequence value will be used in the message when the bank advances, so we snapshot // it here before freezing the bank so we can assert the correct sequence is present in the message. @@ -614,7 +604,7 @@ fn test_update_accumulator_end_of_block() { let message_1 = vec![2u8; 127]; let message_2 = vec![3u8; 254]; - let updated_messages = vec![message_1.clone(), message_2.clone(), message_0.clone()]; + let updated_messages = vec![message_1, message_2, message_0]; let updated_message_buffer_bytes = create_message_buffer_bytes(updated_messages.clone()); price_message_account.set_data(updated_message_buffer_bytes); @@ -783,8 +773,7 @@ fn test_accumulator_v2(generate_buffers: [bool; 4]) { let messages = prices_with_messages .iter() - .map(|(_, messages)| messages) - .flatten() + .flat_map(|(_, messages)| messages) .map(|message| &message[..]) .sorted_unstable() .dedup() @@ -803,7 +792,7 @@ fn test_accumulator_v2(generate_buffers: [bool; 4]) { PostedMessageUnreliableData::deserialize(&mut wormhole_message_account.data()).unwrap(); // Create MerkleAccumulator by hand to verify that the Wormhole message - // contents are correctg. + // contents are correct. let expected_accumulator = MerkleAccumulator::::from_set(messages.iter().copied()).unwrap(); diff --git a/runtime/src/genesis_utils.rs b/runtime/src/genesis_utils.rs index 2645205adb..77909c2b66 100644 --- a/runtime/src/genesis_utils.rs +++ b/runtime/src/genesis_utils.rs @@ -204,7 +204,7 @@ pub fn activate_all_features(genesis_config: &mut GenesisConfig) { /// Based on v1.10.24 state at pythnet launch. pub fn activate_pythnet_genesis_features(genesis_config: &mut GenesisConfig) { // Activate all features at genesis in development mode - for (feature_id, _) in &*solana_sdk::feature_set::PYTHNET_GENESIS_FEATURES { + for feature_id in solana_sdk::feature_set::PYTHNET_GENESIS_FEATURES.keys() { genesis_config.accounts.insert( *feature_id, Account::from(feature::create_account( diff --git a/transaction-status/src/option_serializer.rs b/transaction-status/src/option_serializer.rs index 2078d7dff8..e8dfddec90 100644 --- a/transaction-status/src/option_serializer.rs +++ b/transaction-status/src/option_serializer.rs @@ -28,7 +28,8 @@ impl OptionSerializer { } pub fn as_ref(&self) -> OptionSerializer<&T> { - #[allow(clippy::needless_match)] // The nightly clippy used by CI is incorrect here + #[allow(unknown_lints, clippy::needless_match)] + // The nightly clippy used by CI is incorrect here match self { OptionSerializer::Some(item) => OptionSerializer::Some(item), OptionSerializer::None => OptionSerializer::None, From 45656432491a94040916f32662314db209da7021 Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 24 Jul 2024 17:42:05 +0100 Subject: [PATCH 18/19] test: add extra check --- runtime/src/bank/pyth_accumulator_tests.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/src/bank/pyth_accumulator_tests.rs b/runtime/src/bank/pyth_accumulator_tests.rs index 0f2c8093b6..1ded8c42bc 100644 --- a/runtime/src/bank/pyth_accumulator_tests.rs +++ b/runtime/src/bank/pyth_accumulator_tests.rs @@ -186,7 +186,7 @@ fn test_update_accumulator_sysvar() { } // Feature should now be enabled on the new bank as the epoch has changed. - assert!(!bank + assert!(bank .feature_set .is_active(&feature_set::enable_accumulator_sysvar::id())); @@ -778,6 +778,7 @@ fn test_accumulator_v2(generate_buffers: [bool; 4]) { .sorted_unstable() .dedup() .collect::>(); + assert_eq!(messages.len(), 8); // Trigger Aggregation. We freeze instead of new_from_parent so // we can keep access to the bank. From bd4012a2a96155b76a5bd5d11614aabb9d9bc09f Mon Sep 17 00:00:00 2001 From: Pavel Strakhov Date: Wed, 24 Jul 2024 17:50:39 +0100 Subject: [PATCH 19/19] chore: bump version to 1.14.175 --- Cargo.lock | 484 ++++---- account-decoder/Cargo.toml | 10 +- accounts-bench/Cargo.toml | 12 +- accounts-cluster-bench/Cargo.toml | 34 +- banking-bench/Cargo.toml | 26 +- banks-client/Cargo.toml | 12 +- banks-interface/Cargo.toml | 4 +- banks-server/Cargo.toml | 12 +- bench-streamer/Cargo.toml | 8 +- bench-tps/Cargo.toml | 38 +- bloom/Cargo.toml | 8 +- bucket_map/Cargo.toml | 8 +- clap-utils/Cargo.toml | 8 +- clap-v3-utils/Cargo.toml | 8 +- cli-config/Cargo.toml | 6 +- cli-output/Cargo.toml | 16 +- cli/Cargo.toml | 38 +- client-test/Cargo.toml | 32 +- client/Cargo.toml | 28 +- core/Cargo.toml | 56 +- dos/Cargo.toml | 30 +- download-utils/Cargo.toml | 6 +- entry/Cargo.toml | 16 +- faucet/Cargo.toml | 14 +- frozen-abi/Cargo.toml | 6 +- frozen-abi/macro/Cargo.toml | 2 +- genesis-utils/Cargo.toml | 8 +- genesis/Cargo.toml | 22 +- geyser-plugin-interface/Cargo.toml | 6 +- geyser-plugin-manager/Cargo.toml | 16 +- gossip/Cargo.toml | 38 +- install/Cargo.toml | 14 +- keygen/Cargo.toml | 12 +- ledger-tool/Cargo.toml | 30 +- ledger/Cargo.toml | 40 +- local-cluster/Cargo.toml | 28 +- log-analyzer/Cargo.toml | 6 +- logger/Cargo.toml | 2 +- measure/Cargo.toml | 4 +- merkle-root-bench/Cargo.toml | 12 +- merkle-tree/Cargo.toml | 4 +- metrics/Cargo.toml | 4 +- net-shaper/Cargo.toml | 4 +- net-utils/Cargo.toml | 8 +- notifier/Cargo.toml | 2 +- perf/Cargo.toml | 12 +- poh-bench/Cargo.toml | 14 +- poh/Cargo.toml | 20 +- program-runtime/Cargo.toml | 14 +- program-test/Cargo.toml | 20 +- .../address-lookup-table-tests/Cargo.toml | 8 +- programs/address-lookup-table/Cargo.toml | 12 +- programs/bpf-loader-tests/Cargo.toml | 8 +- programs/bpf/Cargo.lock | 1043 ++++++++++------- programs/bpf/Cargo.toml | 28 +- programs/bpf/rust/128bit/Cargo.toml | 6 +- programs/bpf/rust/128bit_dep/Cargo.toml | 4 +- programs/bpf/rust/alloc/Cargo.toml | 4 +- programs/bpf/rust/call_depth/Cargo.toml | 4 +- programs/bpf/rust/caller_access/Cargo.toml | 4 +- programs/bpf/rust/curve25519/Cargo.toml | 6 +- programs/bpf/rust/custom_heap/Cargo.toml | 4 +- programs/bpf/rust/dep_crate/Cargo.toml | 6 +- .../bpf/rust/deprecated_loader/Cargo.toml | 4 +- programs/bpf/rust/dup_accounts/Cargo.toml | 4 +- programs/bpf/rust/error_handling/Cargo.toml | 4 +- programs/bpf/rust/external_spend/Cargo.toml | 4 +- programs/bpf/rust/finalize/Cargo.toml | 4 +- .../rust/get_minimum_delegation/Cargo.toml | 4 +- .../Cargo.toml | 4 +- .../rust/instruction_introspection/Cargo.toml | 4 +- programs/bpf/rust/invoke/Cargo.toml | 4 +- programs/bpf/rust/invoke_and_error/Cargo.toml | 4 +- programs/bpf/rust/invoke_and_ok/Cargo.toml | 4 +- .../bpf/rust/invoke_and_return/Cargo.toml | 4 +- programs/bpf/rust/invoked/Cargo.toml | 4 +- programs/bpf/rust/iter/Cargo.toml | 4 +- programs/bpf/rust/log_data/Cargo.toml | 4 +- programs/bpf/rust/many_args/Cargo.toml | 6 +- programs/bpf/rust/many_args_dep/Cargo.toml | 4 +- programs/bpf/rust/mem/Cargo.toml | 10 +- programs/bpf/rust/membuiltins/Cargo.toml | 6 +- programs/bpf/rust/noop/Cargo.toml | 4 +- programs/bpf/rust/panic/Cargo.toml | 4 +- programs/bpf/rust/param_passing/Cargo.toml | 6 +- .../bpf/rust/param_passing_dep/Cargo.toml | 4 +- programs/bpf/rust/rand/Cargo.toml | 4 +- programs/bpf/rust/realloc/Cargo.toml | 4 +- programs/bpf/rust/realloc_invoke/Cargo.toml | 6 +- .../bpf/rust/ro_account_modify/Cargo.toml | 4 +- programs/bpf/rust/ro_modify/Cargo.toml | 4 +- programs/bpf/rust/sanity/Cargo.toml | 10 +- .../bpf/rust/secp256k1_recover/Cargo.toml | 4 +- programs/bpf/rust/sha/Cargo.toml | 4 +- .../rust/sibling_inner_instruction/Cargo.toml | 4 +- .../bpf/rust/sibling_instruction/Cargo.toml | 4 +- programs/bpf/rust/simulation/Cargo.toml | 12 +- programs/bpf/rust/spoof1/Cargo.toml | 4 +- programs/bpf/rust/spoof1_system/Cargo.toml | 4 +- programs/bpf/rust/sysvar/Cargo.toml | 10 +- programs/bpf/rust/upgradeable/Cargo.toml | 4 +- programs/bpf/rust/upgraded/Cargo.toml | 4 +- programs/bpf_loader/Cargo.toml | 14 +- .../bpf_loader/gen-syscall-list/Cargo.toml | 2 +- programs/compute-budget/Cargo.toml | 6 +- programs/config/Cargo.toml | 8 +- programs/ed25519-tests/Cargo.toml | 6 +- programs/stake/Cargo.toml | 18 +- programs/vote/Cargo.toml | 14 +- programs/zk-token-proof/Cargo.toml | 8 +- rayon-threadlimit/Cargo.toml | 2 +- rbpf-cli/Cargo.toml | 10 +- remote-wallet/Cargo.toml | 4 +- rpc-test/Cargo.toml | 18 +- rpc/Cargo.toml | 48 +- runtime/Cargo.toml | 34 +- runtime/store-tool/Cargo.toml | 8 +- sdk/Cargo.toml | 12 +- sdk/cargo-build-bpf/Cargo.toml | 4 +- sdk/cargo-build-sbf/Cargo.toml | 8 +- .../tests/crates/fail/Cargo.toml | 4 +- .../tests/crates/noop/Cargo.toml | 4 +- sdk/cargo-test-bpf/Cargo.toml | 2 +- sdk/cargo-test-sbf/Cargo.toml | 2 +- sdk/gen-headers/Cargo.toml | 2 +- sdk/macro/Cargo.toml | 2 +- sdk/program/Cargo.toml | 10 +- send-transaction-service/Cargo.toml | 14 +- stake-accounts/Cargo.toml | 16 +- storage-bigtable/Cargo.toml | 10 +- storage-bigtable/build-proto/Cargo.lock | 2 +- storage-bigtable/build-proto/Cargo.toml | 2 +- storage-proto/Cargo.toml | 8 +- streamer/Cargo.toml | 10 +- sys-tuner/Cargo.toml | 6 +- test-validator/Cargo.toml | 28 +- tokens/Cargo.toml | 24 +- transaction-dos/Cargo.toml | 32 +- transaction-status/Cargo.toml | 14 +- upload-perf/Cargo.toml | 4 +- validator/Cargo.toml | 50 +- version/Cargo.toml | 8 +- watchtower/Cargo.toml | 20 +- zk-token-sdk/Cargo.toml | 6 +- 144 files changed, 1646 insertions(+), 1447 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 38893e6033..ba2bb40929 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1739,7 +1739,7 @@ dependencies = [ [[package]] name = "gen-headers" -version = "1.14.174" +version = "1.14.175" dependencies = [ "log", "regex", @@ -1747,7 +1747,7 @@ dependencies = [ [[package]] name = "gen-syscall-list" -version = "1.14.174" +version = "1.14.175" dependencies = [ "regex", ] @@ -3848,15 +3848,15 @@ dependencies = [ [[package]] name = "rbpf-cli" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 3.1.8", "serde", "serde_json", "solana-bpf-loader-program", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana_rbpf", ] @@ -4614,7 +4614,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.14.174" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -4627,7 +4627,7 @@ dependencies = [ "serde_json", "solana-address-lookup-table-program", "solana-config-program", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-vote-program", "spl-token", "spl-token-2022 0.6.0", @@ -4637,21 +4637,21 @@ dependencies = [ [[package]] name = "solana-accounts-bench" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "log", "rayon", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", ] [[package]] name = "solana-accounts-cluster-bench" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "log", @@ -4664,11 +4664,11 @@ dependencies = [ "solana-faucet", "solana-gossip", "solana-local-cluster", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-net-utils", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -4678,7 +4678,7 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "bytemuck", @@ -4687,28 +4687,28 @@ dependencies = [ "num-traits", "rustc_version 0.4.0", "serde", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-program 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-program 1.14.175", "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "thiserror", ] [[package]] name = "solana-address-lookup-table-program-tests" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "bincode", "solana-address-lookup-table-program", "solana-program-test", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-banking-bench" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 3.1.8", "crossbeam-channel", @@ -4719,27 +4719,27 @@ dependencies = [ "solana-core", "solana-gossip", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-perf", "solana-poh", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-version", ] [[package]] name = "solana-banks-client" -version = "1.14.174" +version = "1.14.175" dependencies = [ "borsh", "futures 0.3.21", "solana-banks-interface", "solana-banks-server", - "solana-program 1.14.174", + "solana-program 1.14.175", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "tarpc", "thiserror", "tokio", @@ -4748,16 +4748,16 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.14.174" +version = "1.14.175" dependencies = [ "serde", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "tarpc", ] [[package]] name = "solana-banks-server" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "crossbeam-channel", @@ -4765,7 +4765,7 @@ dependencies = [ "solana-banks-interface", "solana-client", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-send-transaction-service", "tarpc", "tokio", @@ -4775,7 +4775,7 @@ dependencies = [ [[package]] name = "solana-bench-streamer" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 3.1.8", "crossbeam-channel", @@ -4786,7 +4786,7 @@ dependencies = [ [[package]] name = "solana-bench-tps" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "crossbeam-channel", @@ -4803,13 +4803,13 @@ dependencies = [ "solana-genesis", "solana-gossip", "solana-local-cluster", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-net-utils", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-version", @@ -4818,7 +4818,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bv", "fnv", @@ -4828,14 +4828,14 @@ dependencies = [ "rustc_version 0.4.0", "serde", "serde_derive", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-sdk 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bpf-loader-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "byteorder", @@ -4846,26 +4846,26 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-runtime", - "solana-sdk 1.14.174", - "solana-zk-token-sdk 1.14.174", + "solana-sdk 1.14.175", + "solana-zk-token-sdk 1.14.175", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bpf-loader-program-tests" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "bincode", "solana-bpf-loader-program", "solana-program-test", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bucket-map" -version = "1.14.174" +version = "1.14.175" dependencies = [ "fs_extra", "log", @@ -4873,24 +4873,24 @@ dependencies = [ "modular-bitfield", "rand 0.7.3", "rayon", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "tempfile", ] [[package]] name = "solana-cargo-build-bpf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "cargo_metadata", "clap 3.1.8", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-cargo-build-sbf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bzip2", "cargo_metadata", @@ -4899,14 +4899,14 @@ dependencies = [ "regex", "serial_test", "solana-download-utils", - "solana-logger 1.14.174", - "solana-sdk 1.14.174", + "solana-logger 1.14.175", + "solana-sdk 1.14.175", "tar", ] [[package]] name = "solana-cargo-test-bpf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "cargo_metadata", "clap 3.1.8", @@ -4914,7 +4914,7 @@ dependencies = [ [[package]] name = "solana-cargo-test-sbf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "cargo_metadata", "clap 3.1.8", @@ -4922,14 +4922,14 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.14.174" +version = "1.14.175" dependencies = [ "chrono", "clap 2.33.3", "rpassword", "solana-perf", "solana-remote-wallet", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "tempfile", "thiserror", "tiny-bip39", @@ -4939,14 +4939,14 @@ dependencies = [ [[package]] name = "solana-clap-v3-utils" -version = "1.14.174" +version = "1.14.175" dependencies = [ "chrono", "clap 3.1.8", "rpassword", "solana-perf", "solana-remote-wallet", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "tempfile", "thiserror", "tiny-bip39", @@ -4956,7 +4956,7 @@ dependencies = [ [[package]] name = "solana-cli" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "bs58", @@ -4984,10 +4984,10 @@ dependencies = [ "solana-client", "solana-config-program", "solana-faucet", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-program-runtime", "solana-remote-wallet", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -5002,7 +5002,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.14.174" +version = "1.14.175" dependencies = [ "anyhow", "dirs-next", @@ -5011,13 +5011,13 @@ dependencies = [ "serde_derive", "serde_yaml", "solana-clap-utils", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "url 2.2.2", ] [[package]] name = "solana-cli-output" -version = "1.14.174" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -5035,7 +5035,7 @@ dependencies = [ "solana-clap-utils", "solana-cli-config", "solana-client", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-transaction-status", "solana-vote-program", "spl-memo", @@ -5043,7 +5043,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.14.174" +version = "1.14.175" dependencies = [ "anyhow", "assert_matches", @@ -5079,12 +5079,12 @@ dependencies = [ "solana-account-decoder", "solana-clap-utils", "solana-faucet", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-net-utils", "solana-perf", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-transaction-status", "solana-version", @@ -5100,14 +5100,14 @@ dependencies = [ [[package]] name = "solana-client-test" -version = "1.14.174" +version = "1.14.175" dependencies = [ "futures-util", "serde_json", "serial_test", "solana-client", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-merkle-tree", "solana-metrics", @@ -5115,7 +5115,7 @@ dependencies = [ "solana-rayon-threadlimit", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -5126,28 +5126,28 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-config-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "chrono", "serde", "serde_derive", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-core" -version = "1.14.174" +version = "1.14.175" dependencies = [ "ahash", "base64 0.13.0", @@ -5180,12 +5180,12 @@ dependencies = [ "solana-bloom", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-geyser-plugin-manager", "solana-gossip", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-net-utils", @@ -5195,7 +5195,7 @@ dependencies = [ "solana-rayon-threadlimit", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-stake-program", "solana-streamer", @@ -5215,7 +5215,7 @@ dependencies = [ [[package]] name = "solana-dos" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "clap 3.1.8", @@ -5231,42 +5231,42 @@ dependencies = [ "solana-faucet", "solana-gossip", "solana-local-cluster", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-net-utils", "solana-perf", "solana-rpc", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-version", ] [[package]] name = "solana-download-utils" -version = "1.14.174" +version = "1.14.175" dependencies = [ "console", "indicatif", "log", "reqwest", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-ed25519-program-tests" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "ed25519-dalek", "rand 0.7.3", "solana-program-test", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-entry" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "crossbeam-channel", @@ -5278,18 +5278,18 @@ dependencies = [ "rand 0.7.3", "rayon", "serde", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-merkle-tree", "solana-metrics", "solana-perf", "solana-rayon-threadlimit", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-faucet" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "byteorder", @@ -5300,9 +5300,9 @@ dependencies = [ "serde_derive", "solana-clap-utils", "solana-cli-config", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-metrics", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", "spl-memo", "thiserror", @@ -5345,7 +5345,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.14.174" +version = "1.14.175" dependencies = [ "ahash", "blake3", @@ -5370,8 +5370,8 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "subtle", "thiserror", ] @@ -5390,7 +5390,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.174" +version = "1.14.175" dependencies = [ "proc-macro2 1.0.86", "quote 1.0.36", @@ -5400,7 +5400,7 @@ dependencies = [ [[package]] name = "solana-genesis" -version = "1.14.174" +version = "1.14.175" dependencies = [ "base64 0.13.0", "clap 2.33.3", @@ -5411,9 +5411,9 @@ dependencies = [ "solana-cli-config", "solana-entry", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-version", "solana-vote-program", @@ -5422,26 +5422,26 @@ dependencies = [ [[package]] name = "solana-genesis-utils" -version = "1.14.174" +version = "1.14.175" dependencies = [ "solana-download-utils", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-geyser-plugin-interface" -version = "1.14.174" +version = "1.14.175" dependencies = [ "log", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-geyser-plugin-manager" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bs58", "crossbeam-channel", @@ -5454,14 +5454,14 @@ dependencies = [ "solana-metrics", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-gossip" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "bv", @@ -5488,17 +5488,17 @@ dependencies = [ "solana-clap-utils", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-net-utils", "solana-perf", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-version", "solana-vote-program", @@ -5507,7 +5507,7 @@ dependencies = [ [[package]] name = "solana-install" -version = "1.14.174" +version = "1.14.175" dependencies = [ "atty", "bincode", @@ -5528,8 +5528,8 @@ dependencies = [ "solana-clap-utils", "solana-client", "solana-config-program", - "solana-logger 1.14.174", - "solana-sdk 1.14.174", + "solana-logger 1.14.175", + "solana-sdk 1.14.175", "solana-version", "tar", "tempfile", @@ -5540,7 +5540,7 @@ dependencies = [ [[package]] name = "solana-keygen" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bs58", "clap 3.1.8", @@ -5549,14 +5549,14 @@ dependencies = [ "solana-clap-v3-utils", "solana-cli-config", "solana-remote-wallet", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", "tiny-bip39", ] [[package]] name = "solana-ledger" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "bincode", @@ -5590,16 +5590,16 @@ dependencies = [ "solana-account-decoder", "solana-bpf-loader-program", "solana-entry", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-perf", "solana-program-runtime", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-storage-bigtable", "solana-storage-proto", @@ -5618,7 +5618,7 @@ dependencies = [ [[package]] name = "solana-ledger-tool" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_cmd", "base64 0.13.0", @@ -5640,10 +5640,10 @@ dependencies = [ "solana-core", "solana-entry", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-storage-bigtable", "solana-transaction-status", @@ -5655,7 +5655,7 @@ dependencies = [ [[package]] name = "solana-local-cluster" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "crossbeam-channel", @@ -5673,9 +5673,9 @@ dependencies = [ "solana-entry", "solana-gossip", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-streamer", "solana-vote-program", @@ -5684,13 +5684,13 @@ dependencies = [ [[package]] name = "solana-log-analyzer" -version = "1.14.174" +version = "1.14.175" dependencies = [ "byte-unit", "clap 3.1.8", "serde", "serde_json", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-version", ] @@ -5707,7 +5707,7 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.174" +version = "1.14.175" dependencies = [ "env_logger", "lazy_static", @@ -5716,38 +5716,38 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.174" +version = "1.14.175" dependencies = [ "log", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-merkle-root-bench" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "log", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", ] [[package]] name = "solana-merkle-tree" -version = "1.14.174" +version = "1.14.175" dependencies = [ "fast-math", "hex", "matches", - "solana-program 1.14.174", + "solana-program 1.14.175", ] [[package]] name = "solana-metrics" -version = "1.14.174" +version = "1.14.175" dependencies = [ "crossbeam-channel", "env_logger", @@ -5757,23 +5757,23 @@ dependencies = [ "rand 0.7.3", "reqwest", "serial_test", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-net-shaper" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 3.1.8", "rand 0.7.3", "serde", "serde_json", - "solana-logger 1.14.174", + "solana-logger 1.14.175", ] [[package]] name = "solana-net-utils" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "clap 3.1.8", @@ -5784,8 +5784,8 @@ dependencies = [ "serde", "serde_derive", "socket2", - "solana-logger 1.14.174", - "solana-sdk 1.14.174", + "solana-logger 1.14.175", + "solana-sdk 1.14.175", "solana-version", "tokio", "url 2.2.2", @@ -5793,7 +5793,7 @@ dependencies = [ [[package]] name = "solana-notifier" -version = "1.14.174" +version = "1.14.175" dependencies = [ "log", "reqwest", @@ -5802,7 +5802,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "ahash", "bincode", @@ -5821,17 +5821,17 @@ dependencies = [ "rand_chacha 0.2.2", "rayon", "serde", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-metrics", "solana-rayon-threadlimit", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-vote-program", "test-case", ] [[package]] name = "solana-poh" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "core_affinity", @@ -5841,29 +5841,29 @@ dependencies = [ "rand 0.7.3", "solana-entry", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-perf", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-sys-tuner", "thiserror", ] [[package]] name = "solana-poh-bench" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 3.1.8", "log", "rand 0.7.3", "rayon", "solana-entry", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-perf", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", ] @@ -5918,7 +5918,7 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "anyhow", "assert_matches", @@ -5956,10 +5956,10 @@ dependencies = [ "serde_json", "sha2 0.10.2", "sha3 0.10.8", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", - "solana-sdk-macro 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", + "solana-sdk-macro 1.14.175", "static_assertions", "thiserror", "tiny-bip39", @@ -5969,7 +5969,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.174" +version = "1.14.175" dependencies = [ "base64 0.13.0", "bincode", @@ -5984,18 +5984,18 @@ dependencies = [ "rand 0.7.3", "rustc_version 0.4.0", "serde", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "async-trait", @@ -6007,10 +6007,10 @@ dependencies = [ "solana-banks-client", "solana-banks-server", "solana-bpf-loader-program", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-program-runtime", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-vote-program", "thiserror", @@ -6019,7 +6019,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.14.174" +version = "1.14.175" dependencies = [ "lazy_static", "num_cpus", @@ -6027,7 +6027,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.174" +version = "1.14.175" dependencies = [ "console", "dialoguer", @@ -6038,14 +6038,14 @@ dependencies = [ "parking_lot 0.12.1", "qstring", "semver 1.0.10", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "thiserror", "uriparse", ] [[package]] name = "solana-rpc" -version = "1.14.174" +version = "1.14.175" dependencies = [ "base64 0.13.0", "bincode", @@ -6081,7 +6081,7 @@ dependencies = [ "solana-poh", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-stake-program", "solana-storage-bigtable", @@ -6100,7 +6100,7 @@ dependencies = [ [[package]] name = "solana-rpc-test" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "bs58", @@ -6112,9 +6112,9 @@ dependencies = [ "serde_json", "solana-account-decoder", "solana-client", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-rpc", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -6123,7 +6123,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.14.174" +version = "1.14.175" dependencies = [ "arrayref", "assert_matches", @@ -6166,18 +6166,18 @@ dependencies = [ "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-program-runtime", "solana-rayon-threadlimit", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.14.174", + "solana-zk-token-sdk 1.14.175", "strum", "strum_macros", "symlink", @@ -6242,7 +6242,7 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.174" +version = "1.14.175" dependencies = [ "anyhow", "assert_matches", @@ -6282,11 +6282,11 @@ dependencies = [ "serde_json", "sha2 0.10.2", "sha3 0.10.8", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", - "solana-program 1.14.174", - "solana-sdk-macro 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", + "solana-program 1.14.175", + "solana-sdk-macro 1.14.175", "static_assertions", "thiserror", "tiny-bip39", @@ -6309,7 +6309,7 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bs58", "proc-macro2 1.0.86", @@ -6320,21 +6320,21 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "1.14.174" +version = "1.14.175" dependencies = [ "crossbeam-channel", "log", "solana-client", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", ] [[package]] name = "solana-stake-accounts" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "solana-clap-utils", @@ -6342,13 +6342,13 @@ dependencies = [ "solana-client", "solana-remote-wallet", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-stake-program", ] [[package]] name = "solana-stake-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "assert_matches", "bincode", @@ -6360,12 +6360,12 @@ dependencies = [ "serde", "serde_derive", "solana-config-program", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-vote-program", "test-case", "thiserror", @@ -6373,7 +6373,7 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" -version = "1.14.174" +version = "1.14.175" dependencies = [ "backoff", "bincode", @@ -6394,7 +6394,7 @@ dependencies = [ "serde_derive", "smpl_jwt", "solana-metrics", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-storage-proto", "solana-transaction-status", "thiserror", @@ -6405,7 +6405,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "bs58", @@ -6414,25 +6414,25 @@ dependencies = [ "protobuf-src", "serde", "solana-account-decoder", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-transaction-status", "tonic-build 0.8.0", ] [[package]] name = "solana-store-tool" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "log", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-runtime", "solana-version", ] [[package]] name = "solana-streamer" -version = "1.14.174" +version = "1.14.175" dependencies = [ "crossbeam-channel", "futures-util", @@ -6449,10 +6449,10 @@ dependencies = [ "rand 0.7.3", "rcgen", "rustls 0.20.6", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-metrics", "solana-perf", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "thiserror", "tokio", "x509-parser", @@ -6460,13 +6460,13 @@ dependencies = [ [[package]] name = "solana-sys-tuner" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "libc", "log", "nix", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-version", "sysctl", "unix_socket2", @@ -6475,7 +6475,7 @@ dependencies = [ [[package]] name = "solana-test-validator" -version = "1.14.174" +version = "1.14.175" dependencies = [ "base64 0.13.0", "log", @@ -6486,20 +6486,20 @@ dependencies = [ "solana-core", "solana-gossip", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-net-utils", "solana-program-runtime", "solana-program-test", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "tokio", ] [[package]] name = "solana-tokens" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "chrono", @@ -6515,9 +6515,9 @@ dependencies = [ "solana-clap-utils", "solana-cli-config", "solana-client", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-remote-wallet", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -6530,7 +6530,7 @@ dependencies = [ [[package]] name = "solana-transaction-dos" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "clap 2.33.3", @@ -6544,11 +6544,11 @@ dependencies = [ "solana-faucet", "solana-gossip", "solana-local-cluster", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-measure", "solana-net-utils", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-streamer", "solana-transaction-status", "solana-version", @@ -6556,7 +6556,7 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "1.14.174" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -6572,7 +6572,7 @@ dependencies = [ "solana-address-lookup-table-program", "solana-measure", "solana-metrics", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-vote-program", "spl-associated-token-account", "spl-memo", @@ -6583,7 +6583,7 @@ dependencies = [ [[package]] name = "solana-upload-perf" -version = "1.14.174" +version = "1.14.175" dependencies = [ "serde_json", "solana-metrics", @@ -6591,7 +6591,7 @@ dependencies = [ [[package]] name = "solana-validator" -version = "1.14.174" +version = "1.14.175" dependencies = [ "chrono", "clap 2.33.3", @@ -6622,14 +6622,14 @@ dependencies = [ "solana-genesis-utils", "solana-gossip", "solana-ledger", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-metrics", "solana-net-utils", "solana-perf", "solana-poh", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-storage-bigtable", "solana-streamer", @@ -6642,21 +6642,21 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.14.174" +version = "1.14.175" dependencies = [ "log", "rustc_version 0.4.0", "semver 1.0.10", "serde", "serde_derive", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-sdk 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-sdk 1.14.175", ] [[package]] name = "solana-vote-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bincode", "itertools", @@ -6667,19 +6667,19 @@ dependencies = [ "rustc_version 0.4.0", "serde", "serde_derive", - "solana-frozen-abi 1.14.174", - "solana-frozen-abi-macro 1.14.174", - "solana-logger 1.14.174", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "test-case", "thiserror", ] [[package]] name = "solana-watchtower" -version = "1.14.174" +version = "1.14.175" dependencies = [ "clap 2.33.3", "humantime", @@ -6688,24 +6688,24 @@ dependencies = [ "solana-cli-config", "solana-cli-output", "solana-client", - "solana-logger 1.14.174", + "solana-logger 1.14.175", "solana-metrics", "solana-notifier", - "solana-sdk 1.14.174", + "solana-sdk 1.14.175", "solana-version", ] [[package]] name = "solana-zk-token-proof-program" -version = "1.14.174" +version = "1.14.175" dependencies = [ "bytemuck", "getrandom 0.1.16", "num-derive", "num-traits", "solana-program-runtime", - "solana-sdk 1.14.174", - "solana-zk-token-sdk 1.14.174", + "solana-sdk 1.14.175", + "solana-zk-token-sdk 1.14.175", ] [[package]] @@ -6741,7 +6741,7 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.174" +version = "1.14.175" dependencies = [ "aes-gcm-siv", "arrayref", @@ -6761,8 +6761,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.174", - "solana-sdk 1.14.174", + "solana-program 1.14.175", + "solana-sdk 1.14.175", "subtle", "thiserror", "zeroize", diff --git a/account-decoder/Cargo.toml b/account-decoder/Cargo.toml index 7a9409576b..db7590a4b6 100644 --- a/account-decoder/Cargo.toml +++ b/account-decoder/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-account-decoder" -version = "1.14.174" +version = "1.14.175" description = "Solana account decoder" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -19,10 +19,10 @@ lazy_static = "1.4.0" serde = "1.0.138" serde_derive = "1.0.103" serde_json = "1.0.81" -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-config-program = { path = "../programs/config", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-config-program = { path = "../programs/config", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } spl-token-2022 = { version = "=0.6.0", features = ["no-entrypoint"] } thiserror = "1.0" diff --git a/accounts-bench/Cargo.toml b/accounts-bench/Cargo.toml index 716aaaa1d0..f2fc0c9e63 100644 --- a/accounts-bench/Cargo.toml +++ b/accounts-bench/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-accounts-bench" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -12,11 +12,11 @@ publish = false clap = "2.33.1" log = "0.4.17" rayon = "1.5.3" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/accounts-cluster-bench/Cargo.toml b/accounts-cluster-bench/Cargo.toml index 334da846f7..3b215f8857 100644 --- a/accounts-cluster-bench/Cargo.toml +++ b/accounts-cluster-bench/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-accounts-cluster-bench" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -13,25 +13,25 @@ clap = "2.33.1" log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } [dev-dependencies] -solana-core = { path = "../core", version = "=1.14.174" } -solana-local-cluster = { path = "../local-cluster", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-local-cluster = { path = "../local-cluster", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/banking-bench/Cargo.toml b/banking-bench/Cargo.toml index e7c2505cfa..38c2523c76 100644 --- a/banking-bench/Cargo.toml +++ b/banking-bench/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-banking-bench" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,18 +14,18 @@ crossbeam-channel = "0.5" log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-poh = { path = "../poh", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-poh = { path = "../poh", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/banks-client/Cargo.toml b/banks-client/Cargo.toml index 82ae0fe632..82335ebfb8 100644 --- a/banks-client/Cargo.toml +++ b/banks-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-banks-client" -version = "1.14.174" +version = "1.14.175" description = "Solana banks client" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,17 +12,17 @@ edition = "2021" [dependencies] borsh = "0.9.3" futures = "0.3" -solana-banks-interface = { path = "../banks-interface", version = "=1.14.174" } -solana-program = { path = "../sdk/program", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-banks-interface = { path = "../banks-interface", version = "=1.14.175" } +solana-program = { path = "../sdk/program", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } tarpc = { version = "0.29.0", features = ["full"] } thiserror = "1.0" tokio = { version = "~1.14.1", features = ["full"] } tokio-serde = { version = "0.8", features = ["bincode"] } [dev-dependencies] -solana-banks-server = { path = "../banks-server", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } +solana-banks-server = { path = "../banks-server", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/banks-interface/Cargo.toml b/banks-interface/Cargo.toml index 16624f4613..3fe02c7f2e 100644 --- a/banks-interface/Cargo.toml +++ b/banks-interface/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-banks-interface" -version = "1.14.174" +version = "1.14.175" description = "Solana banks RPC interface" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -11,7 +11,7 @@ edition = "2021" [dependencies] serde = { version = "1.0.138", features = ["derive"] } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } tarpc = { version = "0.29.0", features = ["full"] } [lib] diff --git a/banks-server/Cargo.toml b/banks-server/Cargo.toml index 52f6fa93cd..dc7e719c87 100644 --- a/banks-server/Cargo.toml +++ b/banks-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-banks-server" -version = "1.14.174" +version = "1.14.175" description = "Solana banks server" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,11 +13,11 @@ edition = "2021" bincode = "1.3.3" crossbeam-channel = "0.5" futures = "0.3" -solana-banks-interface = { path = "../banks-interface", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.174" } +solana-banks-interface = { path = "../banks-interface", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.175" } tarpc = { version = "0.29.0", features = ["full"] } tokio = { version = "1", features = ["full"] } tokio-serde = { version = "0.8", features = ["bincode"] } diff --git a/bench-streamer/Cargo.toml b/bench-streamer/Cargo.toml index 900b6e5d62..6abe759822 100644 --- a/bench-streamer/Cargo.toml +++ b/bench-streamer/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-bench-streamer" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -11,9 +11,9 @@ publish = false [dependencies] clap = { version = "3.1.5", features = ["cargo"] } crossbeam-channel = "0.5" -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/bench-tps/Cargo.toml b/bench-tps/Cargo.toml index 8d3603c52d..610a326d33 100644 --- a/bench-tps/Cargo.toml +++ b/bench-tps/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-bench-tps" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -15,28 +15,28 @@ log = "0.4.17" rayon = "1.5.3" serde_json = "1.0.81" serde_yaml = "0.8.26" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-genesis = { path = "../genesis", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-genesis = { path = "../genesis", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } thiserror = "1.0" [dev-dependencies] serial_test = "0.8.0" -solana-local-cluster = { path = "../local-cluster", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } +solana-local-cluster = { path = "../local-cluster", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/bloom/Cargo.toml b/bloom/Cargo.toml index 6e932f142c..d8463ac3e8 100644 --- a/bloom/Cargo.toml +++ b/bloom/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bloom" -version = "1.14.174" +version = "1.14.175" description = "Solana bloom filter" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -17,9 +17,9 @@ rand = "0.7.0" rayon = "1.5.3" serde = { version = "1.0.138", features = ["rc"] } serde_derive = "1.0.103" -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/bucket_map/Cargo.toml b/bucket_map/Cargo.toml index 2fae432e44..8071ebeea5 100644 --- a/bucket_map/Cargo.toml +++ b/bucket_map/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bucket-map" -version = "1.14.174" +version = "1.14.175" description = "solana-bucket-map" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-bucket-map" @@ -15,14 +15,14 @@ log = { version = "0.4.17" } memmap2 = "0.5.3" modular-bitfield = "0.11.2" rand = "0.7.0" -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } tempfile = "3.3.0" [dev-dependencies] fs_extra = "1.2.0" rayon = "1.5.3" -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/clap-utils/Cargo.toml b/clap-utils/Cargo.toml index acfd0d5ccf..220c4289a2 100644 --- a/clap-utils/Cargo.toml +++ b/clap-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-clap-utils" -version = "1.14.174" +version = "1.14.175" description = "Solana utilities for the clap" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,9 +13,9 @@ edition = "2021" chrono = "0.4" clap = "2.33.0" rpassword = "6.0" -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174", default-features = false } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175", default-features = false } +solana-sdk = { path = "../sdk", version = "=1.14.175" } thiserror = "1.0.31" tiny-bip39 = "0.8.2" uriparse = "0.6.4" diff --git a/clap-v3-utils/Cargo.toml b/clap-v3-utils/Cargo.toml index 6e0d1dad25..5995298335 100644 --- a/clap-v3-utils/Cargo.toml +++ b/clap-v3-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-clap-v3-utils" -version = "1.14.174" +version = "1.14.175" description = "Solana utilities for the clap v3" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,9 +13,9 @@ edition = "2021" chrono = "0.4" clap = { version = "3.1.5", features = ["cargo"] } rpassword = "6.0" -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174", default-features = false } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175", default-features = false } +solana-sdk = { path = "../sdk", version = "=1.14.175" } thiserror = "1.0.31" tiny-bip39 = "0.8.2" uriparse = "0.6.4" diff --git a/cli-config/Cargo.toml b/cli-config/Cargo.toml index 8b86fad92a..b680238733 100644 --- a/cli-config/Cargo.toml +++ b/cli-config/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-cli-config" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -15,8 +15,8 @@ lazy_static = "1.4.0" serde = "1.0.138" serde_derive = "1.0.103" serde_yaml = "0.8.26" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } url = "2.2.2" [dev-dependencies] diff --git a/cli-output/Cargo.toml b/cli-output/Cargo.toml index 22c5ca5eaf..f79c170109 100644 --- a/cli-output/Cargo.toml +++ b/cli-output/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-cli-output" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -21,13 +21,13 @@ pretty-hex = "0.3.0" semver = "1.0.10" serde = "1.0.138" serde_json = "1.0.81" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } [dev-dependencies] diff --git a/cli/Cargo.toml b/cli/Cargo.toml index ea0c246be0..8571941933 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-cli" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -27,30 +27,30 @@ semver = "1.0.10" serde = "1.0.138" serde_derive = "1.0.103" serde_json = "1.0.81" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-cli-output = { path = "../cli-output", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-config-program = { path = "../programs/config", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-cli-output = { path = "../cli-output", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-config-program = { path = "../programs/config", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } solana_rbpf = "=0.2.31" spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } thiserror = "1.0.31" tiny-bip39 = "0.8.2" [dev-dependencies] -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } tempfile = "3.3.0" [[bin]] diff --git a/client-test/Cargo.toml b/client-test/Cargo.toml index c24d138af8..801a375e2a 100644 --- a/client-test/Cargo.toml +++ b/client-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-client-test" -version = "1.14.174" +version = "1.14.175" description = "Solana RPC Test" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,25 +14,25 @@ publish = false futures-util = "0.3.21" serde_json = "1.0.81" serial_test = "0.8.0" -solana-client = { path = "../client", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-merkle-tree = { path = "../merkle-tree", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-merkle-tree = { path = "../merkle-tree", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } systemstat = "0.1.11" tokio = { version = "~1.14.1", features = ["full"] } [dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/client/Cargo.toml b/client/Cargo.toml index bfdfa74aa2..2bcdc383c1 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-client" -version = "1.14.174" +version = "1.14.175" description = "Solana Client" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -38,17 +38,17 @@ semver = "1.0.10" serde = "1.0.138" serde_derive = "1.0.103" serde_json = "1.0.81" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-token-2022 = { version = "=0.6.0", features = ["no-entrypoint"] } thiserror = "1.0" tokio = { version = "1", features = ["full"] } @@ -61,8 +61,8 @@ url = "2.2.2" anyhow = "1.0.58" assert_matches = "1.5.0" jsonrpc-http-server = "18.0.0" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/core/Cargo.toml b/core/Cargo.toml index 7d8ace7c0a..01f79d35d5 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "solana-core" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-core" readme = "../README.md" @@ -36,30 +36,30 @@ rand_chacha = "0.2.2" rayon = "1.5.3" serde = "1.0.138" serde_derive = "1.0.103" -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-bloom = { path = "../bloom", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-geyser-plugin-manager = { path = "../geyser-plugin-manager", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-poh = { path = "../poh", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-bloom = { path = "../bloom", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-geyser-plugin-manager = { path = "../geyser-plugin-manager", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-poh = { path = "../poh", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } sys-info = "0.9.1" tempfile = "3.3.0" thiserror = "1.0" @@ -71,9 +71,9 @@ matches = "0.1.9" raptorq = "1.7.0" serde_json = "1.0.81" serial_test = "0.8.0" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } static_assertions = "1.1.0" systemstat = "0.1.11" test-case = "2.1.0" diff --git a/dos/Cargo.toml b/dos/Cargo.toml index 88314b963f..9e7fe97d1f 100644 --- a/dos/Cargo.toml +++ b/dos/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-dos" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -17,23 +17,23 @@ itertools = "0.10.3" log = "0.4.17" rand = "0.7.0" serde = "1.0.138" -solana-bench-tps = { path = "../bench-tps", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-bench-tps = { path = "../bench-tps", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [dev-dependencies] serial_test = "0.8.0" -solana-local-cluster = { path = "../local-cluster", version = "=1.14.174" } +solana-local-cluster = { path = "../local-cluster", version = "=1.14.175" } diff --git a/download-utils/Cargo.toml b/download-utils/Cargo.toml index edb4869e31..5929cf373a 100644 --- a/download-utils/Cargo.toml +++ b/download-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-download-utils" -version = "1.14.174" +version = "1.14.175" description = "Solana Download Utils" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,8 +14,8 @@ console = "0.15.0" indicatif = "0.16.2" log = "0.4.17" reqwest = { version = "0.11.11", default-features = false, features = ["blocking", "brotli", "deflate", "gzip", "rustls-tls", "json"] } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/entry/Cargo.toml b/entry/Cargo.toml index 706f33fc8e..e2678271ed 100644 --- a/entry/Cargo.toml +++ b/entry/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-entry" -version = "1.14.174" +version = "1.14.175" description = "Solana Entry" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -19,16 +19,16 @@ log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" serde = "1.0.138" -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-merkle-tree = { path = "../merkle-tree", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-merkle-tree = { path = "../merkle-tree", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [dev-dependencies] matches = "0.1.9" -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/faucet/Cargo.toml b/faucet/Cargo.toml index b212751bd9..1d5e27205d 100644 --- a/faucet/Cargo.toml +++ b/faucet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-faucet" -version = "1.14.174" +version = "1.14.175" description = "Solana Faucet" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -17,12 +17,12 @@ crossbeam-channel = "0.5" log = "0.4.17" serde = "1.0.138" serde_derive = "1.0.103" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } thiserror = "1.0" tokio = { version = "1", features = ["full"] } diff --git a/frozen-abi/Cargo.toml b/frozen-abi/Cargo.toml index 78401a8940..433e0e327c 100644 --- a/frozen-abi/Cargo.toml +++ b/frozen-abi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-frozen-abi" -version = "1.14.174" +version = "1.14.175" description = "Solana Frozen ABI" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -20,7 +20,7 @@ serde_bytes = "0.11" serde_derive = "1.0" serde_json = "1.0" sha2 = "0.10.2" -solana-frozen-abi-macro = { path = "macro", version = "=1.14.174" } +solana-frozen-abi-macro = { path = "macro", version = "=1.14.175" } thiserror = "1.0" [target.'cfg(not(target_os = "solana"))'.dependencies] @@ -43,7 +43,7 @@ rand_core = { version = "0.6.3", features = ["alloc", "getrandom", "std"] } subtle = { version = "2.4.1", features = ["default", "i128", "std"] } [target.'cfg(not(target_os = "solana"))'.dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [build-dependencies] rustc_version = "0.4" diff --git a/frozen-abi/macro/Cargo.toml b/frozen-abi/macro/Cargo.toml index 53058c4229..258b9f55b7 100644 --- a/frozen-abi/macro/Cargo.toml +++ b/frozen-abi/macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-frozen-abi-macro" -version = "1.14.174" +version = "1.14.175" description = "Solana Frozen ABI Macro" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/genesis-utils/Cargo.toml b/genesis-utils/Cargo.toml index 4704701702..151122e384 100644 --- a/genesis-utils/Cargo.toml +++ b/genesis-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-genesis-utils" -version = "1.14.174" +version = "1.14.175" description = "Solana Genesis Utils" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,9 +10,9 @@ documentation = "https://docs.rs/solana-download-utils" edition = "2021" [dependencies] -solana-download-utils = { path = "../download-utils", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-download-utils = { path = "../download-utils", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/genesis/Cargo.toml b/genesis/Cargo.toml index e51c927b8b..91a0e30c3d 100644 --- a/genesis/Cargo.toml +++ b/genesis/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-genesis" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -15,16 +15,16 @@ clap = "2.33.1" serde = "1.0.138" serde_json = "1.0.81" serde_yaml = "0.8.26" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } tempfile = "3.3.0" [[bin]] diff --git a/geyser-plugin-interface/Cargo.toml b/geyser-plugin-interface/Cargo.toml index 235b5f7483..53203ccc0e 100644 --- a/geyser-plugin-interface/Cargo.toml +++ b/geyser-plugin-interface/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-geyser-plugin-interface" description = "The Solana Geyser plugin interface." -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -11,8 +11,8 @@ documentation = "https://docs.rs/solana-geyser-plugin-interface" [dependencies] log = "0.4.17" -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } thiserror = "1.0.31" [package.metadata.docs.rs] diff --git a/geyser-plugin-manager/Cargo.toml b/geyser-plugin-manager/Cargo.toml index 2c78b2a82b..5cbdb1b7d8 100644 --- a/geyser-plugin-manager/Cargo.toml +++ b/geyser-plugin-manager/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-geyser-plugin-manager" description = "The Solana Geyser plugin manager." -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -16,13 +16,13 @@ json5 = "0.4.1" libloading = "0.7.3" log = "0.4.17" serde_json = "1.0.81" -solana-geyser-plugin-interface = { path = "../geyser-plugin-interface", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } +solana-geyser-plugin-interface = { path = "../geyser-plugin-interface", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } thiserror = "1.0.31" [package.metadata.docs.rs] diff --git a/gossip/Cargo.toml b/gossip/Cargo.toml index f42d28b86b..69c010e216 100644 --- a/gossip/Cargo.toml +++ b/gossip/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-gossip" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -27,24 +27,24 @@ rayon = "1.5.3" serde = "1.0.138" serde_bytes = "0.11" serde_derive = "1.0.103" -solana-bloom = { path = "../bloom", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-bloom = { path = "../bloom", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } thiserror = "1.0" [dev-dependencies] diff --git a/install/Cargo.toml b/install/Cargo.toml index 8c0d77abe4..b7de67187c 100644 --- a/install/Cargo.toml +++ b/install/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-install" description = "The solana cluster software installer" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -26,12 +26,12 @@ reqwest = { version = "0.11.11", default-features = false, features = ["blocking semver = "1.0.10" serde = { version = "1.0.138", features = ["derive"] } serde_yaml = "0.8.26" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-config-program = { path = "../programs/config", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-config-program = { path = "../programs/config", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } tar = "0.4.38" tempfile = "3.3.0" url = "2.2.2" diff --git a/keygen/Cargo.toml b/keygen/Cargo.toml index 6b515cc888..fec470475e 100644 --- a/keygen/Cargo.toml +++ b/keygen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-keygen" -version = "1.14.174" +version = "1.14.175" description = "Solana key generation utility" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,11 +14,11 @@ bs58 = "0.4.0" clap = { version = "3.1.5", features = ["cargo"] } dirs-next = "2.0.0" num_cpus = "1.13.1" -solana-clap-v3-utils = { path = "../clap-v3-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-v3-utils = { path = "../clap-v3-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } tiny-bip39 = "0.8.2" [[bin]] diff --git a/ledger-tool/Cargo.toml b/ledger-tool/Cargo.toml index a3bef10c9b..64f2c3a077 100644 --- a/ledger-tool/Cargo.toml +++ b/ledger-tool/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-ledger-tool" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -22,20 +22,20 @@ log = { version = "0.4.17" } regex = "1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.81" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-output = { path = "../cli-output", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-output = { path = "../cli-output", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } tokio = { version = "1", features = ["full"] } [target.'cfg(not(target_env = "msvc"))'.dependencies] diff --git a/ledger/Cargo.toml b/ledger/Cargo.toml index db12998ac3..cdc3edaa56 100644 --- a/ledger/Cargo.toml +++ b/ledger/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-ledger" -version = "1.14.174" +version = "1.14.175" description = "Solana ledger" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -35,23 +35,23 @@ reed-solomon-erasure = { version = "6.0.0", features = ["simd-accel"] } serde = "1.0.138" serde_bytes = "0.11.6" sha2 = "0.10.2" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.174" } -solana-storage-proto = { path = "../storage-proto", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.175" } +solana-storage-proto = { path = "../storage-proto", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } spl-token-2022 = { version = "=0.6.0", features = ["no-entrypoint"] } static_assertions = "1.1.0" @@ -71,8 +71,8 @@ features = ["lz4"] [dev-dependencies] bs58 = "0.4.0" matches = "0.1.9" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } test-case = "2.1.0" [build-dependencies] diff --git a/local-cluster/Cargo.toml b/local-cluster/Cargo.toml index 61fb9513a0..59b40446a4 100644 --- a/local-cluster/Cargo.toml +++ b/local-cluster/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-local-cluster" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -16,25 +16,25 @@ itertools = "0.10.3" log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" -solana-client = { path = "../client", version = "=1.14.174" } -solana-config-program = { path = "../programs/config", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-config-program = { path = "../programs/config", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } tempfile = "3.3.0" [dev-dependencies] assert_matches = "1.5.0" gag = "1.0.0" serial_test = "0.8.0" -solana-download-utils = { path = "../download-utils", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-download-utils = { path = "../download-utils", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/log-analyzer/Cargo.toml b/log-analyzer/Cargo.toml index 8909c2886a..4221a523b8 100644 --- a/log-analyzer/Cargo.toml +++ b/log-analyzer/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-log-analyzer" description = "The solana cluster network analysis tool" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,8 +14,8 @@ byte-unit = "4.0.14" clap = { version = "3.1.5", features = ["cargo"] } serde = "1.0.138" serde_json = "1.0.81" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [[bin]] name = "solana-log-analyzer" diff --git a/logger/Cargo.toml b/logger/Cargo.toml index 1fb3865be9..0fb43142d5 100644 --- a/logger/Cargo.toml +++ b/logger/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-logger" -version = "1.14.174" +version = "1.14.175" description = "Solana Logger" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/measure/Cargo.toml b/measure/Cargo.toml index cfa985ad19..3be6f63150 100644 --- a/measure/Cargo.toml +++ b/measure/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "solana-measure" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-measure" readme = "../README.md" @@ -12,7 +12,7 @@ edition = "2021" [dependencies] log = "0.4.17" -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/merkle-root-bench/Cargo.toml b/merkle-root-bench/Cargo.toml index 22a0eb08fe..a9b17f1c91 100644 --- a/merkle-root-bench/Cargo.toml +++ b/merkle-root-bench/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-merkle-root-bench" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -11,11 +11,11 @@ publish = false [dependencies] clap = "2.33.1" log = "0.4.17" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/merkle-tree/Cargo.toml b/merkle-tree/Cargo.toml index c41799d0f1..0ce0a437ce 100644 --- a/merkle-tree/Cargo.toml +++ b/merkle-tree/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-merkle-tree" -version = "1.14.174" +version = "1.14.175" description = "Solana Merkle Tree" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -11,7 +11,7 @@ edition = "2021" [dependencies] fast-math = "0.1" -solana-program = { path = "../sdk/program", version = "=1.14.174" } +solana-program = { path = "../sdk/program", version = "=1.14.175" } # This can go once the BPF toolchain target Rust 1.42.0+ [target.bpfel-unknown-unknown.dependencies] diff --git a/metrics/Cargo.toml b/metrics/Cargo.toml index c42b2029f3..141cd6abde 100644 --- a/metrics/Cargo.toml +++ b/metrics/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-metrics" -version = "1.14.174" +version = "1.14.175" description = "Solana Metrics" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -15,7 +15,7 @@ gethostname = "0.2.3" lazy_static = "1.4.0" log = "0.4.17" reqwest = { version = "0.11.11", default-features = false, features = ["blocking", "brotli", "deflate", "gzip", "rustls-tls", "json"] } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [dev-dependencies] env_logger = "0.9.0" diff --git a/net-shaper/Cargo.toml b/net-shaper/Cargo.toml index 89b53a33eb..e357aca2d8 100644 --- a/net-shaper/Cargo.toml +++ b/net-shaper/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-net-shaper" description = "The solana cluster network shaping tool" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,7 +14,7 @@ clap = { version = "3.1.5", features = ["cargo"] } rand = "0.7.0" serde = { version = "1.0.138", features = ["derive"] } serde_json = "1.0.81" -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [[bin]] name = "solana-net-shaper" diff --git a/net-utils/Cargo.toml b/net-utils/Cargo.toml index 7c134207f7..bbd1e31a77 100644 --- a/net-utils/Cargo.toml +++ b/net-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-net-utils" -version = "1.14.174" +version = "1.14.175" description = "Solana Network Utilities" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -19,9 +19,9 @@ rand = "0.7.0" serde = "1.0.138" serde_derive = "1.0.103" socket2 = "0.4.4" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } tokio = { version = "1", features = ["full"] } url = "2.2.2" diff --git a/notifier/Cargo.toml b/notifier/Cargo.toml index e762bc86e3..7f342f9202 100644 --- a/notifier/Cargo.toml +++ b/notifier/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-notifier" -version = "1.14.174" +version = "1.14.175" description = "Solana Notifier" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/perf/Cargo.toml b/perf/Cargo.toml index 2e0ec099ae..134fb3ad7b 100644 --- a/perf/Cargo.toml +++ b/perf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-perf" -version = "1.14.174" +version = "1.14.175" description = "Solana Performance APIs" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -22,10 +22,10 @@ log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" serde = "1.0.138" -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } [target."cfg(target_os = \"linux\")".dependencies] caps = "0.5.3" @@ -38,7 +38,7 @@ name = "solana_perf" [dev-dependencies] matches = "0.1.9" rand_chacha = "0.2.2" -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } test-case = "2.1.0" [[bench]] diff --git a/poh-bench/Cargo.toml b/poh-bench/Cargo.toml index 3907a06eaa..96e65f293d 100644 --- a/poh-bench/Cargo.toml +++ b/poh-bench/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-poh-bench" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,12 +14,12 @@ clap = { version = "3.1.5", features = ["cargo"] } log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/poh/Cargo.toml b/poh/Cargo.toml index 8f68c24dda..272124b951 100644 --- a/poh/Cargo.toml +++ b/poh/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-poh" -version = "1.14.174" +version = "1.14.175" description = "Solana PoH" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,21 +13,21 @@ edition = "2021" core_affinity = "0.5.10" crossbeam-channel = "0.5" log = "0.4.17" -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-sys-tuner = { path = "../sys-tuner", version = "=1.14.174" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-sys-tuner = { path = "../sys-tuner", version = "=1.14.175" } thiserror = "1.0" [dev-dependencies] bincode = "1.3.3" matches = "0.1.9" rand = "0.7.0" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/program-runtime/Cargo.toml b/program-runtime/Cargo.toml index 97b55f7e30..446f8df05d 100644 --- a/program-runtime/Cargo.toml +++ b/program-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-program-runtime" -version = "1.14.174" +version = "1.14.175" description = "Solana program runtime" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -21,16 +21,16 @@ num-derive = { version = "0.3" } num-traits = { version = "0.2" } rand = "0.7.0" serde = { version = "1.0.129", features = ["derive", "rc"] } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } thiserror = "1.0" enum-iterator = "0.8.1" [dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/program-test/Cargo.toml b/program-test/Cargo.toml index 42c5ce484c..3e4b5d4134 100644 --- a/program-test/Cargo.toml +++ b/program-test/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "Apache-2.0" name = "solana-program-test" repository = "https://github.com/solana-labs/solana" -version = "1.14.174" +version = "1.14.175" [dependencies] assert_matches = "1.5.0" @@ -15,16 +15,16 @@ bincode = "1.3.3" chrono-humanize = "0.2.1" log = "0.4.17" serde = "1.0.138" -solana-banks-client = { path = "../banks-client", version = "=1.14.174" } -solana-banks-server = { path = "../banks-server", version = "=1.14.174" } -solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-banks-client = { path = "../banks-client", version = "=1.14.175" } +solana-banks-server = { path = "../banks-server", version = "=1.14.175" } +solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } thiserror = "1.0" tokio = { version = "1", features = ["full"] } [dev-dependencies] -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } diff --git a/programs/address-lookup-table-tests/Cargo.toml b/programs/address-lookup-table-tests/Cargo.toml index 8ea4fb7189..e7b96e75b8 100644 --- a/programs/address-lookup-table-tests/Cargo.toml +++ b/programs/address-lookup-table-tests/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "solana-address-lookup-table-program-tests" -version = "1.14.174" +version = "1.14.175" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" @@ -14,9 +14,9 @@ publish = false [dev-dependencies] assert_matches = "1.5.0" bincode = "1.3.3" -solana-address-lookup-table-program = { path = "../address-lookup-table", version = "=1.14.174" } -solana-program-test = { path = "../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../address-lookup-table", version = "=1.14.175" } +solana-program-test = { path = "../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/address-lookup-table/Cargo.toml b/programs/address-lookup-table/Cargo.toml index 574c29644d..e42120b1de 100644 --- a/programs/address-lookup-table/Cargo.toml +++ b/programs/address-lookup-table/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-address-lookup-table-program" -version = "1.14.174" +version = "1.14.175" description = "Solana address lookup table program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -16,14 +16,14 @@ log = "0.4.17" num-derive = "0.3" num-traits = "0.2" serde = { version = "1.0.138", features = ["derive"] } -solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.174" } -solana-program = { path = "../../sdk/program", version = "=1.14.174" } +solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.175" } +solana-program = { path = "../../sdk/program", version = "=1.14.175" } thiserror = "1.0" [target.'cfg(not(target_os = "solana"))'.dependencies] -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [build-dependencies] rustc_version = "0.4" diff --git a/programs/bpf-loader-tests/Cargo.toml b/programs/bpf-loader-tests/Cargo.toml index c28f1f0165..9b17a0914b 100644 --- a/programs/bpf-loader-tests/Cargo.toml +++ b/programs/bpf-loader-tests/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "solana-bpf-loader-program-tests" -version = "1.14.174" +version = "1.14.175" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" @@ -14,9 +14,9 @@ publish = false [dev-dependencies] assert_matches = "1.5.0" bincode = "1.3.3" -solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.14.174" } -solana-program-test = { path = "../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.14.175" } +solana-program-test = { path = "../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/Cargo.lock b/programs/bpf/Cargo.lock index 7a4f9a42c8..3e473e8a56 100644 --- a/programs/bpf/Cargo.lock +++ b/programs/bpf/Cargo.lock @@ -156,8 +156,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "synstructure", ] @@ -168,8 +168,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -218,8 +218,8 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -229,8 +229,8 @@ version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -268,7 +268,7 @@ checksum = "f523b4e98ba6897ae90994bc18423d9877c54f9047b06a00ddc8122a957b1c70" dependencies = [ "async-trait", "axum-core", - "bitflags", + "bitflags 1.3.2", "bytes", "futures-util", "http", @@ -352,17 +352,21 @@ version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", + "clap 3.1.6", + "env_logger", "lazy_static", "lazycell", + "log", "peeking_take_while", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "regex", "rustc-hash", "shlex", + "which", ] [[package]] @@ -371,6 +375,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "bytemuck", +] + [[package]] name = "bitmaps" version = "2.1.0" @@ -391,7 +404,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "constant_time_eq", - "digest 0.10.3", + "digest 0.10.7", ] [[package]] @@ -459,7 +472,7 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.51", + "proc-macro2 1.0.86", "syn 1.0.109", ] @@ -469,8 +482,8 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -480,8 +493,8 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -521,6 +534,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + [[package]] name = "bumpalo" version = "3.3.0" @@ -558,8 +582,8 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aca418a974d83d40a0c1f0c5cba6ff4bc28d8df099109ca459a2118d40b6322" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -704,7 +728,7 @@ checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -718,7 +742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "indexmap", "lazy_static", "os_str_bytes", @@ -985,8 +1009,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version", "syn 1.0.109", ] @@ -1022,9 +1046,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.0", "crypto-common", @@ -1067,8 +1091,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1095,6 +1119,12 @@ dependencies = [ "syn 0.15.44", ] +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "eager" version = "0.1.0" @@ -1143,8 +1173,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f86b50932a01e7ec5c06160492ab660fb19b6bb2a7878030dd6cd68d21df9d4d" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1193,8 +1223,8 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1206,8 +1236,8 @@ checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef" dependencies = [ "num-bigint 0.4.3", "num-traits", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1218,8 +1248,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" dependencies = [ "once_cell", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1445,8 +1475,8 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -1558,7 +1588,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" dependencies = [ "aho-corasick", - "bstr", + "bstr 0.2.17", "fnv", "log", "regex", @@ -1647,7 +1677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" dependencies = [ "base64 0.13.0", - "bitflags", + "bitflags 1.3.2", "bytes", "headers-core", "http", @@ -1689,6 +1719,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + [[package]] name = "histogram" version = "0.6.9" @@ -1711,7 +1750,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.3", + "digest 0.10.7", ] [[package]] @@ -2049,8 +2088,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2120,9 +2159,12 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] [[package]] name = "kernel32-sys" @@ -2365,9 +2407,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.4.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" @@ -2464,8 +2506,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2510,7 +2552,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset", @@ -2587,8 +2629,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2660,8 +2702,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2713,7 +2755,7 @@ version = "0.10.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -2728,8 +2770,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2809,8 +2851,8 @@ checksum = "084fd65d5dd8b3772edccb5ffd1e4b7eba43897ecd0f9401e330e8c542959408" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2891,7 +2933,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.3", + "digest 0.10.7", ] [[package]] @@ -2957,8 +2999,8 @@ checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -2998,8 +3040,8 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3068,7 +3110,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b83ec2d0af5c5c556257ff52c9f98934e243b9fd39604bfb2a9b75ec2e97f18" dependencies = [ - "proc-macro2 1.0.51", + "proc-macro2 1.0.86", "syn 1.0.109", ] @@ -3098,8 +3140,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "version_check", ] @@ -3110,8 +3152,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "version_check", ] @@ -3126,9 +3168,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.51" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -3201,8 +3243,8 @@ checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3214,8 +3256,8 @@ checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3248,6 +3290,59 @@ dependencies = [ "autotools", ] +[[package]] +name = "pyth-oracle" +version = "2.32.0" +source = "git+https://github.com/pyth-network/pyth-client?tag=oracle-v2.32.0#a2786818bbd612ed512befe6c6863745b1b67c06" +dependencies = [ + "bindgen", + "bitflags 2.6.0", + "bytemuck", + "byteorder 1.4.3", + "num-derive", + "num-traits", + "pythnet-sdk 1.13.6 (git+https://github.com/pyth-network/pyth-crosschain?rev=60144002053a93f424be70decd8a8ccb8d618d81)", + "solana-program 1.14.17", + "solana-sdk 1.14.17", + "thiserror", +] + +[[package]] +name = "pythnet-sdk" +version = "1.13.6" +source = "git+https://github.com/pyth-network/pyth-crosschain?rev=60144002053a93f424be70decd8a8ccb8d618d81#60144002053a93f424be70decd8a8ccb8d618d81" +dependencies = [ + "bincode", + "borsh", + "bytemuck", + "byteorder 1.4.3", + "fast-math", + "hex", + "rustc_version", + "serde", + "sha3 0.10.8", + "slow_primes", + "thiserror", +] + +[[package]] +name = "pythnet-sdk" +version = "1.13.6" +source = "git+https://github.com/pyth-network/pyth-crosschain?rev=e670f57f89b05398ca352e4accb1e32724a8e1b4#e670f57f89b05398ca352e4accb1e32724a8e1b4" +dependencies = [ + "bincode", + "borsh", + "bytemuck", + "fast-math", + "hex", + "rustc_version", + "serde", + "serde_wormhole 0.1.0 (git+https://github.com/wormhole-foundation/wormhole?tag=v2.17.1)", + "sha3 0.10.8", + "slow_primes", + "wormhole-sdk", +] + [[package]] name = "qstring" version = "0.7.2" @@ -3322,11 +3417,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.51", + "proc-macro2 1.0.86", ] [[package]] @@ -3457,7 +3552,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -3496,6 +3591,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" + [[package]] name = "regex-syntax" version = "0.6.26" @@ -3628,7 +3729,7 @@ version = "0.34.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f5d1c6ed6d1c6915aa64749b809fc1bafff49d160f5d927463658093d7d62ab" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -3722,6 +3823,30 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", + "serde_derive_internals", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -3743,8 +3868,8 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3774,7 +3899,7 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -3799,9 +3924,9 @@ checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c" [[package]] name = "serde" -version = "1.0.138" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" dependencies = [ "serde_derive", ] @@ -3817,12 +3942,23 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.138" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.15", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -3849,6 +3985,31 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_wormhole" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b022bf813578a06341fd453c3fd6e64945d9975191193d5d45e8dbd97d1d84" +dependencies = [ + "base64 0.13.0", + "itoa", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "serde_wormhole" +version = "0.1.0" +source = "git+https://github.com/wormhole-foundation/wormhole?tag=v2.17.1#3e423a75180f9da69263279e9ffce47b1858ae78" +dependencies = [ + "base64 0.13.0", + "itoa", + "serde", + "serde_bytes", + "thiserror", +] + [[package]] name = "serde_yaml" version = "0.8.26" @@ -3894,7 +4055,7 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.7", ] [[package]] @@ -3918,7 +4079,7 @@ checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.7", ] [[package]] @@ -3935,11 +4096,11 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.1" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.3", + "digest 0.10.7", "keccak", ] @@ -4005,6 +4166,15 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +[[package]] +name = "slow_primes" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58267dd2fbaa6dceecba9e3e106d2d90a2b02497c0e8b01b8759beccf5113938" +dependencies = [ + "num", +] + [[package]] name = "smallvec" version = "1.6.1" @@ -4054,7 +4224,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.14.17" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -4067,7 +4237,7 @@ dependencies = [ "serde_json", "solana-address-lookup-table-program", "solana-config-program", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-vote-program", "spl-token", "spl-token-2022 0.6.0", @@ -4077,7 +4247,7 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "bytemuck", @@ -4086,23 +4256,23 @@ dependencies = [ "num-traits", "rustc_version", "serde", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", - "solana-program 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-program 1.14.175", "solana-program-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", ] [[package]] name = "solana-banks-client" -version = "1.14.17" +version = "1.14.175" dependencies = [ "borsh", "futures 0.3.21", "solana-banks-interface", - "solana-program 1.14.17", - "solana-sdk 1.14.17", + "solana-program 1.14.175", + "solana-sdk 1.14.175", "tarpc", "thiserror", "tokio", @@ -4111,16 +4281,16 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.14.17" +version = "1.14.175" dependencies = [ "serde", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "tarpc", ] [[package]] name = "solana-banks-server" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "crossbeam-channel", @@ -4128,7 +4298,7 @@ dependencies = [ "solana-banks-interface", "solana-client", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-send-transaction-service", "tarpc", "tokio", @@ -4138,7 +4308,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bv", "fnv", @@ -4148,14 +4318,14 @@ dependencies = [ "rustc_version", "serde", "serde_derive", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", - "solana-sdk 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bpf-loader-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "byteorder 1.4.3", @@ -4164,15 +4334,15 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.17", - "solana-zk-token-sdk 1.14.17", + "solana-sdk 1.14.175", + "solana-zk-token-sdk 1.14.175", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bpf-programs" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "byteorder 1.4.3", @@ -4188,11 +4358,11 @@ dependencies = [ "solana-bpf-rust-realloc-invoke", "solana-cli-output", "solana-ledger", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-measure", "solana-program-runtime", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-transaction-status", "solana_rbpf", "walkdir", @@ -4200,385 +4370,385 @@ dependencies = [ [[package]] name = "solana-bpf-rust-128bit" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-128bit-dep", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-128bit-dep" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-alloc" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-call-depth" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-caller-access" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-curve25519" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", - "solana-zk-token-sdk 1.14.17", + "solana-program 1.14.175", + "solana-zk-token-sdk 1.14.175", ] [[package]] name = "solana-bpf-rust-custom-heap" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-dep-crate" -version = "1.14.17" +version = "1.14.175" dependencies = [ "byteorder 1.4.3", "solana-address-lookup-table-program", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-deprecated-loader" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-dup-accounts" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-error-handling" -version = "1.14.17" +version = "1.14.175" dependencies = [ "num-derive", "num-traits", - "solana-program 1.14.17", + "solana-program 1.14.175", "thiserror", ] [[package]] name = "solana-bpf-rust-external-spend" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-finalize" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-get-minimum-delegation" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-inner_instruction_alignment_check" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-instruction-introspection" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-invoke" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-invoked", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-invoke-and-error" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-invoke-and-ok" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-invoke-and-return" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-invoked" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-iter" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-log-data" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-many-args" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-many-args-dep", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-many-args-dep" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-mem" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", "solana-program-runtime", "solana-program-test", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bpf-rust-membuiltins" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-mem", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-noop" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-panic" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-param-passing" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-param-passing-dep", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-param-passing-dep" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-rand" -version = "1.14.17" +version = "1.14.175" dependencies = [ "getrandom 0.1.14", "rand 0.7.3", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-realloc" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-realloc-invoke" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-bpf-rust-realloc", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-ro-account_modify" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-ro-modify" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-sanity" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", "solana-program-runtime", "solana-program-test", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bpf-rust-secp256k1-recover" -version = "1.14.17" +version = "1.14.175" dependencies = [ "libsecp256k1 0.7.0", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-sha" -version = "1.14.17" +version = "1.14.175" dependencies = [ "blake3", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-sibling-instructions" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-sibling_inner-instructions" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-simulation" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-logger 1.14.17", - "solana-program 1.14.17", + "solana-logger 1.14.175", + "solana-program 1.14.175", "solana-program-test", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-validator", ] [[package]] name = "solana-bpf-rust-spoof1" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-spoof1-system" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-sysvar" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", "solana-program-runtime", "solana-program-test", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-bpf-rust-upgradeable" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bpf-rust-upgraded" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-bucket-map" -version = "1.14.17" +version = "1.14.175" dependencies = [ "log", "memmap2", "modular-bitfield", "rand 0.7.3", "solana-measure", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "tempfile", ] [[package]] name = "solana-clap-utils" -version = "1.14.17" +version = "1.14.175" dependencies = [ "chrono", "clap 2.33.3", "rpassword", "solana-perf", "solana-remote-wallet", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", "tiny-bip39", "uriparse", @@ -4587,7 +4757,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.14.17" +version = "1.14.175" dependencies = [ "dirs-next", "lazy_static", @@ -4595,13 +4765,13 @@ dependencies = [ "serde_derive", "serde_yaml", "solana-clap-utils", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "url 2.2.2", ] [[package]] name = "solana-cli-output" -version = "1.14.17" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -4618,7 +4788,7 @@ dependencies = [ "solana-clap-utils", "solana-cli-config", "solana-client", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-transaction-status", "solana-vote-program", "spl-memo", @@ -4626,7 +4796,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.14.17" +version = "1.14.175" dependencies = [ "async-mutex", "async-trait", @@ -4662,7 +4832,7 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-net-utils", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-streamer", "solana-transaction-status", "solana-version", @@ -4678,27 +4848,27 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-program-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-config-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "chrono", "serde", "serde_derive", "solana-program-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-core" -version = "1.14.17" +version = "1.14.175" dependencies = [ "ahash", "base64 0.13.0", @@ -4727,8 +4897,8 @@ dependencies = [ "solana-bloom", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-geyser-plugin-manager", "solana-gossip", "solana-ledger", @@ -4741,7 +4911,7 @@ dependencies = [ "solana-rayon-threadlimit", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-streamer", "solana-transaction-status", @@ -4757,19 +4927,19 @@ dependencies = [ [[package]] name = "solana-download-utils" -version = "1.14.17" +version = "1.14.175" dependencies = [ "console", "indicatif", "log", "reqwest", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-entry" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "crossbeam-channel", @@ -4785,12 +4955,12 @@ dependencies = [ "solana-metrics", "solana-perf", "solana-rayon-threadlimit", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-faucet" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "byteorder 1.4.3", @@ -4801,9 +4971,9 @@ dependencies = [ "serde_derive", "solana-clap-utils", "solana-cli-config", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-metrics", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-version", "spl-memo", "thiserror", @@ -4812,9 +4982,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b4953578272ac0fadec245e85e83ae86454611f0c0a7fff7d906835124bdcf" +checksum = "f53e63c8f2aac07bc21167e7ede9b9d010ae25523fff5c01b171d9bab9a5a394" dependencies = [ "ahash", "blake3", @@ -4839,14 +5009,14 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "solana-frozen-abi-macro 1.14.16", + "solana-frozen-abi-macro 1.14.17", "subtle", "thiserror", ] [[package]] name = "solana-frozen-abi" -version = "1.14.17" +version = "1.14.175" dependencies = [ "ahash", "blake3", @@ -4871,55 +5041,55 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi-macro 1.14.175", "subtle", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57892538250428ad3dc3cbe05f6cd75ad14f4f16734fcb91bc7cd5fbb63d6315" +checksum = "daeaaa2713c06a2fe4bcdcfe7e1af55ee8a89c4d6693860b4041997af667207a" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version", "syn 1.0.109", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.14.17" +version = "1.14.175" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustc_version", "syn 1.0.109", ] [[package]] name = "solana-genesis-utils" -version = "1.14.17" +version = "1.14.175" dependencies = [ "solana-download-utils", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-geyser-plugin-interface" -version = "1.14.17" +version = "1.14.175" dependencies = [ "log", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-geyser-plugin-manager" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bs58", "crossbeam-channel", @@ -4932,14 +5102,14 @@ dependencies = [ "solana-metrics", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-gossip" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "bv", @@ -4963,17 +5133,17 @@ dependencies = [ "solana-clap-utils", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-ledger", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-measure", "solana-metrics", "solana-net-utils", "solana-perf", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-streamer", "solana-version", "solana-vote-program", @@ -4982,11 +5152,11 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "1.14.17" +version = "1.14.175" dependencies = [ "assert_matches", "bincode", - "bitflags", + "bitflags 1.3.2", "byteorder 1.4.3", "chrono", "chrono-humanize", @@ -5014,15 +5184,15 @@ dependencies = [ "solana-account-decoder", "solana-bpf-loader-program", "solana-entry", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-measure", "solana-metrics", "solana-perf", "solana-program-runtime", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-stake-program", "solana-storage-bigtable", "solana-storage-proto", @@ -5040,9 +5210,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06aa701c49493e93085dd1e800c05475baca15a9d4d527b59794f2ed0b66e055" +checksum = "2b502866be84a799633c0744e1d72b819a256337149e9fb6c7eee4db84ec63f5" dependencies = [ "env_logger", "lazy_static", @@ -5051,7 +5221,7 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.17" +version = "1.14.175" dependencies = [ "env_logger", "lazy_static", @@ -5060,36 +5230,36 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.17" +version = "1.14.175" dependencies = [ "log", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-merkle-tree" -version = "1.14.17" +version = "1.14.175" dependencies = [ "fast-math", "matches", - "solana-program 1.14.17", + "solana-program 1.14.175", ] [[package]] name = "solana-metrics" -version = "1.14.17" +version = "1.14.175" dependencies = [ "crossbeam-channel", "gethostname", "lazy_static", "log", "reqwest", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-net-utils" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "clap 3.1.6", @@ -5100,8 +5270,8 @@ dependencies = [ "serde", "serde_derive", "socket2", - "solana-logger 1.14.17", - "solana-sdk 1.14.17", + "solana-logger 1.14.175", + "solana-sdk 1.14.175", "solana-version", "tokio", "url 2.2.2", @@ -5109,7 +5279,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.14.17" +version = "1.14.175" dependencies = [ "ahash", "bincode", @@ -5128,13 +5298,13 @@ dependencies = [ "serde", "solana-metrics", "solana-rayon-threadlimit", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-vote-program", ] [[package]] name = "solana-poh" -version = "1.14.17" +version = "1.14.175" dependencies = [ "core_affinity", "crossbeam-channel", @@ -5144,20 +5314,20 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-sys-tuner", "thiserror", ] [[package]] name = "solana-program" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f99052873619df68913cb8e92e28ff251a5483828925e87fa97ba15a9cbad51" +checksum = "d66c02ad6002fbe7903ec96edd16352fe7964d3ee43b02053112f5304529849f" dependencies = [ "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "blake3", "borsh", "borsh-derive", @@ -5188,10 +5358,10 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "sha3 0.10.1", - "solana-frozen-abi 1.14.16", - "solana-frozen-abi-macro 1.14.16", - "solana-sdk-macro 1.14.16", + "sha3 0.10.8", + "solana-frozen-abi 1.14.17", + "solana-frozen-abi-macro 1.14.17", + "solana-sdk-macro 1.14.17", "thiserror", "tiny-bip39", "wasm-bindgen", @@ -5200,11 +5370,11 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "blake3", "borsh", "borsh-derive", @@ -5235,10 +5405,10 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "sha3 0.10.1", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", - "solana-sdk-macro 1.14.17", + "sha3 0.10.8", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-sdk-macro 1.14.175", "thiserror", "tiny-bip39", "wasm-bindgen", @@ -5247,7 +5417,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.17" +version = "1.14.175" dependencies = [ "base64 0.13.0", "bincode", @@ -5262,17 +5432,17 @@ dependencies = [ "rand 0.7.3", "rustc_version", "serde", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-measure", "solana-metrics", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.14.17" +version = "1.14.175" dependencies = [ "assert_matches", "async-trait", @@ -5284,10 +5454,10 @@ dependencies = [ "solana-banks-client", "solana-banks-server", "solana-bpf-loader-program", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-program-runtime", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-vote-program", "thiserror", "tokio", @@ -5295,7 +5465,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.14.17" +version = "1.14.175" dependencies = [ "lazy_static", "num_cpus", @@ -5303,7 +5473,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.17" +version = "1.14.175" dependencies = [ "console", "dialoguer", @@ -5313,14 +5483,14 @@ dependencies = [ "parking_lot 0.12.1", "qstring", "semver", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", "uriparse", ] [[package]] name = "solana-rpc" -version = "1.14.17" +version = "1.14.175" dependencies = [ "base64 0.13.0", "bincode", @@ -5353,7 +5523,7 @@ dependencies = [ "solana-poh", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-stake-program", "solana-storage-bigtable", @@ -5371,7 +5541,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.14.17" +version = "1.14.175" dependencies = [ "arrayref", "bincode", @@ -5398,6 +5568,8 @@ dependencies = [ "num_cpus", "once_cell", "ouroboros", + "pyth-oracle", + "pythnet-sdk 1.13.6 (git+https://github.com/pyth-network/pyth-crosschain?rev=e670f57f89b05398ca352e4accb1e32724a8e1b4)", "rand 0.7.3", "rayon", "regex", @@ -5408,43 +5580,45 @@ dependencies = [ "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-measure", "solana-metrics", "solana-program-runtime", "solana-rayon-threadlimit", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.14.17", + "solana-zk-token-sdk 1.14.175", "strum", "strum_macros", "symlink", + "syn 2.0.15", "tar", "tempfile", "thiserror", + "thiserror-impl", "zstd", ] [[package]] name = "solana-sdk" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb47da3e18cb669f6ace0b40cee0610e278903783e0c9f7fce1e1beb881a1b7" +checksum = "60cbad77fa09d23fa5e05029dec6c88e4b784be76cf6ae390f82cc04b8089e73" dependencies = [ "assert_matches", "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "borsh", "bs58", "bytemuck", "byteorder 1.4.3", "chrono", "derivation-path", - "digest 0.10.3", + "digest 0.10.7", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array 0.14.5", @@ -5468,12 +5642,12 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "sha3 0.10.1", - "solana-frozen-abi 1.14.16", - "solana-frozen-abi-macro 1.14.16", - "solana-logger 1.14.16", - "solana-program 1.14.16", - "solana-sdk-macro 1.14.16", + "sha3 0.10.8", + "solana-frozen-abi 1.14.17", + "solana-frozen-abi-macro 1.14.17", + "solana-logger 1.14.17", + "solana-program 1.14.17", + "solana-sdk-macro 1.14.17", "thiserror", "uriparse", "wasm-bindgen", @@ -5481,19 +5655,19 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.17" +version = "1.14.175" dependencies = [ "assert_matches", "base64 0.13.0", "bincode", - "bitflags", + "bitflags 1.3.2", "borsh", "bs58", "bytemuck", "byteorder 1.4.3", "chrono", "derivation-path", - "digest 0.10.3", + "digest 0.10.7", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array 0.14.5", @@ -5517,12 +5691,12 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.2", - "sha3 0.10.1", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", - "solana-logger 1.14.17", - "solana-program 1.14.17", - "solana-sdk-macro 1.14.17", + "sha3 0.10.8", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-logger 1.14.175", + "solana-program 1.14.175", + "solana-sdk-macro 1.14.175", "thiserror", "uriparse", "wasm-bindgen", @@ -5530,31 +5704,31 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d41a09b9cecd0a4df63c78a192adee99ebf2d3757c19713a68246e1d9789c7c" +checksum = "b73f54502e7d537472bf393ffce0c252c55b534f16797029a1614d79ec0209c9" dependencies = [ "bs58", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] [[package]] name = "solana-sdk-macro" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bs58", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] [[package]] name = "solana-send-transaction-service" -version = "1.14.17" +version = "1.14.175" dependencies = [ "crossbeam-channel", "log", @@ -5562,12 +5736,12 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", ] [[package]] name = "solana-stake-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "log", @@ -5577,18 +5751,18 @@ dependencies = [ "serde", "serde_derive", "solana-config-program", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-vote-program", "thiserror", ] [[package]] name = "solana-storage-bigtable" -version = "1.14.17" +version = "1.14.175" dependencies = [ "backoff", "bincode", @@ -5609,7 +5783,7 @@ dependencies = [ "serde_derive", "smpl_jwt", "solana-metrics", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-storage-proto", "solana-transaction-status", "thiserror", @@ -5620,7 +5794,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "bs58", @@ -5628,14 +5802,14 @@ dependencies = [ "protobuf-src", "serde", "solana-account-decoder", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-transaction-status", "tonic-build 0.8.0", ] [[package]] name = "solana-streamer" -version = "1.14.17" +version = "1.14.175" dependencies = [ "crossbeam-channel", "futures-util", @@ -5654,7 +5828,7 @@ dependencies = [ "rustls 0.20.6", "solana-metrics", "solana-perf", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", "tokio", "x509-parser", @@ -5662,13 +5836,13 @@ dependencies = [ [[package]] name = "solana-sys-tuner" -version = "1.14.17" +version = "1.14.175" dependencies = [ "clap 2.33.3", "libc", "log", "nix", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-version", "sysctl", "unix_socket2", @@ -5677,7 +5851,7 @@ dependencies = [ [[package]] name = "solana-test-validator" -version = "1.14.17" +version = "1.14.175" dependencies = [ "base64 0.13.0", "log", @@ -5688,20 +5862,20 @@ dependencies = [ "solana-core", "solana-gossip", "solana-ledger", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-net-utils", "solana-program-runtime", "solana-program-test", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-streamer", "tokio", ] [[package]] name = "solana-transaction-status" -version = "1.14.17" +version = "1.14.175" dependencies = [ "Inflector", "base64 0.13.0", @@ -5717,7 +5891,7 @@ dependencies = [ "solana-address-lookup-table-program", "solana-measure", "solana-metrics", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-vote-program", "spl-associated-token-account", "spl-memo", @@ -5728,7 +5902,7 @@ dependencies = [ [[package]] name = "solana-validator" -version = "1.14.17" +version = "1.14.175" dependencies = [ "chrono", "clap 2.33.3", @@ -5759,14 +5933,14 @@ dependencies = [ "solana-genesis-utils", "solana-gossip", "solana-ledger", - "solana-logger 1.14.17", + "solana-logger 1.14.175", "solana-metrics", "solana-net-utils", "solana-perf", "solana-poh", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "solana-send-transaction-service", "solana-storage-bigtable", "solana-streamer", @@ -5779,21 +5953,21 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.14.17" +version = "1.14.175" dependencies = [ "log", "rustc_version", "semver", "serde", "serde_derive", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", - "solana-sdk 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", + "solana-sdk 1.14.175", ] [[package]] name = "solana-vote-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bincode", "log", @@ -5802,32 +5976,32 @@ dependencies = [ "rustc_version", "serde", "serde_derive", - "solana-frozen-abi 1.14.17", - "solana-frozen-abi-macro 1.14.17", + "solana-frozen-abi 1.14.175", + "solana-frozen-abi-macro 1.14.175", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.17", + "solana-sdk 1.14.175", "thiserror", ] [[package]] name = "solana-zk-token-proof-program" -version = "1.14.17" +version = "1.14.175" dependencies = [ "bytemuck", "getrandom 0.1.14", "num-derive", "num-traits", "solana-program-runtime", - "solana-sdk 1.14.17", - "solana-zk-token-sdk 1.14.17", + "solana-sdk 1.14.175", + "solana-zk-token-sdk 1.14.175", ] [[package]] name = "solana-zk-token-sdk" -version = "1.14.16" +version = "1.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab38abd096769f79fd8e3fe8465070f04742395db724606a5263c8ebc215567" +checksum = "b28c5ec36aa1393174f7ea18c0cb809af82c10977bc5b2e1240a6b4b048b8f24" dependencies = [ "aes-gcm-siv", "arrayref", @@ -5847,8 +6021,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.16", - "solana-sdk 1.14.16", + "solana-program 1.14.17", + "solana-sdk 1.14.17", "subtle", "thiserror", "zeroize", @@ -5856,7 +6030,7 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.17" +version = "1.14.175" dependencies = [ "aes-gcm-siv", "arrayref", @@ -5876,8 +6050,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.17", - "solana-sdk 1.14.17", + "solana-program 1.14.175", + "solana-sdk 1.14.175", "subtle", "thiserror", "zeroize", @@ -5933,7 +6107,7 @@ dependencies = [ "borsh", "num-derive", "num-traits", - "solana-program 1.14.16", + "solana-program 1.14.17", "spl-token", "spl-token-2022 0.5.0", "thiserror", @@ -5945,7 +6119,7 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" dependencies = [ - "solana-program 1.14.16", + "solana-program 1.14.17", ] [[package]] @@ -5959,7 +6133,7 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", + "solana-program 1.14.17", "thiserror", ] @@ -5974,8 +6148,8 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", - "solana-zk-token-sdk 1.14.16", + "solana-program 1.14.17", + "solana-zk-token-sdk 1.14.17", "spl-memo", "spl-token", "thiserror", @@ -5992,8 +6166,8 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.16", - "solana-zk-token-sdk 1.14.16", + "solana-program 1.14.17", + "solana-zk-token-sdk 1.14.17", "spl-memo", "spl-token", "thiserror", @@ -6050,8 +6224,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef" dependencies = [ "heck 0.4.0", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -6085,8 +6259,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", "unicode-ident", ] @@ -6102,8 +6287,8 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "unicode-xid 0.2.3", ] @@ -6124,7 +6309,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1123645dfaf2b5eac6b6c88addafc359c789b8ef2a770ecaef758c1ddf363ea4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder 1.4.3", "libc", "thiserror", @@ -6172,8 +6357,8 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -6227,22 +6412,22 @@ checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", - "syn 1.0.109", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.15", ] [[package]] @@ -6373,8 +6558,8 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -6564,9 +6749,9 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" dependencies = [ - "proc-macro2 1.0.51", + "proc-macro2 1.0.86", "prost-build 0.9.0", - "quote 1.0.18", + "quote 1.0.36", "syn 1.0.109", ] @@ -6577,9 +6762,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fbcd2800e34e743b9ae795867d5f77b535d3a3be69fd731e39145719752df8c" dependencies = [ "prettyplease", - "proc-macro2 1.0.51", + "proc-macro2 1.0.86", "prost-build 0.11.0", - "quote 1.0.18", + "quote 1.0.36", "syn 1.0.109", ] @@ -6609,7 +6794,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", @@ -6653,8 +6838,8 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", ] @@ -6969,8 +7154,8 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "wasm-bindgen-shared", ] @@ -6993,7 +7178,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ - "quote 1.0.18", + "quote 1.0.36", "wasm-bindgen-macro-support", ] @@ -7003,8 +7188,8 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -7204,6 +7389,20 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "wormhole-sdk" +version = "0.1.0" +source = "git+https://github.com/wormhole-foundation/wormhole?tag=v2.17.1#3e423a75180f9da69263279e9ffce47b1858ae78" +dependencies = [ + "anyhow", + "bstr 1.9.1", + "schemars", + "serde", + "serde_wormhole 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha3 0.10.8", + "thiserror", +] + [[package]] name = "x509-parser" version = "0.14.0" @@ -7264,8 +7463,8 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" dependencies = [ - "proc-macro2 1.0.51", - "quote 1.0.18", + "proc-macro2 1.0.86", + "quote 1.0.36", "syn 1.0.109", "synstructure", ] diff --git a/programs/bpf/Cargo.toml b/programs/bpf/Cargo.toml index 6b5a6a2d77..096cfce5d4 100644 --- a/programs/bpf/Cargo.toml +++ b/programs/bpf/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "solana-bpf-programs" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" documentation = "https://docs.rs/solana" homepage = "https://solana.com/" readme = "README.md" @@ -26,22 +26,22 @@ itertools = "0.10.1" log = "0.4.11" miow = "0.3.6" net2 = "0.2.37" -solana-account-decoder = { path = "../../account-decoder", version = "=1.14.174" } -solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.14.174" } -solana-bpf-rust-invoke = { path = "rust/invoke", version = "=1.14.174" } -solana-bpf-rust-realloc = { path = "rust/realloc", version = "=1.14.174" } -solana-bpf-rust-realloc-invoke = { path = "rust/realloc_invoke", version = "=1.14.174" } -solana-cli-output = { path = "../../cli-output", version = "=1.14.174" } -solana-logger = { path = "../../logger", version = "=1.14.174" } -solana-measure = { path = "../../measure", version = "=1.14.174" } -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-runtime = { path = "../../runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../../transaction-status", version = "=1.14.174" } +solana-account-decoder = { path = "../../account-decoder", version = "=1.14.175" } +solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.14.175" } +solana-bpf-rust-invoke = { path = "rust/invoke", version = "=1.14.175" } +solana-bpf-rust-realloc = { path = "rust/realloc", version = "=1.14.175" } +solana-bpf-rust-realloc-invoke = { path = "rust/realloc_invoke", version = "=1.14.175" } +solana-cli-output = { path = "../../cli-output", version = "=1.14.175" } +solana-logger = { path = "../../logger", version = "=1.14.175" } +solana-measure = { path = "../../measure", version = "=1.14.175" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-runtime = { path = "../../runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../../transaction-status", version = "=1.14.175" } solana_rbpf = "=0.2.31" [dev-dependencies] -solana-ledger = { path = "../../ledger", version = "=1.14.174" } +solana-ledger = { path = "../../ledger", version = "=1.14.175" } [[bench]] name = "bpf_loader" diff --git a/programs/bpf/rust/128bit/Cargo.toml b/programs/bpf/rust/128bit/Cargo.toml index e428f6f96a..ddb2f38878 100644 --- a/programs/bpf/rust/128bit/Cargo.toml +++ b/programs/bpf/rust/128bit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-128bit" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit" edition = "2021" [dependencies] -solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.14.174" } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.14.175" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/128bit_dep/Cargo.toml b/programs/bpf/rust/128bit_dep/Cargo.toml index fb08305097..17c3c40118 100644 --- a/programs/bpf/rust/128bit_dep/Cargo.toml +++ b/programs/bpf/rust/128bit_dep/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-128bit-dep" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit-dep" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/alloc/Cargo.toml b/programs/bpf/rust/alloc/Cargo.toml index fb36161bd7..235aa62ba8 100644 --- a/programs/bpf/rust/alloc/Cargo.toml +++ b/programs/bpf/rust/alloc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-alloc" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-alloc" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/call_depth/Cargo.toml b/programs/bpf/rust/call_depth/Cargo.toml index e30f8e9934..9ef47daa1b 100644 --- a/programs/bpf/rust/call_depth/Cargo.toml +++ b/programs/bpf/rust/call_depth/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-call-depth" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-call-depth" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/caller_access/Cargo.toml b/programs/bpf/rust/caller_access/Cargo.toml index 23448a0abe..521aade5dc 100644 --- a/programs/bpf/rust/caller_access/Cargo.toml +++ b/programs/bpf/rust/caller_access/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-caller-access" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-caller-access" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/curve25519/Cargo.toml b/programs/bpf/rust/curve25519/Cargo.toml index 7d648be8c9..d8271c8afc 100644 --- a/programs/bpf/rust/curve25519/Cargo.toml +++ b/programs/bpf/rust/curve25519/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-curve25519" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-zktoken_crypto" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } -solana-zk-token-sdk = { path = "../../../../zk-token-sdk", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } +solana-zk-token-sdk = { path = "../../../../zk-token-sdk", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/custom_heap/Cargo.toml b/programs/bpf/rust/custom_heap/Cargo.toml index 6ba4db779e..e12468e017 100644 --- a/programs/bpf/rust/custom_heap/Cargo.toml +++ b/programs/bpf/rust/custom_heap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-custom-heap" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-custom-heap" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [features] default = ["custom-heap"] diff --git a/programs/bpf/rust/dep_crate/Cargo.toml b/programs/bpf/rust/dep_crate/Cargo.toml index b1f87c9764..40a0e4c985 100644 --- a/programs/bpf/rust/dep_crate/Cargo.toml +++ b/programs/bpf/rust/dep_crate/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-dep-crate" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,8 +12,8 @@ edition = "2021" [dependencies] byteorder = { version = "1", default-features = false } # list of crates which must be buildable for bpf programs -solana-address-lookup-table-program = { path = "../../../../programs/address-lookup-table", version = "=1.14.174" } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../../../../programs/address-lookup-table", version = "=1.14.175" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/deprecated_loader/Cargo.toml b/programs/bpf/rust/deprecated_loader/Cargo.toml index 42db92ad0d..6f95cde335 100644 --- a/programs/bpf/rust/deprecated_loader/Cargo.toml +++ b/programs/bpf/rust/deprecated_loader/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-deprecated-loader" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-deprecated-loader" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/dup_accounts/Cargo.toml b/programs/bpf/rust/dup_accounts/Cargo.toml index b33873ee90..e837d93a6c 100644 --- a/programs/bpf/rust/dup_accounts/Cargo.toml +++ b/programs/bpf/rust/dup_accounts/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-dup-accounts" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-dup-accounts" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/error_handling/Cargo.toml b/programs/bpf/rust/error_handling/Cargo.toml index 809208cedd..6361c4d69f 100644 --- a/programs/bpf/rust/error_handling/Cargo.toml +++ b/programs/bpf/rust/error_handling/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-error-handling" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,7 +12,7 @@ edition = "2021" [dependencies] num-derive = "0.3" num-traits = "0.2" -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } thiserror = "1.0" [lib] diff --git a/programs/bpf/rust/external_spend/Cargo.toml b/programs/bpf/rust/external_spend/Cargo.toml index 6d9e303877..d5c66e8802 100644 --- a/programs/bpf/rust/external_spend/Cargo.toml +++ b/programs/bpf/rust/external_spend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-external-spend" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-external-spend" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/finalize/Cargo.toml b/programs/bpf/rust/finalize/Cargo.toml index fa7ec33a6c..e31645aed7 100644 --- a/programs/bpf/rust/finalize/Cargo.toml +++ b/programs/bpf/rust/finalize/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-finalize" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-finalize" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/get_minimum_delegation/Cargo.toml b/programs/bpf/rust/get_minimum_delegation/Cargo.toml index 8b31859c41..a8f380b791 100644 --- a/programs/bpf/rust/get_minimum_delegation/Cargo.toml +++ b/programs/bpf/rust/get_minimum_delegation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-get-minimum-delegation" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-get-minimum-delegation" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/inner_instruction_alignment_check/Cargo.toml b/programs/bpf/rust/inner_instruction_alignment_check/Cargo.toml index 1d6ff20c04..b533ef6316 100644 --- a/programs/bpf/rust/inner_instruction_alignment_check/Cargo.toml +++ b/programs/bpf/rust/inner_instruction_alignment_check/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-inner_instruction_alignment_check" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-inner_instruction_alignment_che edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/instruction_introspection/Cargo.toml b/programs/bpf/rust/instruction_introspection/Cargo.toml index 898bc16dc8..4d403eb48f 100644 --- a/programs/bpf/rust/instruction_introspection/Cargo.toml +++ b/programs/bpf/rust/instruction_introspection/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-instruction-introspection" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-instruction-introspection" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/invoke/Cargo.toml b/programs/bpf/rust/invoke/Cargo.toml index a3032dbd0f..04e2411ce8 100644 --- a/programs/bpf/rust/invoke/Cargo.toml +++ b/programs/bpf/rust/invoke/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-invoke" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -15,7 +15,7 @@ program = [] [dependencies] solana-bpf-rust-invoked = { path = "../invoked", default-features = false } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["lib", "cdylib"] diff --git a/programs/bpf/rust/invoke_and_error/Cargo.toml b/programs/bpf/rust/invoke_and_error/Cargo.toml index f66597d2d8..6ba027637b 100644 --- a/programs/bpf/rust/invoke_and_error/Cargo.toml +++ b/programs/bpf/rust/invoke_and_error/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-invoke-and-error" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-error" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/invoke_and_ok/Cargo.toml b/programs/bpf/rust/invoke_and_ok/Cargo.toml index 058b39ec42..e2bee1d205 100644 --- a/programs/bpf/rust/invoke_and_ok/Cargo.toml +++ b/programs/bpf/rust/invoke_and_ok/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-invoke-and-ok" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-ok" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/invoke_and_return/Cargo.toml b/programs/bpf/rust/invoke_and_return/Cargo.toml index b4d4fab43b..6a07f6f755 100644 --- a/programs/bpf/rust/invoke_and_return/Cargo.toml +++ b/programs/bpf/rust/invoke_and_return/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-invoke-and-return" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-return" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/invoked/Cargo.toml b/programs/bpf/rust/invoked/Cargo.toml index 7a7e2d930b..35c3539a38 100644 --- a/programs/bpf/rust/invoked/Cargo.toml +++ b/programs/bpf/rust/invoked/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-invoked" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,7 +14,7 @@ default = ["program"] program = [] [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["lib", "cdylib"] diff --git a/programs/bpf/rust/iter/Cargo.toml b/programs/bpf/rust/iter/Cargo.toml index 23094031e3..64f348ab14 100644 --- a/programs/bpf/rust/iter/Cargo.toml +++ b/programs/bpf/rust/iter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-iter" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-iter" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/log_data/Cargo.toml b/programs/bpf/rust/log_data/Cargo.toml index a509562ae5..a348c27b0e 100644 --- a/programs/bpf/rust/log_data/Cargo.toml +++ b/programs/bpf/rust/log_data/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-log-data" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-log-data" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [features] default = ["program"] diff --git a/programs/bpf/rust/many_args/Cargo.toml b/programs/bpf/rust/many_args/Cargo.toml index b8dd34f176..d3e87adf78 100644 --- a/programs/bpf/rust/many_args/Cargo.toml +++ b/programs/bpf/rust/many_args/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-many-args" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args" edition = "2021" [dependencies] -solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.14.174" } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.14.175" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/many_args_dep/Cargo.toml b/programs/bpf/rust/many_args_dep/Cargo.toml index 51cc840d13..75a14df6cd 100644 --- a/programs/bpf/rust/many_args_dep/Cargo.toml +++ b/programs/bpf/rust/many_args_dep/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-many-args-dep" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args-dep" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/mem/Cargo.toml b/programs/bpf/rust/mem/Cargo.toml index 6aa7296ebc..8a6f1632b7 100644 --- a/programs/bpf/rust/mem/Cargo.toml +++ b/programs/bpf/rust/mem/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-mem" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,12 +13,12 @@ edition = "2021" no-entrypoint = [] [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [dev-dependencies] -solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.174" } -solana-program-test = { path = "../../../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.175" } +solana-program-test = { path = "../../../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../../../sdk", version = "=1.14.175" } [lib] crate-type = ["cdylib", "lib"] diff --git a/programs/bpf/rust/membuiltins/Cargo.toml b/programs/bpf/rust/membuiltins/Cargo.toml index 81ab1ea4ba..a51cec503a 100644 --- a/programs/bpf/rust/membuiltins/Cargo.toml +++ b/programs/bpf/rust/membuiltins/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-membuiltins" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-mem" edition = "2021" [dependencies] -solana-bpf-rust-mem = { path = "../mem", version = "=1.14.174", features = [ "no-entrypoint" ] } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-bpf-rust-mem = { path = "../mem", version = "=1.14.175", features = [ "no-entrypoint" ] } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/noop/Cargo.toml b/programs/bpf/rust/noop/Cargo.toml index f056789fb9..aef30a4f05 100644 --- a/programs/bpf/rust/noop/Cargo.toml +++ b/programs/bpf/rust/noop/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-noop" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-noop" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/panic/Cargo.toml b/programs/bpf/rust/panic/Cargo.toml index 929ac6e512..1133c0c7c7 100644 --- a/programs/bpf/rust/panic/Cargo.toml +++ b/programs/bpf/rust/panic/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-panic" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-panic" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [features] default = ["custom-panic"] diff --git a/programs/bpf/rust/param_passing/Cargo.toml b/programs/bpf/rust/param_passing/Cargo.toml index 8ad2248981..546190aa0a 100644 --- a/programs/bpf/rust/param_passing/Cargo.toml +++ b/programs/bpf/rust/param_passing/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-param-passing" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing" edition = "2021" [dependencies] -solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.14.174" } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.14.175" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/param_passing_dep/Cargo.toml b/programs/bpf/rust/param_passing_dep/Cargo.toml index faf274ace6..483d56aafd 100644 --- a/programs/bpf/rust/param_passing_dep/Cargo.toml +++ b/programs/bpf/rust/param_passing_dep/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-param-passing-dep" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing-dep" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/rand/Cargo.toml b/programs/bpf/rust/rand/Cargo.toml index e06992eaaa..2106f3336b 100644 --- a/programs/bpf/rust/rand/Cargo.toml +++ b/programs/bpf/rust/rand/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-rand" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,7 +12,7 @@ edition = "2021" [dependencies] getrandom = { version = "0.1.14", features = ["dummy"] } rand = "0.7" -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/realloc/Cargo.toml b/programs/bpf/rust/realloc/Cargo.toml index 502643bfbe..a75de93276 100644 --- a/programs/bpf/rust/realloc/Cargo.toml +++ b/programs/bpf/rust/realloc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-realloc" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,7 +14,7 @@ default = ["program"] program = [] [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["lib", "cdylib"] diff --git a/programs/bpf/rust/realloc_invoke/Cargo.toml b/programs/bpf/rust/realloc_invoke/Cargo.toml index 59662c5b17..06137561d2 100644 --- a/programs/bpf/rust/realloc_invoke/Cargo.toml +++ b/programs/bpf/rust/realloc_invoke/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-realloc-invoke" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,8 +14,8 @@ default = ["program"] program = [] [dependencies] -solana-bpf-rust-realloc = { path = "../realloc", version = "=1.14.174", default-features = false } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-bpf-rust-realloc = { path = "../realloc", version = "=1.14.175", default-features = false } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["lib", "cdylib"] diff --git a/programs/bpf/rust/ro_account_modify/Cargo.toml b/programs/bpf/rust/ro_account_modify/Cargo.toml index 9ef92679db..467f373099 100644 --- a/programs/bpf/rust/ro_account_modify/Cargo.toml +++ b/programs/bpf/rust/ro_account_modify/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-ro-account_modify" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-ro-modify" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/ro_modify/Cargo.toml b/programs/bpf/rust/ro_modify/Cargo.toml index 1ee53e3fc0..f9827888aa 100644 --- a/programs/bpf/rust/ro_modify/Cargo.toml +++ b/programs/bpf/rust/ro_modify/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-ro-modify" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-ro-modify" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/sanity/Cargo.toml b/programs/bpf/rust/sanity/Cargo.toml index 3b4efddbb6..8ede9f846c 100644 --- a/programs/bpf/rust/sanity/Cargo.toml +++ b/programs/bpf/rust/sanity/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-sanity" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,12 +13,12 @@ edition = "2021" test-bpf = [] [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [dev-dependencies] -solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.174" } -solana-program-test = { path = "../../../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.175" } +solana-program-test = { path = "../../../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../../../sdk", version = "=1.14.175" } [lib] crate-type = ["cdylib", "lib"] diff --git a/programs/bpf/rust/secp256k1_recover/Cargo.toml b/programs/bpf/rust/secp256k1_recover/Cargo.toml index 3f24747582..7899676d5f 100644 --- a/programs/bpf/rust/secp256k1_recover/Cargo.toml +++ b/programs/bpf/rust/secp256k1_recover/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-secp256k1-recover" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -11,7 +11,7 @@ edition = "2021" [dependencies] libsecp256k1 = { version = "0.7.0", default-features = false } -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/sha/Cargo.toml b/programs/bpf/rust/sha/Cargo.toml index 60df44c78e..12c6c614b3 100644 --- a/programs/bpf/rust/sha/Cargo.toml +++ b/programs/bpf/rust/sha/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-sha" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -11,7 +11,7 @@ edition = "2021" [dependencies] blake3 = "1.0.0" -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/sibling_inner_instruction/Cargo.toml b/programs/bpf/rust/sibling_inner_instruction/Cargo.toml index def60d1cc6..0829578292 100644 --- a/programs/bpf/rust/sibling_inner_instruction/Cargo.toml +++ b/programs/bpf/rust/sibling_inner_instruction/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-sibling_inner-instructions" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-log-data" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [features] default = ["program"] diff --git a/programs/bpf/rust/sibling_instruction/Cargo.toml b/programs/bpf/rust/sibling_instruction/Cargo.toml index 615428727c..7cdd5f46fe 100644 --- a/programs/bpf/rust/sibling_instruction/Cargo.toml +++ b/programs/bpf/rust/sibling_instruction/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-sibling-instructions" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-log-data" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [features] default = ["program"] diff --git a/programs/bpf/rust/simulation/Cargo.toml b/programs/bpf/rust/simulation/Cargo.toml index 4e6e1f1a4c..0ac3250f9b 100644 --- a/programs/bpf/rust/simulation/Cargo.toml +++ b/programs/bpf/rust/simulation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-simulation" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF Program Simulation Differences" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -13,13 +13,13 @@ edition = "2021" test-bpf = [] [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [dev-dependencies] -solana-logger = { path = "../../../../logger", version = "=1.14.174" } -solana-program-test = { path = "../../../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../../../sdk", version = "=1.14.174" } -solana-validator = { path = "../../../../validator", version = "=1.14.174" } +solana-logger = { path = "../../../../logger", version = "=1.14.175" } +solana-program-test = { path = "../../../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../../../sdk", version = "=1.14.175" } +solana-validator = { path = "../../../../validator", version = "=1.14.175" } [lib] crate-type = ["cdylib", "lib"] diff --git a/programs/bpf/rust/spoof1/Cargo.toml b/programs/bpf/rust/spoof1/Cargo.toml index 8cb537e3ce..aeb4222550 100644 --- a/programs/bpf/rust/spoof1/Cargo.toml +++ b/programs/bpf/rust/spoof1/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-spoof1" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/spoof1_system/Cargo.toml b/programs/bpf/rust/spoof1_system/Cargo.toml index 0a0ae53cf4..bc64f9e763 100644 --- a/programs/bpf/rust/spoof1_system/Cargo.toml +++ b/programs/bpf/rust/spoof1_system/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-spoof1-system" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1-system" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/programs/bpf/rust/sysvar/Cargo.toml b/programs/bpf/rust/sysvar/Cargo.toml index fc0db61933..db2969b3f3 100644 --- a/programs/bpf/rust/sysvar/Cargo.toml +++ b/programs/bpf/rust/sysvar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-sysvar" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,12 +10,12 @@ documentation = "https://docs.rs/solana-bpf-rust-sysvar" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [dev-dependencies] -solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.174" } -solana-program-test = { path = "../../../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../../../program-runtime", version = "=1.14.175" } +solana-program-test = { path = "../../../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../../../sdk", version = "=1.14.175" } [lib] crate-type = ["cdylib", "lib"] diff --git a/programs/bpf/rust/upgradeable/Cargo.toml b/programs/bpf/rust/upgradeable/Cargo.toml index ddf985e511..1e9b7dfa1e 100644 --- a/programs/bpf/rust/upgradeable/Cargo.toml +++ b/programs/bpf/rust/upgradeable/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-upgradeable" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgradeable" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] name = "solana_bpf_rust_upgradeable" diff --git a/programs/bpf/rust/upgraded/Cargo.toml b/programs/bpf/rust/upgraded/Cargo.toml index 0640dda280..ecb7f9c03d 100644 --- a/programs/bpf/rust/upgraded/Cargo.toml +++ b/programs/bpf/rust/upgraded/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-rust-upgraded" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgraded" edition = "2021" [dependencies] -solana-program = { path = "../../../../sdk/program", version = "=1.14.174" } +solana-program = { path = "../../../../sdk/program", version = "=1.14.175" } [lib] name = "solana_bpf_rust_upgraded" diff --git a/programs/bpf_loader/Cargo.toml b/programs/bpf_loader/Cargo.toml index 7b467a57d8..4dc921e63b 100644 --- a/programs/bpf_loader/Cargo.toml +++ b/programs/bpf_loader/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-bpf-loader-program" -version = "1.14.174" +version = "1.14.175" description = "Solana BPF loader" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,17 +14,17 @@ bincode = "1.3.3" byteorder = "1.4.3" libsecp256k1 = "0.6.0" log = "0.4.17" -solana-measure = { path = "../../measure", version = "=1.14.174" } -solana-metrics = { path = "../../metrics", version = "=1.14.174" } -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } -solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.14.174" } +solana-measure = { path = "../../measure", version = "=1.14.175" } +solana-metrics = { path = "../../metrics", version = "=1.14.175" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } +solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.14.175" } solana_rbpf = "=0.2.31" thiserror = "1.0" [dev-dependencies] rand = "0.7.3" -solana-runtime = { path = "../../runtime", version = "=1.14.174" } +solana-runtime = { path = "../../runtime", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/programs/bpf_loader/gen-syscall-list/Cargo.toml b/programs/bpf_loader/gen-syscall-list/Cargo.toml index 45db66384e..fa5ee73e02 100644 --- a/programs/bpf_loader/gen-syscall-list/Cargo.toml +++ b/programs/bpf_loader/gen-syscall-list/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gen-syscall-list" -version = "1.14.174" +version = "1.14.175" edition = "2021" license = "Apache-2.0" publish = false diff --git a/programs/compute-budget/Cargo.toml b/programs/compute-budget/Cargo.toml index a4a22f453d..9df317e9cb 100644 --- a/programs/compute-budget/Cargo.toml +++ b/programs/compute-budget/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "solana-compute-budget-program" description = "Solana Compute Budget program" -version = "1.14.174" +version = "1.14.175" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-compute-budget-program" repository = "https://github.com/solana-labs/solana" @@ -10,8 +10,8 @@ license = "Apache-2.0" edition = "2021" [dependencies] -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/programs/config/Cargo.toml b/programs/config/Cargo.toml index 0accac3cd9..1b72d39850 100644 --- a/programs/config/Cargo.toml +++ b/programs/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-config-program" -version = "1.14.174" +version = "1.14.175" description = "Solana Config program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,11 +14,11 @@ bincode = "1.3.3" chrono = { version = "0.4.11", features = ["serde"] } serde = "1.0.138" serde_derive = "1.0.103" -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [dev-dependencies] -solana-logger = { path = "../../logger", version = "=1.14.174" } +solana-logger = { path = "../../logger", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/programs/ed25519-tests/Cargo.toml b/programs/ed25519-tests/Cargo.toml index 8701b02e94..6c6a858522 100644 --- a/programs/ed25519-tests/Cargo.toml +++ b/programs/ed25519-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-ed25519-program-tests" -version = "1.14.174" +version = "1.14.175" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" @@ -12,8 +12,8 @@ publish = false assert_matches = "1.5.0" ed25519-dalek = "=1.0.1" rand = "0.7.0" -solana-program-test = { path = "../../program-test", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-program-test = { path = "../../program-test", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/stake/Cargo.toml b/programs/stake/Cargo.toml index 38edb075e9..8fa4ddce31 100644 --- a/programs/stake/Cargo.toml +++ b/programs/stake/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-stake-program" -version = "1.14.174" +version = "1.14.175" description = "Solana Stake program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -16,19 +16,19 @@ num-derive = "0.3" num-traits = "0.2" serde = "1.0.138" serde_derive = "1.0.103" -solana-config-program = { path = "../config", version = "=1.14.174" } -solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.174" } -solana-metrics = { path = "../../metrics", version = "=1.14.174" } -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } -solana-vote-program = { path = "../vote", version = "=1.14.174" } +solana-config-program = { path = "../config", version = "=1.14.175" } +solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.175" } +solana-metrics = { path = "../../metrics", version = "=1.14.175" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } +solana-vote-program = { path = "../vote", version = "=1.14.175" } thiserror = "1.0" [dev-dependencies] assert_matches = "1.5.0" proptest = "1.0" -solana-logger = { path = "../../logger", version = "=1.14.174" } +solana-logger = { path = "../../logger", version = "=1.14.175" } test-case = "2.1.0" [build-dependencies] diff --git a/programs/vote/Cargo.toml b/programs/vote/Cargo.toml index bb9d434834..8f0ce121ea 100644 --- a/programs/vote/Cargo.toml +++ b/programs/vote/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-vote-program" -version = "1.14.174" +version = "1.14.175" description = "Solana Vote program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -16,17 +16,17 @@ num-derive = "0.3" num-traits = "0.2" serde = "1.0.138" serde_derive = "1.0.103" -solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.174" } -solana-metrics = { path = "../../metrics", version = "=1.14.174" } -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } +solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.175" } +solana-metrics = { path = "../../metrics", version = "=1.14.175" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } thiserror = "1.0" [dev-dependencies] itertools = "0.10.3" rand = "0.7.0" -solana-logger = { path = "../../logger", version = "=1.14.174" } +solana-logger = { path = "../../logger", version = "=1.14.175" } test-case = "2.1.0" [build-dependencies] diff --git a/programs/zk-token-proof/Cargo.toml b/programs/zk-token-proof/Cargo.toml index 0e1348ec44..086ba38750 100644 --- a/programs/zk-token-proof/Cargo.toml +++ b/programs/zk-token-proof/Cargo.toml @@ -3,7 +3,7 @@ name = "solana-zk-token-proof-program" description = "Solana Zk Token Proof Program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" -version = "1.14.174" +version = "1.14.175" license = "Apache-2.0" edition = "2021" @@ -12,6 +12,6 @@ bytemuck = { version = "1.11.0", features = ["derive"] } getrandom = { version = "0.1", features = ["dummy"] } num-derive = "0.3" num-traits = "0.2" -solana-program-runtime = { path = "../../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../../sdk", version = "=1.14.174" } -solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.14.174" } +solana-program-runtime = { path = "../../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../../sdk", version = "=1.14.175" } +solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.14.175" } diff --git a/rayon-threadlimit/Cargo.toml b/rayon-threadlimit/Cargo.toml index 05aee0b53a..55bf5ce830 100644 --- a/rayon-threadlimit/Cargo.toml +++ b/rayon-threadlimit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-rayon-threadlimit" -version = "1.14.174" +version = "1.14.175" description = "solana-rayon-threadlimit" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-rayon-threadlimit" diff --git a/rbpf-cli/Cargo.toml b/rbpf-cli/Cargo.toml index 2811763bc9..e7d84890b0 100644 --- a/rbpf-cli/Cargo.toml +++ b/rbpf-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rbpf-cli" -version = "1.14.174" +version = "1.14.175" description = "CLI to test and analyze eBPF programs" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/rbpf" @@ -13,8 +13,8 @@ publish = false clap = { version = "3.1.5", features = ["cargo"] } serde = "1.0.138" serde_json = "1.0.81" -solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } solana_rbpf = "=0.2.31" diff --git a/remote-wallet/Cargo.toml b/remote-wallet/Cargo.toml index bdb8e912c5..6f7c5d88f4 100644 --- a/remote-wallet/Cargo.toml +++ b/remote-wallet/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-remote-wallet" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -19,7 +19,7 @@ num-traits = { version = "0.2" } parking_lot = "0.12" qstring = "0.7.2" semver = "1.0" -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } thiserror = "1.0" uriparse = "0.6.4" diff --git a/rpc-test/Cargo.toml b/rpc-test/Cargo.toml index 16e980d3b9..8396178d65 100644 --- a/rpc-test/Cargo.toml +++ b/rpc-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-rpc-test" -version = "1.14.174" +version = "1.14.175" description = "Solana RPC Test" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -19,17 +19,17 @@ log = "0.4.17" reqwest = { version = "0.11.11", default-features = false, features = ["blocking", "brotli", "deflate", "gzip", "rustls-tls", "json"] } serde = "1.0.138" serde_json = "1.0.81" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } tokio = { version = "~1.14.1", features = ["full"] } [dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 7f1d3c864d..8e7f00e748 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-rpc" -version = "1.14.174" +version = "1.14.175" description = "Solana RPC" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -29,26 +29,26 @@ serde = "1.0.138" serde_derive = "1.0.103" serde_json = "1.0.81" soketto = "0.7" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-poh = { path = "../poh", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-poh = { path = "../poh", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } spl-token-2022 = { version = "=0.6.0", features = ["no-entrypoint"] } stream-cancel = "0.8.1" @@ -58,9 +58,9 @@ tokio-util = { version = "0.6", features = ["codec", "compat"] } [dev-dependencies] serial_test = "0.8.0" -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } symlink = "0.1.0" [lib] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 812323babc..325390444b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-runtime" -version = "1.14.174" +version = "1.14.175" description = "Solana runtime" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -42,21 +42,21 @@ rayon = "1.5.3" regex = "1.5.6" serde = { version = "1.0.138", features = ["rc"] } serde_derive = "1.0.103" -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-bucket-map = { path = "../bucket_map", version = "=1.14.174" } -solana-compute-budget-program = { path = "../programs/compute-budget", version = "=1.14.174" } -solana-config-program = { path = "../programs/config", version = "=1.14.174" } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } -solana-zk-token-proof-program = { path = "../programs/zk-token-proof", version = "=1.14.174" } -solana-zk-token-sdk = { path = "../zk-token-sdk", version = "=1.14.174" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-bucket-map = { path = "../bucket_map", version = "=1.14.175" } +solana-compute-budget-program = { path = "../programs/compute-budget", version = "=1.14.175" } +solana-config-program = { path = "../programs/config", version = "=1.14.175" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } +solana-zk-token-proof-program = { path = "../programs/zk-token-proof", version = "=1.14.175" } +solana-zk-token-sdk = { path = "../zk-token-sdk", version = "=1.14.175" } strum = { version = "0.24", features = ["derive"] } strum_macros = "0.24" symlink = "0.1.0" @@ -76,7 +76,7 @@ assert_matches = "1.5.0" ed25519-dalek = "=1.0.1" libsecp256k1 = "0.6.0" rand_chacha = "0.2.2" -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/runtime/store-tool/Cargo.toml b/runtime/store-tool/Cargo.toml index 62ccc92228..86ff1b53aa 100644 --- a/runtime/store-tool/Cargo.toml +++ b/runtime/store-tool/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-store-tool" description = "Tool to inspect append vecs" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -12,9 +12,9 @@ publish = false [dependencies] clap = "2.33.1" log = { version = "0.4.17" } -solana-logger = { path = "../../logger", version = "=1.14.174" } -solana-runtime = { path = "..", version = "=1.14.174" } -solana-version = { path = "../../version", version = "=1.14.174" } +solana-logger = { path = "../../logger", version = "=1.14.175" } +solana-runtime = { path = "..", version = "=1.14.175" } +solana-version = { path = "../../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 9b0b6efeeb..74483ed989 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-sdk" -version = "1.14.174" +version = "1.14.175" description = "Solana SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -71,11 +71,11 @@ serde_derive = "1.0.103" serde_json = { version = "1.0.81", optional = true } sha2 = "0.10.2" sha3 = { version = "0.10.4", optional = true } -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174", optional = true } -solana-program = { path = "program", version = "=1.14.174" } -solana-sdk-macro = { path = "macro", version = "=1.14.174" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175", optional = true } +solana-program = { path = "program", version = "=1.14.175" } +solana-sdk-macro = { path = "macro", version = "=1.14.175" } thiserror = "1.0" uriparse = "0.6.4" wasm-bindgen = "0.2" diff --git a/sdk/cargo-build-bpf/Cargo.toml b/sdk/cargo-build-bpf/Cargo.toml index 9a83d2a802..01fa5521a5 100644 --- a/sdk/cargo-build-bpf/Cargo.toml +++ b/sdk/cargo-build-bpf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-cargo-build-bpf" -version = "1.14.174" +version = "1.14.175" description = "Compile a local package and all of its dependencies using the Solana SBF SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,7 +12,7 @@ publish = false [dependencies] cargo_metadata = "0.15.0" clap = { version = "3.1.5", features = ["cargo", "env"] } -solana-sdk = { path = "..", version = "=1.14.174" } +solana-sdk = { path = "..", version = "=1.14.175" } [features] program = [] diff --git a/sdk/cargo-build-sbf/Cargo.toml b/sdk/cargo-build-sbf/Cargo.toml index efe63e7e38..94b792a1b4 100644 --- a/sdk/cargo-build-sbf/Cargo.toml +++ b/sdk/cargo-build-sbf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-cargo-build-sbf" -version = "1.14.174" +version = "1.14.175" description = "Compile a local package and all of its dependencies using the Solana SBF SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -15,9 +15,9 @@ cargo_metadata = "0.15.0" clap = { version = "3.1.5", features = ["cargo", "env"] } log = { version = "0.4.14", features = ["std"] } regex = "1.5.6" -solana-download-utils = { path = "../../download-utils", version = "=1.14.174" } -solana-logger = { path = "../../logger", version = "=1.14.174" } -solana-sdk = { path = "..", version = "=1.14.174" } +solana-download-utils = { path = "../../download-utils", version = "=1.14.175" } +solana-logger = { path = "../../logger", version = "=1.14.175" } +solana-sdk = { path = "..", version = "=1.14.175" } tar = "0.4.38" [dev-dependencies] diff --git a/sdk/cargo-build-sbf/tests/crates/fail/Cargo.toml b/sdk/cargo-build-sbf/tests/crates/fail/Cargo.toml index 82643c0db3..cea0a1e3f6 100644 --- a/sdk/cargo-build-sbf/tests/crates/fail/Cargo.toml +++ b/sdk/cargo-build-sbf/tests/crates/fail/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fail" -version = "1.14.174" +version = "1.14.175" description = "Solana SBF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ edition = "2021" publish = false [dependencies] -solana-program = { path = "../../../../program", version = "=1.14.174" } +solana-program = { path = "../../../../program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/sdk/cargo-build-sbf/tests/crates/noop/Cargo.toml b/sdk/cargo-build-sbf/tests/crates/noop/Cargo.toml index 7dbf5c9ce9..70bd1ab13e 100644 --- a/sdk/cargo-build-sbf/tests/crates/noop/Cargo.toml +++ b/sdk/cargo-build-sbf/tests/crates/noop/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "noop" -version = "1.14.174" +version = "1.14.175" description = "Solana SBF test program written in Rust" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -10,7 +10,7 @@ edition = "2021" publish = false [dependencies] -solana-program = { path = "../../../../program", version = "=1.14.174" } +solana-program = { path = "../../../../program", version = "=1.14.175" } [lib] crate-type = ["cdylib"] diff --git a/sdk/cargo-test-bpf/Cargo.toml b/sdk/cargo-test-bpf/Cargo.toml index 14284db7e3..5f8f962873 100644 --- a/sdk/cargo-test-bpf/Cargo.toml +++ b/sdk/cargo-test-bpf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-cargo-test-bpf" -version = "1.14.174" +version = "1.14.175" description = "Execute all unit and integration tests after building with the Solana SBF SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/sdk/cargo-test-sbf/Cargo.toml b/sdk/cargo-test-sbf/Cargo.toml index 61d59fb43b..b2937239d2 100644 --- a/sdk/cargo-test-sbf/Cargo.toml +++ b/sdk/cargo-test-sbf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-cargo-test-sbf" -version = "1.14.174" +version = "1.14.175" description = "Execute all unit and integration tests after building with the Solana SBF SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/sdk/gen-headers/Cargo.toml b/sdk/gen-headers/Cargo.toml index 94d6d33be6..713619a095 100644 --- a/sdk/gen-headers/Cargo.toml +++ b/sdk/gen-headers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gen-headers" -version = "1.14.174" +version = "1.14.175" edition = "2021" license = "Apache-2.0" publish = false diff --git a/sdk/macro/Cargo.toml b/sdk/macro/Cargo.toml index 06dd8c8e5b..92012de093 100644 --- a/sdk/macro/Cargo.toml +++ b/sdk/macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-sdk-macro" -version = "1.14.174" +version = "1.14.175" description = "Solana SDK Macro" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" diff --git a/sdk/program/Cargo.toml b/sdk/program/Cargo.toml index e7ecd2b821..86471cff63 100644 --- a/sdk/program/Cargo.toml +++ b/sdk/program/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-program" -version = "1.14.174" +version = "1.14.175" description = "Solana Program" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -31,9 +31,9 @@ serde_derive = "1.0" serde_json = "1.0" sha2 = "0.10.0" sha3 = "0.10.0" -solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.174" } -solana-sdk-macro = { path = "../macro", version = "=1.14.174" } +solana-frozen-abi = { path = "../../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "=1.14.175" } +solana-sdk-macro = { path = "../macro", version = "=1.14.175" } thiserror = "1.0" [target.'cfg(not(target_os = "solana"))'.dependencies] @@ -50,7 +50,7 @@ wasm-bindgen = "0.2" zeroize = { version = "1.3", default-features = true, features = ["zeroize_derive"] } [target.'cfg(not(target_os = "solana"))'.dev-dependencies] -solana-logger = { path = "../../logger", version = "=1.14.174" } +solana-logger = { path = "../../logger", version = "=1.14.175" } [target.'cfg(target_arch = "wasm32")'.dependencies] console_error_panic_hook = "0.1.7" diff --git a/send-transaction-service/Cargo.toml b/send-transaction-service/Cargo.toml index 2abaefa7bf..1e1864817a 100644 --- a/send-transaction-service/Cargo.toml +++ b/send-transaction-service/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-send-transaction-service" -version = "1.14.174" +version = "1.14.175" description = "Solana send transaction service" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -12,14 +12,14 @@ edition = "2021" [dependencies] crossbeam-channel = "0.5" log = "0.4.17" -solana-client = { path = "../client", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/stake-accounts/Cargo.toml b/stake-accounts/Cargo.toml index 1e31548354..6952e75852 100644 --- a/stake-accounts/Cargo.toml +++ b/stake-accounts/Cargo.toml @@ -3,7 +3,7 @@ name = "solana-stake-accounts" description = "Blockchain, Rebuilt for Scale" authors = ["Solana Maintainers "] edition = "2021" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -11,15 +11,15 @@ documentation = "https://docs.rs/solana-stake-accounts" [dependencies] clap = "2.33.1" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-stake-program = { path = "../programs/stake", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-stake-program = { path = "../programs/stake", version = "=1.14.175" } [dev-dependencies] -solana-runtime = { path = "../runtime", version = "=1.14.174" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/storage-bigtable/Cargo.toml b/storage-bigtable/Cargo.toml index c4bc5e9272..04d75666c4 100644 --- a/storage-bigtable/Cargo.toml +++ b/storage-bigtable/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-storage-bigtable" -version = "1.14.174" +version = "1.14.175" description = "Solana Storage BigTable" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -27,10 +27,10 @@ prost-types = "0.11.0" serde = "1.0.138" serde_derive = "1.0.103" smpl_jwt = "0.7.1" -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-storage-proto = { path = "../storage-proto", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-storage-proto = { path = "../storage-proto", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } thiserror = "1.0" tokio = "1" tonic = { version = "0.8.0", features = ["tls", "transport"] } diff --git a/storage-bigtable/build-proto/Cargo.lock b/storage-bigtable/build-proto/Cargo.lock index 3e16ba9e84..ba923645ba 100644 --- a/storage-bigtable/build-proto/Cargo.lock +++ b/storage-bigtable/build-proto/Cargo.lock @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "proto" -version = "1.14.17" +version = "1.14.175" dependencies = [ "protobuf-src", "tonic-build", diff --git a/storage-bigtable/build-proto/Cargo.toml b/storage-bigtable/build-proto/Cargo.toml index f4e06c4185..bbf42d2dd0 100644 --- a/storage-bigtable/build-proto/Cargo.toml +++ b/storage-bigtable/build-proto/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" name = "proto" publish = false repository = "https://github.com/solana-labs/solana" -version = "1.14.174" +version = "1.14.175" [workspace] diff --git a/storage-proto/Cargo.toml b/storage-proto/Cargo.toml index 617f66461d..5473e24dac 100644 --- a/storage-proto/Cargo.toml +++ b/storage-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-storage-proto" -version = "1.14.174" +version = "1.14.175" description = "Solana Storage Protobuf Definitions" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,9 +14,9 @@ bincode = "1.3.3" bs58 = "0.4.0" prost = "0.11.0" serde = "1.0.138" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } [dev-dependencies] enum-iterator = "0.8.1" diff --git a/streamer/Cargo.toml b/streamer/Cargo.toml index ec54f65add..1041bb9e8f 100644 --- a/streamer/Cargo.toml +++ b/streamer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-streamer" -version = "1.14.174" +version = "1.14.175" description = "Solana Streamer" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -25,15 +25,15 @@ quinn = "0.8.3" rand = "0.7.0" rcgen = "0.9.2" rustls = { version = "0.20.6", features = ["dangerous_configuration"] } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } thiserror = "1.0" tokio = { version = "1", features = ["full"] } x509-parser = "0.14.0" [dev-dependencies] -solana-logger = { path = "../logger", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } [lib] crate-type = ["lib"] diff --git a/sys-tuner/Cargo.toml b/sys-tuner/Cargo.toml index 739be0ce91..97464e37df 100644 --- a/sys-tuner/Cargo.toml +++ b/sys-tuner/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-sys-tuner" description = "The solana cluster system tuner daemon" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,8 +14,8 @@ publish = true clap = "2.33.1" libc = "0.2.126" log = "0.4.17" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [target."cfg(unix)".dependencies] unix_socket2 = "0.5.4" diff --git a/test-validator/Cargo.toml b/test-validator/Cargo.toml index a9f993dbca..7e2235ea13 100644 --- a/test-validator/Cargo.toml +++ b/test-validator/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "solana-test-validator" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" homepage = "https://solana.com/" documentation = "https://docs.rs/solana-test-validator" readme = "../README.md" @@ -15,19 +15,19 @@ base64 = "0.13.0" log = "0.4.17" serde_derive = "1.0.103" serde_json = "1.0.81" -solana-cli-output = { path = "../cli-output", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-program-runtime = { path = "../program-runtime", version = "=1.14.174" } -solana-program-test = { path = "../program-test", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } +solana-cli-output = { path = "../cli-output", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-program-runtime = { path = "../program-runtime", version = "=1.14.175" } +solana-program-test = { path = "../program-test", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } tokio = { version = "1", features = ["full"] } [package.metadata.docs.rs] diff --git a/tokens/Cargo.toml b/tokens/Cargo.toml index 893700b823..74d9c26c93 100644 --- a/tokens/Cargo.toml +++ b/tokens/Cargo.toml @@ -3,7 +3,7 @@ name = "solana-tokens" description = "Blockchain, Rebuilt for Scale" authors = ["Solana Maintainers "] edition = "2021" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -19,14 +19,14 @@ indexmap = "1.9.1" indicatif = "0.16.2" pickledb = { version = "0.5.1", default-features = false, features = ["yaml"] } serde = { version = "1.0", features = ["derive"] } -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-remote-wallet = { path = "../remote-wallet", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } spl-associated-token-account = { version = "=1.1.2" } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } tempfile = "3.3.0" @@ -34,6 +34,6 @@ thiserror = "1.0" [dev-dependencies] bincode = "1.3.3" -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } diff --git a/transaction-dos/Cargo.toml b/transaction-dos/Cargo.toml index 4b5c2bb1e4..adc76edc54 100644 --- a/transaction-dos/Cargo.toml +++ b/transaction-dos/Cargo.toml @@ -2,7 +2,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-transaction-dos" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -14,23 +14,23 @@ clap = "2.33.1" log = "0.4.17" rand = "0.7.0" rayon = "1.5.3" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli = { path = "../cli", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-transaction-status = { path = "../transaction-status", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli = { path = "../cli", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-transaction-status = { path = "../transaction-status", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [dev-dependencies] -solana-local-cluster = { path = "../local-cluster", version = "=1.14.174" } +solana-local-cluster = { path = "../local-cluster", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/transaction-status/Cargo.toml b/transaction-status/Cargo.toml index 063e0dd22c..8cc74ba988 100644 --- a/transaction-status/Cargo.toml +++ b/transaction-status/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-transaction-status" -version = "1.14.174" +version = "1.14.175" description = "Solana transaction status types" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -20,12 +20,12 @@ log = "0.4.17" serde = "1.0.138" serde_derive = "1.0.103" serde_json = "1.0.81" -solana-account-decoder = { path = "../account-decoder", version = "=1.14.174" } -solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.174" } -solana-measure = { path = "../measure", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-account-decoder = { path = "../account-decoder", version = "=1.14.175" } +solana-address-lookup-table-program = { path = "../programs/address-lookup-table", version = "=1.14.175" } +solana-measure = { path = "../measure", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } spl-associated-token-account = { version = "=1.1.2", features = ["no-entrypoint"] } spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } diff --git a/upload-perf/Cargo.toml b/upload-perf/Cargo.toml index c89792c202..9a41b5cde5 100644 --- a/upload-perf/Cargo.toml +++ b/upload-perf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-upload-perf" -version = "1.14.174" +version = "1.14.175" description = "Metrics Upload Utility" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -11,7 +11,7 @@ publish = false [dependencies] serde_json = "1.0.81" -solana-metrics = { path = "../metrics", version = "=1.14.174" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } [[bin]] name = "solana-upload-perf" diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 2afa815b18..4f19bcfd63 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-validator" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -28,30 +28,30 @@ num_cpus = "1.13.1" rand = "0.7.0" serde = "1.0.138" serde_json = "1.0.81" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-core = { path = "../core", version = "=1.14.174" } -solana-download-utils = { path = "../download-utils", version = "=1.14.174" } -solana-entry = { path = "../entry", version = "=1.14.174" } -solana-faucet = { path = "../faucet", version = "=1.14.174" } -solana-genesis-utils = { path = "../genesis-utils", version = "=1.14.174" } -solana-gossip = { path = "../gossip", version = "=1.14.174" } -solana-ledger = { path = "../ledger", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-net-utils = { path = "../net-utils", version = "=1.14.174" } -solana-perf = { path = "../perf", version = "=1.14.174" } -solana-poh = { path = "../poh", version = "=1.14.174" } -solana-rpc = { path = "../rpc", version = "=1.14.174" } -solana-runtime = { path = "../runtime", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.174" } -solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.174" } -solana-streamer = { path = "../streamer", version = "=1.14.174" } -solana-test-validator = { path = "../test-validator", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } -solana-vote-program = { path = "../programs/vote", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-core = { path = "../core", version = "=1.14.175" } +solana-download-utils = { path = "../download-utils", version = "=1.14.175" } +solana-entry = { path = "../entry", version = "=1.14.175" } +solana-faucet = { path = "../faucet", version = "=1.14.175" } +solana-genesis-utils = { path = "../genesis-utils", version = "=1.14.175" } +solana-gossip = { path = "../gossip", version = "=1.14.175" } +solana-ledger = { path = "../ledger", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-net-utils = { path = "../net-utils", version = "=1.14.175" } +solana-perf = { path = "../perf", version = "=1.14.175" } +solana-poh = { path = "../poh", version = "=1.14.175" } +solana-rpc = { path = "../rpc", version = "=1.14.175" } +solana-runtime = { path = "../runtime", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-send-transaction-service = { path = "../send-transaction-service", version = "=1.14.175" } +solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.14.175" } +solana-streamer = { path = "../streamer", version = "=1.14.175" } +solana-test-validator = { path = "../test-validator", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } +solana-vote-program = { path = "../programs/vote", version = "=1.14.175" } symlink = "0.1.0" [target.'cfg(not(target_env = "msvc"))'.dependencies] diff --git a/version/Cargo.toml b/version/Cargo.toml index a8b5cca361..f6f058e2a7 100644 --- a/version/Cargo.toml +++ b/version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-version" -version = "1.14.174" +version = "1.14.175" description = "Solana Version" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" @@ -14,9 +14,9 @@ log = "0.4.17" semver = "1.0.10" serde = "1.0.138" serde_derive = "1.0.103" -solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.174" } -solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-frozen-abi = { path = "../frozen-abi", version = "=1.14.175" } +solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } [lib] name = "solana_version" diff --git a/watchtower/Cargo.toml b/watchtower/Cargo.toml index c20ce6fce0..897b4527ad 100644 --- a/watchtower/Cargo.toml +++ b/watchtower/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Solana Maintainers "] edition = "2021" name = "solana-watchtower" description = "Blockchain, Rebuilt for Scale" -version = "1.14.174" +version = "1.14.175" repository = "https://github.com/solana-labs/solana" license = "Apache-2.0" homepage = "https://solana.com/" @@ -13,15 +13,15 @@ documentation = "https://docs.rs/solana-watchtower" clap = "2.33.1" humantime = "2.0.1" log = "0.4.17" -solana-clap-utils = { path = "../clap-utils", version = "=1.14.174" } -solana-cli-config = { path = "../cli-config", version = "=1.14.174" } -solana-cli-output = { path = "../cli-output", version = "=1.14.174" } -solana-client = { path = "../client", version = "=1.14.174" } -solana-logger = { path = "../logger", version = "=1.14.174" } -solana-metrics = { path = "../metrics", version = "=1.14.174" } -solana-notifier = { path = "../notifier", version = "=1.14.174" } -solana-sdk = { path = "../sdk", version = "=1.14.174" } -solana-version = { path = "../version", version = "=1.14.174" } +solana-clap-utils = { path = "../clap-utils", version = "=1.14.175" } +solana-cli-config = { path = "../cli-config", version = "=1.14.175" } +solana-cli-output = { path = "../cli-output", version = "=1.14.175" } +solana-client = { path = "../client", version = "=1.14.175" } +solana-logger = { path = "../logger", version = "=1.14.175" } +solana-metrics = { path = "../metrics", version = "=1.14.175" } +solana-notifier = { path = "../notifier", version = "=1.14.175" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } +solana-version = { path = "../version", version = "=1.14.175" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/zk-token-sdk/Cargo.toml b/zk-token-sdk/Cargo.toml index 23d50074aa..b03c9b0abf 100644 --- a/zk-token-sdk/Cargo.toml +++ b/zk-token-sdk/Cargo.toml @@ -3,7 +3,7 @@ name = "solana-zk-token-sdk" description = "Solana Zk Token SDK" authors = ["Solana Maintainers "] repository = "https://github.com/solana-labs/solana" -version = "1.14.174" +version = "1.14.175" license = "Apache-2.0" edition = "2021" @@ -12,7 +12,7 @@ base64 = "0.13" bytemuck = { version = "1.11.0", features = ["derive"] } num-derive = "0.3" num-traits = "0.2" -solana-program = { path = "../sdk/program", version = "=1.14.174" } +solana-program = { path = "../sdk/program", version = "=1.14.175" } [target.'cfg(not(target_os = "solana"))'.dependencies] aes-gcm-siv = "0.10.3" @@ -29,7 +29,7 @@ rand = "0.7" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha3 = "0.9" -solana-sdk = { path = "../sdk", version = "=1.14.174" } +solana-sdk = { path = "../sdk", version = "=1.14.175" } subtle = "2" thiserror = "1.0" zeroize = { version = "1.3", default-features = false, features = ["zeroize_derive"] }