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 get_rent_exempt_reserve(rent: &Rent) -> u64
Use rent.minimum_balance(VoteStateV3::size_of()) directly
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.
V0_23_5 is not supported. Supported versions: V1_14_11, V3.
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>.
V0_23_5 is not supported. Supported versions: V1_14_11, V3.
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>
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.
pub fn is_correct_size_and_initialized(data: &[u8]) -> bool
Trait Implementations§
Source§impl AbiExample for VoteStateV3
impl AbiExample for VoteStateV3
fn example() -> VoteStateV3
Source§impl Clone for VoteStateV3
impl Clone for VoteStateV3
Source§fn clone(&self) -> VoteStateV3
fn clone(&self) -> VoteStateV3
1.0.0 (const: unstable) · 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>,
impl Eq for VoteStateV3
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§fn eq(&self, other: &VoteStateV3) -> bool
fn eq(&self, other: &VoteStateV3) -> bool
self and other values to be equal, and is used by ==.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,
Source§impl StableAbi for VoteStateV3
impl StableAbi 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 UnsafeUnpin for VoteStateV3
impl UnwindSafe for VoteStateV3
Blanket Implementations§
Source§impl<T> AbiEnumVisitor for T
impl<T> AbiEnumVisitor for T
default fn visit_for_abi( &self, _digester: &mut AbiDigester, ) -> Result<AbiDigester, DigestError>
Source§impl<T> AbiEnumVisitor for Twhere
T: Serialize + AbiExample,
impl<T> AbiEnumVisitor for Twhere
T: Serialize + AbiExample,
default fn visit_for_abi( &self, digester: &mut AbiDigester, ) -> Result<AbiDigester, DigestError>
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.