Struct solana_sdk::vote::state::VoteState
source · pub struct VoteState {
pub node_pubkey: Pubkey,
pub authorized_withdrawer: Pubkey,
pub commission: u8,
pub votes: VecDeque<LandedVote, Global>,
pub root_slot: Option<u64>,
pub epoch_credits: Vec<(u64, u64, u64), Global>,
pub last_timestamp: BlockTimestamp,
/* private fields */
}
Fields§
§node_pubkey: Pubkey
the node that votes in this account
the signer for withdrawals
commission: u8
percentage (0-100) that represents what part of a rewards payout should be given to this VoteAccount
votes: VecDeque<LandedVote, Global>
§root_slot: Option<u64>
§epoch_credits: Vec<(u64, u64, u64), Global>
history of how many credits earned by the end of each epoch each tuple is (Epoch, credits, prev_credits)
last_timestamp: BlockTimestamp
most recent timestamp submitted with a vote
Implementations§
source§impl VoteState
impl VoteState
pub fn new(vote_init: &VoteInit, clock: &Clock) -> VoteState
pub fn prior_voters(&mut self) -> &CircBuf<(Pubkey, 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 deserialize(_input: &[u8]) -> Result<VoteState, InstructionError>
pub fn serialize( versioned: &VoteStateVersions, output: &mut [u8] ) -> Result<(), InstructionError>
sourcepub fn commission_split(&self, on: u64) -> (u64, u64, bool)
pub fn commission_split(&self, on: u64) -> (u64, u64, bool)
returns commission split as (voter_portion, staker_portion, was_split) tuple
if commission calculation is 100% one way or other, indicate with false for was_split
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)
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
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, Global>
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 VoteState to the Rewards program to trade credits for lamports.
sourcepub fn epoch_credits(&self) -> &Vec<(u64, u64, u64), Global>
pub fn epoch_credits(&self) -> &Vec<(u64, u64, u64), Global>
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