From b2c4742af2631a03042e36292cfee58a9ac53612 Mon Sep 17 00:00:00 2001 From: Kevin Heavey Date: Wed, 17 Jul 2024 18:10:16 +0400 Subject: [PATCH] Move short_vec to its own crate (#1796) * move short_vec.rs to its own crate * update short_vec dependents to use new crate * update lock file * reexport short_vec with deprecation notice * re-export in sdk too * fmt * remove duplicate frozen-abi stuff * fix frozen-abi usage and activation * update lock file * fmt * update expected digests after confirming not a real abi change * update another digest * add missing activation of frozen-abi feature * update digests in sdk and program * update VoteTransaction digest * fmt --- Cargo.lock | 20 +++++++++++++ Cargo.toml | 2 ++ core/Cargo.toml | 2 ++ .../immutable_deserialized_packet.rs | 2 +- core/src/consensus.rs | 2 +- core/src/consensus/tower1_14_11.rs | 2 +- gossip/Cargo.toml | 2 ++ gossip/src/cluster_info.rs | 2 +- gossip/src/contact_info.rs | 3 +- perf/Cargo.toml | 2 ++ perf/src/sigverify.rs | 2 +- programs/config/Cargo.toml | 1 + programs/config/src/lib.rs | 2 +- programs/sbf/Cargo.lock | 15 ++++++++++ programs/vote/src/vote_state/mod.rs | 2 +- sdk/Cargo.toml | 2 ++ sdk/benches/short_vec.rs | 2 +- sdk/program/Cargo.toml | 3 +- sdk/program/src/instruction.rs | 7 ++--- sdk/program/src/lib.rs | 3 +- sdk/program/src/message/legacy.rs | 7 +++-- sdk/program/src/message/versions/mod.rs | 4 +-- sdk/program/src/message/versions/v0/mod.rs | 2 +- sdk/program/src/serde_varint.rs | 2 +- sdk/program/src/vote/state/mod.rs | 6 ++-- sdk/src/lib.rs | 6 ++-- sdk/src/transaction/mod.rs | 6 ++-- sdk/src/transaction/versioned/mod.rs | 2 +- short-vec/Cargo.toml | 29 +++++++++++++++++++ short-vec/build.rs | 1 + .../src/short_vec.rs => short-vec/src/lib.rs | 4 ++- transaction-metrics-tracker/Cargo.toml | 1 + transaction-metrics-tracker/src/lib.rs | 3 +- 33 files changed, 118 insertions(+), 33 deletions(-) create mode 100644 short-vec/Cargo.toml create mode 120000 short-vec/build.rs rename sdk/program/src/short_vec.rs => short-vec/src/lib.rs (98%) diff --git a/Cargo.lock b/Cargo.lock index 3f63c40568dd26..e3e1df90b7f9bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6007,6 +6007,7 @@ dependencies = [ "solana-logger", "solana-program-runtime", "solana-sdk", + "solana-short-vec", ] [[package]] @@ -6098,6 +6099,7 @@ dependencies = [ "solana-sanitize", "solana-sdk", "solana-send-transaction-service", + "solana-short-vec", "solana-stake-program", "solana-streamer", "solana-svm", @@ -6399,6 +6401,7 @@ dependencies = [ "solana-runtime", "solana-sanitize", "solana-sdk", + "solana-short-vec", "solana-streamer", "solana-tpu-client", "solana-version", @@ -6728,6 +6731,7 @@ dependencies = [ "solana-metrics", "solana-rayon-threadlimit", "solana-sdk", + "solana-short-vec", "solana-vote-program", "test-case", ] @@ -6834,6 +6838,7 @@ dependencies = [ "solana-sanitize", "solana-sdk-macro", "solana-secp256k1-recover", + "solana-short-vec", "static_assertions", "thiserror", "wasm-bindgen", @@ -7305,6 +7310,7 @@ dependencies = [ "solana-sdk", "solana-sdk-macro", "solana-secp256k1-recover", + "solana-short-vec", "static_assertions", "thiserror", "tiny-bip39", @@ -7358,6 +7364,19 @@ dependencies = [ "solana-tpu-client", ] +[[package]] +name = "solana-short-vec" +version = "2.1.0" +dependencies = [ + "assert_matches", + "bincode", + "rustc_version 0.4.0", + "serde", + "serde_json", + "solana-frozen-abi", + "solana-frozen-abi-macro", +] + [[package]] name = "solana-stake-accounts" version = "2.1.0" @@ -7727,6 +7746,7 @@ dependencies = [ "rand 0.8.5", "solana-perf", "solana-sdk", + "solana-short-vec", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 83b14d978974a0..ce71b41f79b0e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,6 +105,7 @@ members = [ "sdk/package-metadata-macro", "sdk/program", "send-transaction-service", + "short-vec", "stake-accounts", "storage-bigtable", "storage-bigtable/build-proto", @@ -399,6 +400,7 @@ solana-sdk = { path = "sdk", version = "=2.1.0" } solana-sdk-macro = { path = "sdk/macro", version = "=2.1.0" } solana-secp256k1-recover = { path = "curves/secp256k1-recover", version = "=2.1.0", default-features = false } solana-send-transaction-service = { path = "send-transaction-service", version = "=2.1.0" } +solana-short-vec = { path = "short-vec", version = "=2.1.0" } solana-stake-program = { path = "programs/stake", version = "=2.1.0" } solana-storage-bigtable = { path = "storage-bigtable", version = "=2.1.0" } solana-storage-proto = { path = "storage-proto", version = "=2.1.0" } diff --git a/core/Cargo.toml b/core/Cargo.toml index a983a6a42566cf..f0a2d178715f5b 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -68,6 +68,7 @@ solana-runtime = { workspace = true } solana-sanitize = { workspace = true } solana-sdk = { workspace = true } solana-send-transaction-service = { workspace = true } +solana-short-vec = { workspace = true } solana-streamer = { workspace = true } solana-svm = { workspace = true } solana-timings = { workspace = true } @@ -129,6 +130,7 @@ frozen-abi = [ "solana-program-runtime/frozen-abi", "solana-runtime/frozen-abi", "solana-sdk/frozen-abi", + "solana-short-vec/frozen-abi", "solana-svm/frozen-abi", "solana-vote/frozen-abi", "solana-vote-program/frozen-abi", diff --git a/core/src/banking_stage/immutable_deserialized_packet.rs b/core/src/banking_stage/immutable_deserialized_packet.rs index a9835672632aed..2017a79a19c041 100644 --- a/core/src/banking_stage/immutable_deserialized_packet.rs +++ b/core/src/banking_stage/immutable_deserialized_packet.rs @@ -7,13 +7,13 @@ use { hash::Hash, message::Message, pubkey::Pubkey, - short_vec::decode_shortu16_len, signature::Signature, transaction::{ AddressLoader, SanitizedTransaction, SanitizedVersionedTransaction, VersionedTransaction, }, }, + solana_short_vec::decode_shortu16_len, std::{cmp::Ordering, collections::HashSet, mem::size_of}, thiserror::Error, }; diff --git a/core/src/consensus.rs b/core/src/consensus.rs index cd1201429fec11..a4ef35ca4f39ea 100644 --- a/core/src/consensus.rs +++ b/core/src/consensus.rs @@ -237,7 +237,7 @@ pub(crate) enum BlockhashStatus { #[cfg_attr( feature = "frozen-abi", derive(AbiExample), - frozen_abi(digest = "679XkZ4upGc389SwqAsjs5tr2qB4wisqjbwtei7fGhxC") + frozen_abi(digest = "H6T5A66kgJYANFXVrUprxV76WD5ce7Gf62q9SiBC2uYk") )] #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct Tower { diff --git a/core/src/consensus/tower1_14_11.rs b/core/src/consensus/tower1_14_11.rs index ee96540e1cc4be..8068d000deff22 100644 --- a/core/src/consensus/tower1_14_11.rs +++ b/core/src/consensus/tower1_14_11.rs @@ -9,7 +9,7 @@ use { #[cfg_attr( feature = "frozen-abi", derive(AbiExample), - frozen_abi(digest = "4LayQwoKrE2jPhbNtg3TSpKrtEtjcPiwsVPJN7aCavri") + frozen_abi(digest = "EqYa8kwY9Z1Zbjxgs2aBbqKyCK4f7WAG8gJ7pVSQyKzk") )] #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct Tower1_14_11 { diff --git a/gossip/Cargo.toml b/gossip/Cargo.toml index 5382b4c7c077ac..7720073236bad1 100644 --- a/gossip/Cargo.toml +++ b/gossip/Cargo.toml @@ -45,6 +45,7 @@ solana-rpc-client = { workspace = true } solana-runtime = { workspace = true } solana-sanitize = { workspace = true } solana-sdk = { workspace = true } +solana-short-vec = { workspace = true } solana-streamer = { workspace = true } solana-tpu-client = { workspace = true } solana-version = { workspace = true } @@ -71,6 +72,7 @@ frozen-abi = [ "solana-perf/frozen-abi", "solana-runtime/frozen-abi", "solana-sdk/frozen-abi", + "solana-short-vec/frozen-abi", "solana-version/frozen-abi", "solana-vote/frozen-abi", "solana-vote-program/frozen-abi", diff --git a/gossip/src/cluster_info.rs b/gossip/src/cluster_info.rs index eb302b7036f90a..dd6cf9fb0768a8 100644 --- a/gossip/src/cluster_info.rs +++ b/gossip/src/cluster_info.rs @@ -310,7 +310,7 @@ pub(crate) type Ping = ping_pong::Ping<[u8; GOSSIP_PING_TOKEN_SIZE]>; #[cfg_attr( feature = "frozen-abi", derive(AbiExample, AbiEnumVisitor), - frozen_abi(digest = "ogEqvffeEkPpojAaSiUbCv2HdJcdXDQ1ykgYyvKvLo2") + frozen_abi(digest = "6YaMJand6tKtNLUrqvusC5QVDmVLCWYRg5LtxYNi6XN4") )] #[derive(Serialize, Deserialize, Debug)] #[allow(clippy::large_enum_variant)] diff --git a/gossip/src/contact_info.rs b/gossip/src/contact_info.rs index 57e11bcd843931..9a5c1ce495813b 100644 --- a/gossip/src/contact_info.rs +++ b/gossip/src/contact_info.rs @@ -8,8 +8,9 @@ use { pubkey::Pubkey, quic::QUIC_PORT_OFFSET, rpc_port::{DEFAULT_RPC_PORT, DEFAULT_RPC_PUBSUB_PORT}, - serde_varint, short_vec, + serde_varint, }, + solana_short_vec as short_vec, solana_streamer::socket::SocketAddrSpace, static_assertions::const_assert_eq, std::{ diff --git a/perf/Cargo.toml b/perf/Cargo.toml index 8b7b4c6cb12747..71a213e7693d5c 100644 --- a/perf/Cargo.toml +++ b/perf/Cargo.toml @@ -26,6 +26,7 @@ solana-frozen-abi-macro = { workspace = true, optional = true } solana-metrics = { workspace = true } solana-rayon-threadlimit = { workspace = true } solana-sdk = { workspace = true } +solana-short-vec = { workspace = true } solana-vote-program = { workspace = true } [target."cfg(target_os = \"linux\")".dependencies] @@ -50,6 +51,7 @@ frozen-abi = [ "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", + "solana-short-vec/frozen-abi", "solana-vote-program/frozen-abi", ] diff --git a/perf/src/sigverify.rs b/perf/src/sigverify.rs index 6078961d42db71..0d29bfe571b81b 100644 --- a/perf/src/sigverify.rs +++ b/perf/src/sigverify.rs @@ -17,9 +17,9 @@ use { hash::Hash, message::{MESSAGE_HEADER_LENGTH, MESSAGE_VERSION_PREFIX}, pubkey::Pubkey, - short_vec::decode_shortu16_len, signature::Signature, }, + solana_short_vec::decode_shortu16_len, std::{convert::TryFrom, mem::size_of}, }; diff --git a/programs/config/Cargo.toml b/programs/config/Cargo.toml index b631f7c3e31397..48bd3157c6e0a6 100644 --- a/programs/config/Cargo.toml +++ b/programs/config/Cargo.toml @@ -17,6 +17,7 @@ serde_derive = { workspace = true } solana-log-collector = { workspace = true } solana-program-runtime = { workspace = true } solana-sdk = { workspace = true } +solana-short-vec = { workspace = true } [dev-dependencies] solana-logger = { workspace = true } diff --git a/programs/config/src/lib.rs b/programs/config/src/lib.rs index 731682b9e8d198..3aabed96ef32c9 100644 --- a/programs/config/src/lib.rs +++ b/programs/config/src/lib.rs @@ -16,8 +16,8 @@ use { solana_sdk::{ account::{Account, AccountSharedData}, pubkey::Pubkey, - short_vec, }, + solana_short_vec as short_vec, }; pub trait ConfigState: serde::Serialize + Default { diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index bf3e18d7f34bc2..2ffe66d3ca0e89 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -4786,6 +4786,7 @@ dependencies = [ "solana-log-collector", "solana-program-runtime", "solana-sdk", + "solana-short-vec", ] [[package]] @@ -4864,6 +4865,7 @@ dependencies = [ "solana-sanitize", "solana-sdk", "solana-send-transaction-service", + "solana-short-vec", "solana-streamer", "solana-svm", "solana-timings", @@ -5049,6 +5051,7 @@ dependencies = [ "solana-runtime", "solana-sanitize", "solana-sdk", + "solana-short-vec", "solana-streamer", "solana-tpu-client", "solana-version", @@ -5242,6 +5245,7 @@ dependencies = [ "solana-metrics", "solana-rayon-threadlimit", "solana-sdk", + "solana-short-vec", "solana-vote-program", ] @@ -5313,6 +5317,7 @@ dependencies = [ "solana-sanitize", "solana-sdk-macro", "solana-secp256k1-recover", + "solana-short-vec", "thiserror", "wasm-bindgen", ] @@ -6153,6 +6158,7 @@ dependencies = [ "solana-sanitize", "solana-sdk-macro", "solana-secp256k1-recover", + "solana-short-vec", "thiserror", "uriparse", "wasm-bindgen", @@ -6200,6 +6206,14 @@ dependencies = [ "solana-tpu-client", ] +[[package]] +name = "solana-short-vec" +version = "2.1.0" +dependencies = [ + "rustc_version", + "serde", +] + [[package]] name = "solana-stake-program" version = "2.1.0" @@ -6418,6 +6432,7 @@ dependencies = [ "rand 0.8.5", "solana-perf", "solana-sdk", + "solana-short-vec", ] [[package]] diff --git a/programs/vote/src/vote_state/mod.rs b/programs/vote/src/vote_state/mod.rs index 8d8ec0cf24b255..817441da321a75 100644 --- a/programs/vote/src/vote_state/mod.rs +++ b/programs/vote/src/vote_state/mod.rs @@ -31,7 +31,7 @@ use { #[cfg_attr( feature = "frozen-abi", derive(AbiExample, AbiEnumVisitor), - frozen_abi(digest = "EcS3xgfomytEAQ1eVd8R76ZejwyHp2Ed8dHqQWh6zi5v") + frozen_abi(digest = "3R2hRL3FM6jovbYubq2UWeiVDEVzrhH6M1ihoCPZWLsk") )] #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] pub enum VoteTransaction { diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index f2e6cc6d7cc2d3..f9862032bfde1a 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -42,6 +42,7 @@ frozen-abi = [ "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-program/frozen-abi", + "solana-short-vec/frozen-abi" ] [dependencies] @@ -85,6 +86,7 @@ solana-program = { workspace = true } solana-sanitize = { workspace = true } solana-sdk-macro = { workspace = true } solana-secp256k1-recover = { workspace = true } +solana-short-vec = { workspace = true } thiserror = { workspace = true } uriparse = { workspace = true } diff --git a/sdk/benches/short_vec.rs b/sdk/benches/short_vec.rs index 0a73a7e0eb5ddb..648ae811257cb2 100644 --- a/sdk/benches/short_vec.rs +++ b/sdk/benches/short_vec.rs @@ -1,7 +1,7 @@ #![feature(test)] extern crate test; -use {bincode::deserialize, solana_sdk::short_vec::ShortVec, test::Bencher}; +use {bincode::deserialize, solana_short_vec::ShortVec, test::Bencher}; // Return a ShortVec with 127 bytes fn create_encoded_short_vec() -> Vec { diff --git a/sdk/program/Cargo.toml b/sdk/program/Cargo.toml index 2d2625322f5667..44faedd89cc9d9 100644 --- a/sdk/program/Cargo.toml +++ b/sdk/program/Cargo.toml @@ -37,6 +37,7 @@ solana-frozen-abi-macro = { workspace = true, optional = true } solana-sanitize = { workspace = true } solana-sdk-macro = { workspace = true } solana-secp256k1-recover = { workspace = true } +solana-short-vec = { workspace = true } thiserror = { workspace = true } # This is currently needed to build on-chain programs reliably. @@ -97,4 +98,4 @@ crate-type = ["cdylib", "rlib"] default = ["borsh"] borsh = ["dep:borsh", "dep:borsh0-10"] dev-context-only-utils = ["dep:qualifier_attr"] -frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] +frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-short-vec/frozen-abi"] diff --git a/sdk/program/src/instruction.rs b/sdk/program/src/instruction.rs index 56d34d7beb410e..2a686c75dec2e6 100644 --- a/sdk/program/src/instruction.rs +++ b/sdk/program/src/instruction.rs @@ -18,11 +18,8 @@ use crate::wasm_bindgen; #[cfg(feature = "borsh")] use borsh::BorshSerialize; use { - crate::{pubkey::Pubkey, short_vec}, - bincode::serialize, - serde::Serialize, - solana_sanitize::Sanitize, - thiserror::Error, + crate::pubkey::Pubkey, bincode::serialize, serde::Serialize, solana_sanitize::Sanitize, + solana_short_vec as short_vec, thiserror::Error, }; /// Reasons the runtime might have rejected an instruction. diff --git a/sdk/program/src/lib.rs b/sdk/program/src/lib.rs index a23b9dcf3696c7..213c68966e6fcb 100644 --- a/sdk/program/src/lib.rs +++ b/sdk/program/src/lib.rs @@ -521,7 +521,6 @@ pub mod rent; pub mod secp256k1_program; pub mod serde_varint; pub mod serialize_utils; -pub mod short_vec; pub mod slot_hashes; pub mod slot_history; pub mod stable_layout; @@ -538,6 +537,8 @@ pub mod wasm; pub use solana_sanitize as sanitize; #[deprecated(since = "2.1.0", note = "Use `solana-secp256k1-recover` crate instead")] pub use solana_secp256k1_recover as secp256k1_recover; +#[deprecated(since = "2.1.0", note = "Use `solana-short-vec` crate instead")] +pub use solana_short_vec as short_vec; #[cfg(target_arch = "wasm32")] pub use wasm_bindgen::prelude::wasm_bindgen; diff --git a/sdk/program/src/message/legacy.rs b/sdk/program/src/message/legacy.rs index 502a9ccd351ba4..4c1d4c5a9da418 100644 --- a/sdk/program/src/message/legacy.rs +++ b/sdk/program/src/message/legacy.rs @@ -22,9 +22,10 @@ use { instruction::{CompiledInstruction, Instruction}, message::{compiled_keys::CompiledKeys, MessageHeader}, pubkey::Pubkey, - short_vec, system_instruction, system_program, sysvar, + system_instruction, system_program, sysvar, }, solana_sanitize::{Sanitize, SanitizeError}, + solana_short_vec as short_vec, std::{collections::HashSet, convert::TryFrom, str::FromStr}, }; @@ -122,7 +123,7 @@ fn compile_instructions(ixs: &[Instruction], keys: &[Pubkey]) -> Vec = result::Result; #[cfg_attr( feature = "frozen-abi", derive(AbiExample), - frozen_abi(digest = "FZtncnS1Xk8ghHfKiXE5oGiUbw2wJhmfXQuNgQR3K6Mc") + frozen_abi(digest = "5LPHxp7TKPeV7GZ9pcT4NxNxJa3ZhvToDekCMAPvNWLv") )] #[derive(Debug, PartialEq, Default, Eq, Clone, Serialize, Deserialize)] pub struct Transaction { @@ -200,7 +200,7 @@ pub struct Transaction { #[cfg_attr( feature = "frozen-abi", derive(AbiExample), - frozen_abi(digest = "FZtncnS1Xk8ghHfKiXE5oGiUbw2wJhmfXQuNgQR3K6Mc") + frozen_abi(digest = "5LPHxp7TKPeV7GZ9pcT4NxNxJa3ZhvToDekCMAPvNWLv") )] #[derive(Debug, PartialEq, Default, Eq, Clone, Serialize, Deserialize)] pub struct Transaction { diff --git a/sdk/src/transaction/versioned/mod.rs b/sdk/src/transaction/versioned/mod.rs index 94d4ca2cb3b22f..1305b6ab514587 100644 --- a/sdk/src/transaction/versioned/mod.rs +++ b/sdk/src/transaction/versioned/mod.rs @@ -6,7 +6,6 @@ use { crate::{ hash::Hash, message::VersionedMessage, - short_vec, signature::Signature, signer::SignerError, signers::Signers, @@ -14,6 +13,7 @@ use { }, serde::Serialize, solana_sanitize::SanitizeError, + solana_short_vec as short_vec, std::cmp::Ordering, }; diff --git a/short-vec/Cargo.toml b/short-vec/Cargo.toml new file mode 100644 index 00000000000000..32af444ac95e9c --- /dev/null +++ b/short-vec/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "solana-short-vec" +description = "Solana compact serde-encoding of vectors with small length." +documentation = "https://docs.rs/solana-short-vec" +version = { workspace = true } +authors = { workspace = true } +repository = { workspace = true } +homepage = { workspace = true } +license = { workspace = true } +edition = { workspace = true } + +[build-dependencies] +rustc_version = { workspace = true } + +[dependencies] +serde = { workspace = true } +solana-frozen-abi = { workspace = true, optional = true } +solana-frozen-abi-macro = { workspace = true, optional = true } + +[dev-dependencies] +assert_matches = { workspace = true } +bincode = { workspace = true } +serde_json = { workspace = true } + +[features] +frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] diff --git a/short-vec/build.rs b/short-vec/build.rs new file mode 120000 index 00000000000000..ae66c237c5f4fd --- /dev/null +++ b/short-vec/build.rs @@ -0,0 +1 @@ +../frozen-abi/build.rs \ No newline at end of file diff --git a/sdk/program/src/short_vec.rs b/short-vec/src/lib.rs similarity index 98% rename from sdk/program/src/short_vec.rs rename to short-vec/src/lib.rs index a90e3cf0426111..5fb7bbdbf8f447 100644 --- a/sdk/program/src/short_vec.rs +++ b/short-vec/src/lib.rs @@ -1,6 +1,8 @@ //! Compact serde-encoding of vectors with small length. - +#![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] +#[cfg(feature = "frozen-abi")] +use solana_frozen_abi_macro::AbiExample; use { serde::{ de::{self, Deserializer, SeqAccess, Visitor}, diff --git a/transaction-metrics-tracker/Cargo.toml b/transaction-metrics-tracker/Cargo.toml index 92c0ec31c32b44..a908bee9abf30e 100644 --- a/transaction-metrics-tracker/Cargo.toml +++ b/transaction-metrics-tracker/Cargo.toml @@ -18,6 +18,7 @@ log = { workspace = true } rand = { workspace = true } solana-perf = { workspace = true } solana-sdk = { workspace = true } +solana-short-vec = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/transaction-metrics-tracker/src/lib.rs b/transaction-metrics-tracker/src/lib.rs index 2baec195de9b84..1ae0ab5da36630 100644 --- a/transaction-metrics-tracker/src/lib.rs +++ b/transaction-metrics-tracker/src/lib.rs @@ -3,7 +3,8 @@ use { log::*, rand::Rng, solana_perf::sigverify::PacketError, - solana_sdk::{packet::Packet, short_vec::decode_shortu16_len, signature::SIGNATURE_BYTES}, + solana_sdk::{packet::Packet, signature::SIGNATURE_BYTES}, + solana_short_vec::decode_shortu16_len, }; // The mask is 12 bits long (1<<12 = 4096), it means the probability of matching