solana-core
Advanced tools
| { | ||
| "git": { | ||
| "sha1": "90098d261e2be2f898769d9ee35141597f1a2234" | ||
| "sha1": "f516a8927c76c07f0ebc54ca7a4ce8b2046eee86" | ||
| }, | ||
| "path_in_vcs": "core" | ||
| } |
+59
-59
@@ -15,3 +15,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO | ||
| name = "solana-core" | ||
| version = "3.0.13" | ||
| version = "3.0.14" | ||
| authors = ["Anza Maintainers <maintainers@anza.xyz>"] | ||
@@ -129,15 +129,15 @@ build = false | ||
| [dependencies.agave-banking-stage-ingress-types] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.agave-feature-set] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.agave-transaction-view] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.agave-verified-packet-receiver] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.agave-votor] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["agave-unstable-api"] | ||
@@ -272,3 +272,3 @@ | ||
| [dependencies.solana-accounts-db] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -282,9 +282,9 @@ [dependencies.solana-address-lookup-table-interface] | ||
| [dependencies.solana-bloom] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-builtins-default-costs] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-client] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -298,6 +298,6 @@ [dependencies.solana-clock] | ||
| [dependencies.solana-compute-budget] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-compute-budget-instruction] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -308,10 +308,10 @@ [dependencies.solana-compute-budget-interface] | ||
| [dependencies.solana-connection-cache] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| default-features = false | ||
| [dependencies.solana-cost-model] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-entry] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -322,3 +322,3 @@ [dependencies.solana-epoch-schedule] | ||
| [dependencies.solana-fee] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -345,6 +345,6 @@ [dependencies.solana-fee-calculator] | ||
| [dependencies.solana-geyser-plugin-manager] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-gossip] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["agave-unstable-api"] | ||
@@ -365,3 +365,3 @@ | ||
| [dependencies.solana-ledger] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["agave-unstable-api"] | ||
@@ -373,3 +373,3 @@ | ||
| [dependencies.solana-measure] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -380,3 +380,3 @@ [dependencies.solana-message] | ||
| [dependencies.solana-metrics] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -387,3 +387,3 @@ [dependencies.solana-native-token] | ||
| [dependencies.solana-net-utils] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -400,6 +400,6 @@ [dependencies.solana-nonce] | ||
| [dependencies.solana-perf] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-poh] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -414,3 +414,3 @@ [dependencies.solana-poh-config] | ||
| [dependencies.solana-quic-client] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -421,3 +421,3 @@ [dependencies.solana-quic-definitions] | ||
| [dependencies.solana-rayon-threadlimit] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -428,12 +428,12 @@ [dependencies.solana-rent] | ||
| [dependencies.solana-rpc] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-rpc-client-api] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-runtime] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-runtime-transaction] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -447,3 +447,3 @@ [dependencies.solana-sanitize] | ||
| [dependencies.solana-send-transaction-service] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -473,12 +473,12 @@ [dependencies.solana-sha256-hasher] | ||
| [dependencies.solana-streamer] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-svm] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-svm-timings] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-svm-transaction] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -498,10 +498,10 @@ [dependencies.solana-system-interface] | ||
| [dependencies.solana-tls-utils] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-tpu-client] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| default-features = false | ||
| [dependencies.solana-tpu-client-next] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -515,10 +515,10 @@ [dependencies.solana-transaction] | ||
| [dependencies.solana-transaction-status] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-turbine] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["agave-unstable-api"] | ||
| [dependencies.solana-unified-scheduler-pool] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -529,13 +529,13 @@ [dependencies.solana-validator-exit] | ||
| [dependencies.solana-version] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-vote] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dependencies.solana-vote-program] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| default-features = false | ||
| [dependencies.solana-wen-restart] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -572,3 +572,3 @@ [dependencies.static_assertions] | ||
| [dev-dependencies.agave-reserved-account-keys] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -592,3 +592,3 @@ [dev-dependencies.criterion] | ||
| [dev-dependencies.solana-bpf-loader-program] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
@@ -599,6 +599,6 @@ [dev-dependencies.solana-compute-budget-interface] | ||
| [dev-dependencies.solana-compute-budget-program] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dev-dependencies.solana-cost-model] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
@@ -610,3 +610,3 @@ | ||
| [dev-dependencies.solana-ledger] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
@@ -618,32 +618,32 @@ | ||
| [dev-dependencies.solana-net-utils] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
| [dev-dependencies.solana-poh] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
| [dev-dependencies.solana-program-runtime] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["metrics"] | ||
| [dev-dependencies.solana-rpc] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
| [dev-dependencies.solana-stake-program] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dev-dependencies.solana-system-program] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dev-dependencies.solana-unified-scheduler-logic] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| [dev-dependencies.solana-unified-scheduler-pool] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
| [dev-dependencies.solana-vote] | ||
| version = "=3.0.13" | ||
| version = "=3.0.14" | ||
| features = ["dev-context-only-utils"] | ||
@@ -650,0 +650,0 @@ |
@@ -26,2 +26,3 @@ #[cfg(test)] | ||
| vote: Option<Arc<ImmutableDeserializedPacket>>, | ||
| authorized_voter_pubkey: Pubkey, | ||
| slot: Slot, | ||
@@ -59,13 +60,25 @@ hash: Hash, | ||
| { | ||
| let vote_account_index = instruction | ||
| .accounts | ||
| .first() | ||
| .copied() | ||
| .ok_or(DeserializedPacketError::VoteTransactionError)?; | ||
| let vote_pubkey = message | ||
| .message | ||
| .static_account_keys() | ||
| .get(vote_account_index as usize) | ||
| .copied() | ||
| .ok_or(DeserializedPacketError::VoteTransactionError)?; | ||
| let ix_key = |offset: usize| { | ||
| let index = instruction | ||
| .accounts | ||
| .get(offset) | ||
| .copied() | ||
| .ok_or(DeserializedPacketError::VoteTransactionError)?; | ||
| let pubkey = message | ||
| .message | ||
| .static_account_keys() | ||
| .get(index as usize) | ||
| .copied() | ||
| .ok_or(DeserializedPacketError::VoteTransactionError)?; | ||
| let signed = message.message.is_signer(index as usize); | ||
| Ok::<(Pubkey, bool), DeserializedPacketError>((pubkey, signed)) | ||
| }; | ||
| let (vote_pubkey, _) = ix_key(0)?; | ||
| let (authorized_voter_pubkey, authorized_voter_signed) = ix_key(1)?; | ||
| if !authorized_voter_signed { | ||
| return Err(DeserializedPacketError::VoteTransactionError); | ||
| } | ||
| let slot = vote_state_update_instruction.last_voted_slot().unwrap_or(0); | ||
@@ -80,2 +93,3 @@ let hash = vote_state_update_instruction.hash(); | ||
| vote_pubkey, | ||
| authorized_voter_pubkey, | ||
| vote_source, | ||
@@ -107,2 +121,6 @@ timestamp, | ||
| pub fn authorized_voter_pubkey(&self) -> Pubkey { | ||
| self.authorized_voter_pubkey | ||
| } | ||
| pub fn slot(&self) -> Slot { | ||
@@ -109,0 +127,0 @@ self.slot |
@@ -217,2 +217,12 @@ use { | ||
| } | ||
| if self | ||
| .cached_epoch_stakes | ||
| .epoch_authorized_voters() | ||
| .get(&vote.vote_pubkey()) | ||
| .is_none_or(|authorized| authorized != &vote.authorized_voter_pubkey()) | ||
| { | ||
| continue; | ||
| } | ||
| if let Some(vote) = self.update_latest_vote(vote, should_replenish_taken_votes) { | ||
@@ -348,3 +358,2 @@ match vote.source() { | ||
| solana_hash::Hash, | ||
| solana_keypair::Keypair, | ||
| solana_perf::packet::{BytesPacket, PacketFlags}, | ||
@@ -355,3 +364,3 @@ solana_runtime::genesis_utils::{self, ValidatorVoteKeypairs}, | ||
| solana_vote_program::vote_state::TowerSync, | ||
| std::error::Error, | ||
| std::{error::Error, sync::Arc}, | ||
| }; | ||
@@ -395,22 +404,10 @@ | ||
| fn test_reinsert_packets() -> Result<(), Box<dyn Error>> { | ||
| let node_keypair = Keypair::new(); | ||
| let keypair = ValidatorVoteKeypairs::new_rand(); | ||
| let genesis_config = | ||
| genesis_utils::create_genesis_config_with_leader(100, &node_keypair.pubkey(), 200) | ||
| genesis_utils::create_genesis_config_with_vote_accounts(100, &[&keypair], vec![200]) | ||
| .genesis_config; | ||
| let (bank, _bank_forks) = Bank::new_with_bank_forks_for_tests(&genesis_config); | ||
| let vote_keypair = Keypair::new(); | ||
| let mut vote = BytesPacket::from_data( | ||
| None, | ||
| new_tower_sync_transaction( | ||
| TowerSync::default(), | ||
| Hash::new_unique(), | ||
| &node_keypair, | ||
| &vote_keypair, | ||
| &vote_keypair, | ||
| None, | ||
| ), | ||
| )?; | ||
| vote.meta_mut().flags.set(PacketFlags::SIMPLE_VOTE_TX, true); | ||
| let mut vote_storage = VoteStorage::new_for_tests(&[vote_keypair.pubkey()]); | ||
| let vote = packet_from_slots(vec![(0, 1)], &keypair, None); | ||
| let mut vote_storage = VoteStorage::new(&bank); | ||
| vote_storage.insert_batch( | ||
@@ -428,2 +425,3 @@ VoteSource::Tpu, | ||
| assert_eq!(1, vote_storage.len()); | ||
| Ok(()) | ||
@@ -430,0 +428,0 @@ } |
Sorry, the diff of this file is too big to display