|
@@ -29,45 +29,45 @@ pub enum Vote {
|
|
|
impl Vote {
|
|
impl Vote {
|
|
|
/// Create a new notarization vote
|
|
/// Create a new notarization vote
|
|
|
pub fn new_notarization_vote(slot: Slot, block_id: Hash) -> Self {
|
|
pub fn new_notarization_vote(slot: Slot, block_id: Hash) -> Self {
|
|
|
- Self::from(NotarizationVote::new(slot, block_id))
|
|
|
|
|
|
|
+ Self::from(NotarizationVote { slot, block_id })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Create a new finalization vote
|
|
/// Create a new finalization vote
|
|
|
pub fn new_finalization_vote(slot: Slot) -> Self {
|
|
pub fn new_finalization_vote(slot: Slot) -> Self {
|
|
|
- Self::from(FinalizationVote::new(slot))
|
|
|
|
|
|
|
+ Self::from(FinalizationVote { slot })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Create a new skip vote
|
|
/// Create a new skip vote
|
|
|
pub fn new_skip_vote(slot: Slot) -> Self {
|
|
pub fn new_skip_vote(slot: Slot) -> Self {
|
|
|
- Self::from(SkipVote::new(slot))
|
|
|
|
|
|
|
+ Self::from(SkipVote { slot })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Create a new notarization fallback vote
|
|
/// Create a new notarization fallback vote
|
|
|
pub fn new_notarization_fallback_vote(slot: Slot, block_id: Hash) -> Self {
|
|
pub fn new_notarization_fallback_vote(slot: Slot, block_id: Hash) -> Self {
|
|
|
- Self::from(NotarizationFallbackVote::new(slot, block_id))
|
|
|
|
|
|
|
+ Self::from(NotarizationFallbackVote { slot, block_id })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Create a new skip fallback vote
|
|
/// Create a new skip fallback vote
|
|
|
pub fn new_skip_fallback_vote(slot: Slot) -> Self {
|
|
pub fn new_skip_fallback_vote(slot: Slot) -> Self {
|
|
|
- Self::from(SkipFallbackVote::new(slot))
|
|
|
|
|
|
|
+ Self::from(SkipFallbackVote { slot })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// The slot which was voted for
|
|
/// The slot which was voted for
|
|
|
pub fn slot(&self) -> Slot {
|
|
pub fn slot(&self) -> Slot {
|
|
|
match self {
|
|
match self {
|
|
|
- Self::Notarize(vote) => vote.slot(),
|
|
|
|
|
- Self::Finalize(vote) => vote.slot(),
|
|
|
|
|
- Self::Skip(vote) => vote.slot(),
|
|
|
|
|
- Self::NotarizeFallback(vote) => vote.slot(),
|
|
|
|
|
- Self::SkipFallback(vote) => vote.slot(),
|
|
|
|
|
|
|
+ Self::Notarize(vote) => vote.slot,
|
|
|
|
|
+ Self::Finalize(vote) => vote.slot,
|
|
|
|
|
+ Self::Skip(vote) => vote.slot,
|
|
|
|
|
+ Self::NotarizeFallback(vote) => vote.slot,
|
|
|
|
|
+ Self::SkipFallback(vote) => vote.slot,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// The block id associated with the block which was voted for
|
|
/// The block id associated with the block which was voted for
|
|
|
pub fn block_id(&self) -> Option<&Hash> {
|
|
pub fn block_id(&self) -> Option<&Hash> {
|
|
|
match self {
|
|
match self {
|
|
|
- Self::Notarize(vote) => Some(vote.block_id()),
|
|
|
|
|
- Self::NotarizeFallback(vote) => Some(vote.block_id()),
|
|
|
|
|
|
|
+ Self::Notarize(vote) => Some(&vote.block_id),
|
|
|
|
|
+ Self::NotarizeFallback(vote) => Some(&vote.block_id),
|
|
|
Self::Finalize(_) | Self::Skip(_) | Self::SkipFallback(_) => None,
|
|
Self::Finalize(_) | Self::Skip(_) | Self::SkipFallback(_) => None,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -141,25 +141,10 @@ impl From<SkipFallbackVote> for Vote {
|
|
|
)]
|
|
)]
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
|
pub struct NotarizationVote {
|
|
pub struct NotarizationVote {
|
|
|
- slot: Slot,
|
|
|
|
|
- block_id: Hash,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl NotarizationVote {
|
|
|
|
|
- /// Construct a notarization vote for `slot`
|
|
|
|
|
- pub fn new(slot: Slot, block_id: Hash) -> Self {
|
|
|
|
|
- Self { slot, block_id }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The slot to notarize
|
|
|
|
|
- pub fn slot(&self) -> Slot {
|
|
|
|
|
- self.slot
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The block_id of the notarization slot
|
|
|
|
|
- pub fn block_id(&self) -> &Hash {
|
|
|
|
|
- &self.block_id
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /// The slot this vote is cast for.
|
|
|
|
|
+ pub slot: Slot,
|
|
|
|
|
+ /// The block id this vote is for.
|
|
|
|
|
+ pub block_id: Hash,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A finalization vote
|
|
/// A finalization vote
|
|
@@ -170,19 +155,8 @@ impl NotarizationVote {
|
|
|
)]
|
|
)]
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
|
pub struct FinalizationVote {
|
|
pub struct FinalizationVote {
|
|
|
- slot: Slot,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl FinalizationVote {
|
|
|
|
|
- /// Construct a finalization vote for `slot`
|
|
|
|
|
- pub fn new(slot: Slot) -> Self {
|
|
|
|
|
- Self { slot }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The slot to finalize
|
|
|
|
|
- pub fn slot(&self) -> Slot {
|
|
|
|
|
- self.slot
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /// The slot this vote is cast for.
|
|
|
|
|
+ pub slot: Slot,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A skip vote
|
|
/// A skip vote
|
|
@@ -195,19 +169,8 @@ impl FinalizationVote {
|
|
|
)]
|
|
)]
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
|
pub struct SkipVote {
|
|
pub struct SkipVote {
|
|
|
- pub(crate) slot: Slot,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl SkipVote {
|
|
|
|
|
- /// Construct a skip vote for `slot`
|
|
|
|
|
- pub fn new(slot: Slot) -> Self {
|
|
|
|
|
- Self { slot }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The slot to skip
|
|
|
|
|
- pub fn slot(&self) -> Slot {
|
|
|
|
|
- self.slot
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /// The slot this vote is cast for.
|
|
|
|
|
+ pub slot: Slot,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A notarization fallback vote
|
|
/// A notarization fallback vote
|
|
@@ -218,25 +181,10 @@ impl SkipVote {
|
|
|
)]
|
|
)]
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
|
pub struct NotarizationFallbackVote {
|
|
pub struct NotarizationFallbackVote {
|
|
|
- slot: Slot,
|
|
|
|
|
- block_id: Hash,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl NotarizationFallbackVote {
|
|
|
|
|
- /// Construct a notarization vote for `slot`
|
|
|
|
|
- pub fn new(slot: Slot, block_id: Hash) -> Self {
|
|
|
|
|
- Self { slot, block_id }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The slot to notarize
|
|
|
|
|
- pub fn slot(&self) -> Slot {
|
|
|
|
|
- self.slot
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The block_id of the notarization slot
|
|
|
|
|
- pub fn block_id(&self) -> &Hash {
|
|
|
|
|
- &self.block_id
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /// The slot this vote is cast for.
|
|
|
|
|
+ pub slot: Slot,
|
|
|
|
|
+ /// The block id this vote is for.
|
|
|
|
|
+ pub block_id: Hash,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A skip fallback vote
|
|
/// A skip fallback vote
|
|
@@ -247,17 +195,6 @@ impl NotarizationFallbackVote {
|
|
|
)]
|
|
)]
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
#[derive(Clone, Copy, Debug, PartialEq, Default, Serialize, Deserialize)]
|
|
|
pub struct SkipFallbackVote {
|
|
pub struct SkipFallbackVote {
|
|
|
- pub(crate) slot: Slot,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl SkipFallbackVote {
|
|
|
|
|
- /// Construct a skip fallback vote for `slot`
|
|
|
|
|
- pub fn new(slot: Slot) -> Self {
|
|
|
|
|
- Self { slot }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// The slot to skip
|
|
|
|
|
- pub fn slot(&self) -> Slot {
|
|
|
|
|
- self.slot
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /// The slot this vote is cast for.
|
|
|
|
|
+ pub slot: Slot,
|
|
|
}
|
|
}
|