Struct solana_vote_program::vote_state::VoteState
source · [−]pub struct VoteState {
pub node_pubkey: Pubkey,
pub authorized_withdrawer: Pubkey,
pub commission: u8,
pub votes: VecDeque<Lockout>,
pub root_slot: Option<Slot>,
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<Lockout>
root_slot: Option<Slot>
last_timestamp: BlockTimestamp
most recent timestamp submitted with a vote
Implementations
sourceimpl VoteState
impl VoteState
pub fn new(vote_init: &VoteInit, clock: &Clock) -> Self
pub fn prior_voters(&mut self) -> &CircBuf<(Pubkey, Epoch, Epoch)>
pub fn get_rent_exempt_reserve(rent: &Rent) -> u64
pub fn size_of() -> usize
pub fn from<T: ReadableAccount>(account: &T) -> Option<VoteState>
pub fn to<T: WritableAccount>(
versioned: &VoteStateVersions,
account: &mut T
) -> Option<()>
pub fn deserialize(input: &[u8]) -> Result<Self, InstructionError>
pub fn serialize(
versioned: &VoteStateVersions,
output: &mut [u8]
) -> Result<(), InstructionError>
pub fn credits_from<T: ReadableAccount>(account: &T) -> Option<u64>
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: Slot) -> bool
pub fn contains_slot(&self, candidate_slot: Slot) -> bool
Returns if the vote state contains a slot candidate_slot
pub fn process_new_vote_state(
&mut self,
new_state: VecDeque<Lockout>,
new_root: Option<Slot>,
timestamp: Option<i64>,
epoch: Epoch
) -> Result<(), VoteError>
pub fn process_vote(
&mut self,
vote: &Vote,
slot_hashes: &[SlotHash],
epoch: Epoch,
feature_set: Option<&FeatureSet>
) -> Result<(), VoteError>
pub fn process_next_vote_slot(&mut self, next_vote_slot: Slot, epoch: Epoch)
sourcepub fn increment_credits(&mut self, epoch: Epoch)
pub fn increment_credits(&mut self, epoch: Epoch)
increment credits, record credits for last epoch if new epoch
sourcepub fn process_vote_unchecked(&mut self, vote: Vote)
pub fn process_vote_unchecked(&mut self, vote: Vote)
“unchecked” functions used by tests and Tower
pub fn process_slot_vote_unchecked(&mut self, slot: Slot)
pub fn nth_recent_vote(&self, position: usize) -> Option<&Lockout>
pub fn last_lockout(&self) -> Option<&Lockout>
pub fn last_voted_slot(&self) -> Option<Slot>
pub fn tower(&self) -> Vec<Slot>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
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<(Epoch, u64, u64)>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn epoch_credits(&self) -> &Vec<(Epoch, u64, u64)>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
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 process_timestamp(
&mut self,
slot: Slot,
timestamp: UnixTimestamp
) -> Result<(), VoteError>
pub fn is_correct_size_and_initialized(data: &[u8]) -> bool
Trait Implementations
sourceimpl AbiExample for VoteState
impl AbiExample for VoteState
sourceimpl<'de> Deserialize<'de> for VoteState
impl<'de> Deserialize<'de> for VoteState
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for VoteState
impl StructuralEq for VoteState
impl StructuralPartialEq for VoteState
Auto Trait Implementations
impl RefUnwindSafe for VoteState
impl Send for VoteState
impl Sync for VoteState
impl Unpin for VoteState
impl UnwindSafe for VoteState
Blanket Implementations
sourceimpl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
impl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
default fn visit_for_abi(
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
sourceimpl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
impl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
default fn visit_for_abi(
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
sourceimpl<T> AbiExample for T
impl<T> AbiExample for T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more