pub struct VoteStateV3 {
pub node_pubkey: Address,
pub authorized_withdrawer: Address,
pub commission: u8,
pub votes: VecDeque<LandedVote>,
pub root_slot: Option<u64>,
pub authorized_voters: AuthorizedVoters,
pub prior_voters: CircBuf<(Address, u64, u64)>,
pub epoch_credits: Vec<(u64, u64, u64)>,
pub last_timestamp: BlockTimestamp,
}Fields§
§node_pubkey: Addressthe node that votes in this account
the signer for withdrawals
commission: u8percentage (0-100) that represents what part of a rewards payout should be given to this VoteAccount
votes: VecDeque<LandedVote>§root_slot: Option<u64>the signer for vote transactions
prior_voters: CircBuf<(Address, u64, u64)>history of prior authorized voters and the epochs for which they were set, the bottom end of the range is inclusive, the top of the range is exclusive
epoch_credits: Vec<(u64, u64, u64)>history of how many credits earned by the end of each epoch each tuple is (Epoch, credits, prev_credits)
last_timestamp: BlockTimestampmost recent timestamp submitted with a vote
Implementations§
Source§impl VoteStateV3
impl VoteStateV3
pub fn new(vote_init: &VoteInit, clock: &Clock) -> VoteStateV3
pub fn new_rand_for_tests(node_pubkey: Address, root_slot: u64) -> VoteStateV3
pub fn prior_voters(&mut self) -> &CircBuf<(Address, u64, u64)>
pub fn get_rent_exempt_reserve(rent: &Rent) -> u64
Sourcepub const fn size_of() -> usize
pub const fn size_of() -> usize
Upper limit on the size of the Vote State when votes.len() is MAX_LOCKOUT_HISTORY.
pub fn is_uninitialized(&self) -> bool
pub fn deserialize(input: &[u8]) -> Result<VoteStateV3, InstructionError>
Sourcepub fn deserialize_into(
input: &[u8],
vote_state: &mut VoteStateV3,
) -> Result<(), InstructionError>
pub fn deserialize_into( input: &[u8], vote_state: &mut VoteStateV3, ) -> Result<(), InstructionError>
Deserializes the input VoteStateVersions buffer directly into the provided VoteStateV3.
In a SBPF context, V0_23_5 is not supported, but in non-SBPF, all versions are supported for
compatibility with bincode::deserialize.
On success, vote_state reflects the state of the input data. On failure, vote_state is
reset to VoteStateV3::default().
Sourcepub fn deserialize_into_uninit(
input: &[u8],
vote_state: &mut MaybeUninit<VoteStateV3>,
) -> Result<(), InstructionError>
pub fn deserialize_into_uninit( input: &[u8], vote_state: &mut MaybeUninit<VoteStateV3>, ) -> Result<(), InstructionError>
Deserializes the input VoteStateVersions buffer directly into the provided
MaybeUninit<VoteStateV3>.
In a SBPF context, V0_23_5 is not supported, but in non-SBPF, all versions are supported for
compatibility with bincode::deserialize.
On success, vote_state is fully initialized and can be converted to
VoteStateV3 using
MaybeUninit::assume_init.
On failure, vote_state may still be uninitialized and must not be
converted to VoteStateV3.
pub fn serialize( versioned: &VoteStateVersions, output: &mut [u8], ) -> Result<(), InstructionError>
Sourcepub fn contains_slot(&self, candidate_slot: u64) -> bool
pub fn contains_slot(&self, candidate_slot: u64) -> bool
Returns if the vote state contains a slot candidate_slot
pub fn process_next_vote_slot( &mut self, next_vote_slot: u64, epoch: u64, current_slot: u64, )
Sourcepub fn increment_credits(&mut self, epoch: u64, credits: u64)
pub fn increment_credits(&mut self, epoch: u64, credits: u64)
increment credits, record credits for last epoch if new epoch
Sourcepub fn credits_for_vote_at_index(&self, index: usize) -> u64
pub fn credits_for_vote_at_index(&self, index: usize) -> u64
Returns the credits to award for a vote at the given lockout slot index
pub fn nth_recent_lockout(&self, position: usize) -> Option<&Lockout>
pub fn last_lockout(&self) -> Option<&Lockout>
pub fn last_voted_slot(&self) -> Option<u64>
pub fn tower(&self) -> Vec<u64>
pub fn current_epoch(&self) -> u64
Sourcepub fn credits(&self) -> u64
pub fn credits(&self) -> u64
Number of “credits” owed to this account from the mining pool. Submit this VoteStateV3 to the Rewards program to trade credits for lamports.
Sourcepub fn epoch_credits(&self) -> &Vec<(u64, u64, u64)>
pub fn epoch_credits(&self) -> &Vec<(u64, u64, u64)>
Number of “credits” owed to this account from the mining pool on a per-epoch basis, starting from credits observed. Each tuple of (Epoch, u64, u64) is read as (epoch, credits, prev_credits), where credits for each epoch is credits - prev_credits; while redundant this makes calculating rewards over partial epochs nice and simple
pub fn pop_expired_votes(&mut self, next_vote_slot: u64)
pub fn double_lockouts(&mut self)
pub fn process_timestamp( &mut self, slot: u64, timestamp: i64, ) -> Result<(), VoteError>
pub fn is_correct_size_and_initialized(data: &[u8]) -> bool
Trait Implementations§
Source§impl Clone for VoteStateV3
impl Clone for VoteStateV3
Source§fn clone(&self) -> VoteStateV3
fn clone(&self) -> VoteStateV3
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VoteStateV3
impl Debug for VoteStateV3
Source§impl Default for VoteStateV3
impl Default for VoteStateV3
Source§fn default() -> VoteStateV3
fn default() -> VoteStateV3
Source§impl<'de> Deserialize<'de> for VoteStateV3
impl<'de> Deserialize<'de> for VoteStateV3
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<VoteStateV3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VoteStateV3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<VoteStateV3> for VoteState1_14_11
impl From<VoteStateV3> for VoteState1_14_11
Source§fn from(vote_state: VoteStateV3) -> VoteState1_14_11
fn from(vote_state: VoteStateV3) -> VoteState1_14_11
Source§impl PartialEq for VoteStateV3
impl PartialEq for VoteStateV3
Source§impl Serialize for VoteStateV3
impl Serialize for VoteStateV3
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for VoteStateV3
impl StructuralPartialEq for VoteStateV3
Auto Trait Implementations§
impl Freeze for VoteStateV3
impl RefUnwindSafe for VoteStateV3
impl Send for VoteStateV3
impl Sync for VoteStateV3
impl Unpin for VoteStateV3
impl UnwindSafe for VoteStateV3
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more