pub struct TowerSync {
pub lockouts: VecDeque<Lockout>,
pub root: Option<u64>,
pub hash: Hash,
pub timestamp: Option<i64>,
pub block_id: Hash,
}
Fields§
§lockouts: VecDeque<Lockout>
The proposed tower
root: Option<u64>
The proposed root
hash: Hash
signature of the bank’s state at the last slot
timestamp: Option<i64>
processing timestamp of last slot
block_id: Hash
the unique identifier for the chain up to and including this block. Does not require replaying in order to compute.
Implementations§
Source§impl TowerSync
impl TowerSync
pub fn new( lockouts: VecDeque<Lockout>, root: Option<u64>, hash: Hash, block_id: Hash, ) -> TowerSync
Sourcepub fn new_from_slot(slot: u64, hash: Hash) -> TowerSync
pub fn new_from_slot(slot: u64, hash: Hash) -> TowerSync
Creates a tower with consecutive votes for slot - MAX_LOCKOUT_HISTORY + 1
to slot
inclusive.
If slot >= MAX_LOCKOUT_HISTORY
, sets the root to (slot - MAX_LOCKOUT_HISTORY)
Sets the hash to hash
and leaves block_id
unset.
Sourcepub fn new_from_slots(
slots: Vec<u64>,
hash: Hash,
root: Option<u64>,
) -> TowerSync
pub fn new_from_slots( slots: Vec<u64>, hash: Hash, root: Option<u64>, ) -> TowerSync
Creates a tower with consecutive confirmation for slots
pub fn slots(&self) -> Vec<u64>
pub fn last_voted_slot(&self) -> Option<u64>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TowerSync
impl<'de> Deserialize<'de> for TowerSync
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TowerSync, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TowerSync, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<TowerSync> for VoteTransaction
impl From<TowerSync> for VoteTransaction
Source§impl Serialize for TowerSync
impl Serialize for TowerSync
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,
Serialize this value into the given Serde serializer. Read more
impl Eq for TowerSync
impl StructuralPartialEq for TowerSync
Auto Trait Implementations§
impl Freeze for TowerSync
impl RefUnwindSafe for TowerSync
impl Send for TowerSync
impl Sync for TowerSync
impl Unpin for TowerSync
impl UnwindSafe for TowerSync
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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>
Converts
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>
Converts
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