From ba2ad98a55fcbe4f640b5efaf518e3f652a4f9a4 Mon Sep 17 00:00:00 2001 From: requesco Date: Thu, 7 Dec 2023 11:42:04 +0200 Subject: [PATCH 1/2] feat: solana v1.17.7 --- .env | 2 +- Cargo.lock | 132 +++++++++--------- solana-geyser-plugin-scaffold/Cargo.toml | 12 +- .../src/fb_serializers/extractors.rs | 22 +++ .../src/fb_serializers/update_types.rs | 14 ++ utils/src/flatbuffer/transaction_info.fbs | 3 +- .../flatbuffer/transaction_info_generated.rs | 12 +- 7 files changed, 117 insertions(+), 80 deletions(-) diff --git a/.env b/.env index cb1499e..f801cd1 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -versions_for_test="1.16.21" +versions_for_test="1.17.7" diff --git a/Cargo.lock b/Cargo.lock index 89c5f8a..a8ceca6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -248,12 +248,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "array-bytes" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad284aeb45c13f2fb4f084de4a420ebf447423bdf9386c0540ce33cb3ef4b8c" - [[package]] name = "arrayref" version = "0.3.7" @@ -356,6 +350,9 @@ name = "bitflags" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitmaps" @@ -1542,6 +1539,17 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "light-poseidon" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5b439809cdfc0d86ecc7317f1724df13dfa665df48991b79e90e689411451f7" +dependencies = [ + "ark-bn254", + "ark-ff", + "thiserror", +] + [[package]] name = "linux-raw-sys" version = "0.4.10" @@ -1976,6 +1984,17 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "qualifier_attr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "quote" version = "1.0.33" @@ -2516,9 +2535,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53c74253199335390946e76d9b613b70fd09d9feac1b108e0e1d3db20e398f2" +checksum = "1c57851cbacad3aee1fd741c69d92606f7a0dd59a38cfd2086ecd3e88f22573b" dependencies = [ "Inflector", "base64 0.21.4", @@ -2529,7 +2548,6 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-address-lookup-table-program", "solana-config-program", "solana-sdk", "spl-token", @@ -2539,32 +2557,11 @@ dependencies = [ "zstd", ] -[[package]] -name = "solana-address-lookup-table-program" -version = "1.16.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5acc59c43d66ffabd110a5357ae97061d2a0f2f418f6b051e5b69b216dcd448b" -dependencies = [ - "bincode", - "bytemuck", - "log", - "num-derive 0.3.3", - "num-traits", - "rustc_version", - "serde", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-program", - "solana-program-runtime", - "solana-sdk", - "thiserror", -] - [[package]] name = "solana-config-program" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3f8491101e89ccdca8f0b5dce3cb43c0c0ad8dbba1a6ec3f40c13a6d6fb67" +checksum = "aae983cd8c0179bae1c1fd861f779ad47390e1fc3490bda2c29de114c2c55a40" dependencies = [ "bincode", "chrono", @@ -2576,9 +2573,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ffa2ce827459fd9d140328989da17a98508fffcd286c9f181a134f60c19bce" +checksum = "0471865f0908c886919844396b7a87c329216736ac61ca074b55237f18afef17" dependencies = [ "ahash 0.8.3", "blake3", @@ -2589,13 +2586,10 @@ dependencies = [ "cc", "either", "generic-array", - "getrandom 0.1.16", "im", "lazy_static", "log", "memmap2", - "once_cell", - "rand_core 0.6.4", "rustc_version", "serde", "serde_bytes", @@ -2609,9 +2603,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac463e4f4432fbce9999a03ebdd6a741eef616a4d56b472dccb0fc3c9259b563" +checksum = "8bb3b5a47af7ec7ce5698d6dea597be93567bac7b0f4845b0c31472dd43bb835" dependencies = [ "proc-macro2", "quote", @@ -2621,9 +2615,9 @@ dependencies = [ [[package]] name = "solana-geyser-plugin-interface" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2ec6772222676f6415813b7f747abd0a7ba38004925a7862f892e6c4a022e7" +checksum = "31a7abb518e610c626f875c61424586e89c93a28df0f5b8feac8902d53decef0" dependencies = [ "log", "solana-sdk", @@ -2658,9 +2652,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d364c0d44e403953e0d1d3b9ffe96a80f89ef24579501e597b2a44a9952e31d3" +checksum = "1fee96bc0434660926b0052bd9e1ea62a251cd7fd17c043aa5d2d3db3f7e0316" dependencies = [ "env_logger", "lazy_static", @@ -2669,9 +2663,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190e71bc7b0697ca9179f7491509d3bea5218a8f9d05cb1b20c58fdd7ec4958" +checksum = "69cc1ffedbb774b61d214005805e884167cf0d0f3b35db8d4582007c27e05075" dependencies = [ "log", "solana-sdk", @@ -2679,9 +2673,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b50dff8ee622048f029db0cf19e6e4cc44a64878ca9a318a89e2e408ffcf84" +checksum = "9b4c986a6e37dc11b2432372852598e847564833ba1fa346d584ccc2da324ec5" dependencies = [ "crossbeam-channel", "gethostname", @@ -2689,22 +2683,22 @@ dependencies = [ "log", "reqwest", "solana-sdk", + "thiserror", ] [[package]] name = "solana-program" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b92c3061a462201125ed693e5f58d26d206fdb5086b44feec20143ccdb49ae" +checksum = "d372d3108d05267b0f446935939f6ec586504f2443becc855b46ee64745ebce5" dependencies = [ "ark-bn254", "ark-ec", "ark-ff", "ark-serialize", - "array-bytes", "base64 0.21.4", "bincode", - "bitflags 1.3.2", + "bitflags 2.4.1", "blake3", "borsh 0.10.3", "borsh 0.9.3", @@ -2721,14 +2715,14 @@ dependencies = [ "lazy_static", "libc", "libsecp256k1", + "light-poseidon", "log", "memoffset", "num-bigint 0.4.4", "num-derive 0.3.3", "num-traits", "parking_lot", - "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.5", "rustc_version", "rustversion", "serde", @@ -2748,9 +2742,9 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bdae847b1d76332d4d7190651d73269d125b284509015255bff4e3d9d352139" +checksum = "64e37ea8d22ad176709008203e5d3a258bd4ff030aad47e944399172f00490dc" dependencies = [ "base64 0.21.4", "bincode", @@ -2762,7 +2756,7 @@ dependencies = [ "num-derive 0.3.3", "num-traits", "percentage", - "rand 0.7.3", + "rand 0.8.5", "rustc_version", "serde", "solana-frozen-abi", @@ -2776,14 +2770,14 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "607873eaba7bbb062d22198c086e44784d3daffcc568a97e9270102e8da85708" +checksum = "ddb28240a4d5b202d0b14de75c6ee3227cff5764d2d64505a42a2a505da35d65" dependencies = [ "assert_matches", "base64 0.21.4", "bincode", - "bitflags 1.3.2", + "bitflags 2.4.1", "borsh 0.10.3", "bs58", "bytemuck", @@ -2806,8 +2800,9 @@ dependencies = [ "num_enum 0.6.1", "pbkdf2 0.11.0", "qstring", + "qualifier_attr", "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.5", "rustc_version", "rustversion", "serde", @@ -2829,9 +2824,9 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16e6a20a90bff56e9aa291e39a6b17c79bdf30a0c1bff60abf709cf4454ddca" +checksum = "b3114364d2fe8c0238abd0b39c6ff1cfb180d8a30d5127b57a8d022a38dce648" dependencies = [ "bs58", "proc-macro2", @@ -2842,9 +2837,9 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0738907eaab3c88989c1552dff36de297d76d4a3c2e8ef18a3f543fbd4a92d" +checksum = "0c13d2307ae468e8254b960d140e0722d862b3128d099629e891d679b4803177" dependencies = [ "Inflector", "base64 0.21.4", @@ -2857,7 +2852,6 @@ dependencies = [ "serde_derive", "serde_json", "solana-account-decoder", - "solana-address-lookup-table-program", "solana-sdk", "spl-associated-token-account", "spl-memo", @@ -2868,9 +2862,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.16.21" +version = "1.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d699e56d6581a2ea919ef355706df129b76bc9519518758353a03e4b5814f334" +checksum = "2a71694b99cdf5e2a55f38ba27868234abf91b5e52cdb042b11c3c91399f9d8a" dependencies = [ "aes-gcm-siv", "base64 0.21.4", @@ -2897,9 +2891,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.6.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d4ba1e58947346e360fabde0697029d36ba83c42f669199b16a8931313cf29" +checksum = "3d457cc2ba742c120492a64b7fa60e22c575e891f6b55039f4d736568fb112a3" dependencies = [ "byteorder", "combine", diff --git a/solana-geyser-plugin-scaffold/Cargo.toml b/solana-geyser-plugin-scaffold/Cargo.toml index 2db0c90..f345bac 100644 --- a/solana-geyser-plugin-scaffold/Cargo.toml +++ b/solana-geyser-plugin-scaffold/Cargo.toml @@ -12,16 +12,16 @@ keywords = ["solana", "geyser", "plugin", "solana-geyser-plugin"] crate-type = ["cdylib", "rlib"] [dependencies] -solana-geyser-plugin-interface = { version = "=1.16.21" } -solana-logger = { version = "=1.16.21" } +solana-geyser-plugin-interface = { version = "=1.17.7" } +solana-logger = { version = "=1.17.7" } log = "0.4.17" bs58 = "0.4.0" flatbuffers = "23.1.21" parking_lot = "0.12.0" -solana-sdk = { version = "=1.16.21" } -solana-transaction-status = { version = "=1.16.21" } -solana-program = { version = "=1.16.21" } -solana-metrics = { version = "=1.16.21" } +solana-sdk = { version = "=1.17.7" } +solana-transaction-status = { version = "=1.17.7" } +solana-program = { version = "=1.17.7" } +solana-metrics = { version = "=1.17.7" } serde = { version = "1.0.133" } serde_json = "1.0.75" anyhow = "1.0.52" diff --git a/solana-geyser-plugin-scaffold/src/fb_serializers/extractors.rs b/solana-geyser-plugin-scaffold/src/fb_serializers/extractors.rs index 28a2b54..779e780 100644 --- a/solana-geyser-plugin-scaffold/src/fb_serializers/extractors.rs +++ b/solana-geyser-plugin-scaffold/src/fb_serializers/extractors.rs @@ -1249,5 +1249,27 @@ fn extract_tx_status<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( }, )) } + solana_sdk::transaction::TransactionError::ProgramExecutionTemporarilyRestricted { + account_index, + } => { + let val = Some( + InnerByte::create( + builder, + &InnerByteArgs { + inner_byte: account_index, + }, + ) + .as_union_value(), + ); + + Some(TransactionError::create( + builder, + &TransactionErrorArgs { + err_type: TransactionErrorType::ProgramExecutionTemporarilyRestricted, + err_data_type: TransactionErrorData::InnerByte, + err_data: val, + }, + )) + } } } diff --git a/solana-geyser-plugin-scaffold/src/fb_serializers/update_types.rs b/solana-geyser-plugin-scaffold/src/fb_serializers/update_types.rs index 50ac0db..0a3063b 100644 --- a/solana-geyser-plugin-scaffold/src/fb_serializers/update_types.rs +++ b/solana-geyser-plugin-scaffold/src/fb_serializers/update_types.rs @@ -182,6 +182,7 @@ pub struct BlockUpdate<'a> { pub block_time: Option, pub block_height: Option, pub executed_transaction_count: Option, + pub entry_count: Option, } impl<'a> From> for BlockUpdate<'a> { @@ -196,6 +197,7 @@ impl<'a> From> for BlockUpdate<'a> { block_time: block.block_time, block_height: block.block_height, executed_transaction_count: None, + entry_count: None, }, ReplicaBlockInfoVersions::V0_0_2(block) => BlockUpdate { parent_slot: Some(block.parent_slot), @@ -206,6 +208,18 @@ impl<'a> From> for BlockUpdate<'a> { block_time: block.block_time, block_height: block.block_height, executed_transaction_count: Some(block.executed_transaction_count), + entry_count: None, + }, + ReplicaBlockInfoVersions::V0_0_3(block) => BlockUpdate { + parent_slot: Some(block.parent_slot), + parent_blockhash: Some(block.parent_blockhash), + slot: block.slot, + blockhash: block.blockhash, + rewards: block.rewards, + block_time: block.block_time, + block_height: block.block_height, + executed_transaction_count: Some(block.executed_transaction_count), + entry_count: Some(block.entry_count), }, } } diff --git a/utils/src/flatbuffer/transaction_info.fbs b/utils/src/flatbuffer/transaction_info.fbs index d318158..af684a2 100644 --- a/utils/src/flatbuffer/transaction_info.fbs +++ b/utils/src/flatbuffer/transaction_info.fbs @@ -74,7 +74,8 @@ enum TransactionErrorType: uint8 { MaxLoadedAccountsDataSizeExceeded, InvalidLoadedAccountsDataSizeLimit, ResanitizationNeeded, - UnbalancedTransaction + UnbalancedTransaction, + ProgramExecutionTemporarilyRestricted } enum InstructionErrorType: uint8 { diff --git a/utils/src/flatbuffer/transaction_info_generated.rs b/utils/src/flatbuffer/transaction_info_generated.rs index 5fa3dba..1e42357 100644 --- a/utils/src/flatbuffer/transaction_info_generated.rs +++ b/utils/src/flatbuffer/transaction_info_generated.rs @@ -23,13 +23,13 @@ pub mod transaction_info { since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021." )] - pub const ENUM_MAX_TRANSACTION_ERROR_TYPE: u8 = 35; + pub const ENUM_MAX_TRANSACTION_ERROR_TYPE: u8 = 36; #[deprecated( since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021." )] #[allow(non_camel_case_types)] - pub const ENUM_VALUES_TRANSACTION_ERROR_TYPE: [TransactionErrorType; 36] = [ + pub const ENUM_VALUES_TRANSACTION_ERROR_TYPE: [TransactionErrorType; 37] = [ TransactionErrorType::AccountInUse, TransactionErrorType::AccountLoadedTwice, TransactionErrorType::AccountNotFound, @@ -66,6 +66,7 @@ pub mod transaction_info { TransactionErrorType::InvalidLoadedAccountsDataSizeLimit, TransactionErrorType::ResanitizationNeeded, TransactionErrorType::UnbalancedTransaction, + TransactionErrorType::ProgramExecutionTemporarilyRestricted, ]; #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] @@ -109,9 +110,10 @@ pub mod transaction_info { pub const InvalidLoadedAccountsDataSizeLimit: Self = Self(33); pub const ResanitizationNeeded: Self = Self(34); pub const UnbalancedTransaction: Self = Self(35); + pub const ProgramExecutionTemporarilyRestricted: Self = Self(36); pub const ENUM_MIN: u8 = 0; - pub const ENUM_MAX: u8 = 35; + pub const ENUM_MAX: u8 = 36; pub const ENUM_VALUES: &'static [Self] = &[ Self::AccountInUse, Self::AccountLoadedTwice, @@ -149,6 +151,7 @@ pub mod transaction_info { Self::InvalidLoadedAccountsDataSizeLimit, Self::ResanitizationNeeded, Self::UnbalancedTransaction, + Self::ProgramExecutionTemporarilyRestricted, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { @@ -193,6 +196,9 @@ pub mod transaction_info { } Self::ResanitizationNeeded => Some("ResanitizationNeeded"), Self::UnbalancedTransaction => Some("UnbalancedTransaction"), + Self::ProgramExecutionTemporarilyRestricted => { + Some("ProgramExecutionTemporarilyRestricted") + } _ => None, } } From ce42c065466a6182f9d36d7a15bfbf422c4e3f06 Mon Sep 17 00:00:00 2001 From: requesco Date: Thu, 7 Dec 2023 12:02:45 +0200 Subject: [PATCH 2/2] bump rust version --- ci/rust-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/rust-version.sh b/ci/rust-version.sh index 9051658..5fbb239 100755 --- a/ci/rust-version.sh +++ b/ci/rust-version.sh @@ -23,7 +23,7 @@ if [[ -n $RUST_STABLE_VERSION ]]; then stable_version="$RUST_STABLE_VERSION" else - stable_version=1.69.0 + stable_version=1.73.0 fi if [[ -n $RUST_NIGHTLY_VERSION ]]; then