pub struct VoteStateV4 {Show 13 fields
pub node_pubkey: Address,
pub authorized_withdrawer: Address,
pub inflation_rewards_collector: Address,
pub block_revenue_collector: Address,
pub inflation_rewards_commission_bps: u16,
pub block_revenue_commission_bps: u16,
pub pending_delegator_rewards: u64,
pub bls_pubkey_compressed: Option<[u8; 48]>,
pub votes: VecDeque<LandedVote>,
pub root_slot: Option<u64>,
pub authorized_voters: AuthorizedVoters,
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.
inflation_rewards_collector: AddressThe collector account for inflation rewards.
block_revenue_collector: AddressThe collector account for block revenue.
inflation_rewards_commission_bps: u16Basis points (0-10,000) that represent how much of the inflation rewards should be given to this vote account.
block_revenue_commission_bps: u16Basis points (0-10,000) that represent how much of the block revenue should be given to this vote account.
pending_delegator_rewards: u64Reward amount pending distribution to stake delegators.
bls_pubkey_compressed: Option<[u8; 48]>Compressed BLS pubkey for Alpenglow.
votes: VecDeque<LandedVote>§root_slot: Option<u64>The signer for vote transactions. Contains entries for the current epoch and the previous epoch.
epoch_credits: Vec<(u64, u64, u64)>History of 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 VoteStateV4
impl VoteStateV4
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 new( vote_pubkey: &Address, vote_init: &VoteInit, clock: &Clock, ) -> VoteStateV4
pub fn deserialize( input: &[u8], vote_pubkey: &Address, ) -> Result<VoteStateV4, InstructionError>
Sourcepub fn deserialize_into(
input: &[u8],
vote_state: &mut VoteStateV4,
vote_pubkey: &Address,
) -> Result<(), InstructionError>
pub fn deserialize_into( input: &[u8], vote_state: &mut VoteStateV4, vote_pubkey: &Address, ) -> Result<(), InstructionError>
Deserializes the input VoteStateVersions buffer directly into the provided VoteStateV4.
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 VoteStateV4::default().
Sourcepub fn deserialize_into_uninit(
input: &[u8],
vote_state: &mut MaybeUninit<VoteStateV4>,
vote_pubkey: &Address,
) -> Result<(), InstructionError>
pub fn deserialize_into_uninit( input: &[u8], vote_state: &mut MaybeUninit<VoteStateV4>, vote_pubkey: &Address, ) -> Result<(), InstructionError>
Deserializes the input VoteStateVersions buffer directly into the provided
MaybeUninit<VoteStateV4>.
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
VoteStateV4 using
MaybeUninit::assume_init.
On failure, vote_state may still be uninitialized and must not be
converted to VoteStateV4.
pub fn serialize( versioned: &VoteStateVersions, output: &mut [u8], ) -> Result<(), InstructionError>
pub fn is_correct_size_and_initialized(data: &[u8]) -> bool
Trait Implementations§
Source§impl Clone for VoteStateV4
impl Clone for VoteStateV4
Source§fn clone(&self) -> VoteStateV4
fn clone(&self) -> VoteStateV4
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VoteStateV4
impl Debug for VoteStateV4
Source§impl Default for VoteStateV4
impl Default for VoteStateV4
Source§fn default() -> VoteStateV4
fn default() -> VoteStateV4
Source§impl<'de> Deserialize<'de> for VoteStateV4
impl<'de> Deserialize<'de> for VoteStateV4
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<VoteStateV4, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VoteStateV4, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for VoteStateV4
impl PartialEq for VoteStateV4
Source§impl Serialize for VoteStateV4
impl Serialize for VoteStateV4
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 VoteStateV4
impl StructuralPartialEq for VoteStateV4
Auto Trait Implementations§
impl Freeze for VoteStateV4
impl RefUnwindSafe for VoteStateV4
impl Send for VoteStateV4
impl Sync for VoteStateV4
impl Unpin for VoteStateV4
impl UnwindSafe for VoteStateV4
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