tendermint::vote

Struct Vote

Source
pub struct Vote {
    pub vote_type: Type,
    pub height: Height,
    pub round: Round,
    pub block_id: Option<Id>,
    pub timestamp: Option<Time>,
    pub validator_address: Id,
    pub validator_index: ValidatorIndex,
    pub signature: Option<Signature>,
    pub extension: Vec<u8>,
    pub extension_signature: Option<Signature>,
}
Expand description

Votes are signed messages from validators for a particular block which include information about the validator signing it.

https://github.com/tendermint/spec/blob/d46cd7f573a2c6a2399fcab2cde981330aa63f37/spec/core/data_structures.md#vote

Fields§

§vote_type: Type

Type of vote (prevote or precommit)

§height: Height

Block height

§round: Round

Round

§block_id: Option<Id>

Block ID

§timestamp: Option<Time>

Timestamp

§validator_address: Id

Validator address

§validator_index: ValidatorIndex

Validator index

§signature: Option<Signature>

Signature

§extension: Vec<u8>

Vote extension provided by the application. Only valid for precommit messages.

This field has been added in CometBFT 0.38 and will be ignored when encoding into earlier protocol versions.

§extension_signature: Option<Signature>

Vote extension signature by the validator Only valid for precommit messages.

This field has been added in CometBFT 0.38 and will be ignored when encoding into earlier protocol versions.

Implementations§

Source§

impl Vote

Source

pub fn is_prevote(&self) -> bool

Is this vote a prevote?

Source

pub fn is_precommit(&self) -> bool

Is this vote a precommit?

Source

pub fn header_hash(&self) -> Option<Hash>

Returns block_id.hash

Source

pub fn to_signable_bytes<B>( &self, chain_id: ChainId, sign_bytes: &mut B, ) -> Result<bool, ProtobufError>
where B: BufMut,

Create signable bytes from Vote.

Source

pub fn into_signable_vec(self, chain_id: ChainId) -> Vec<u8>

Create signable vector from Vote.

Source

pub fn consensus_state(&self) -> State

👎Deprecated since 0.17.0: This seems unnecessary, please raise it to the team, if you need it.

Consensus state from this vote - This doesn’t seem to be used anywhere.

Trait Implementations§

Source§

impl Clone for Vote

Source§

fn clone(&self) -> Vote

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Vote

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Vote

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<Vote> for Vote

Source§

fn from(value: Vote) -> Self

Converts to this type from the input type.
Source§

impl From<Vote> for Vote

Source§

fn from(value: Vote) -> Self

Converts to this type from the input type.
Source§

impl From<Vote> for Vote

Source§

fn from(value: Vote) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Vote

Source§

fn eq(&self, other: &Vote) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Protobuf<Vote> for Vote

§

fn encode<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode into a buffer in Protobuf format. Read more
§

fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode with a length-delimiter to a buffer in Protobuf format. Read more
§

fn decode<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode an instance from a buffer. Read more
§

fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode a length-delimited instance from the buffer. Read more
§

fn encoded_len(self) -> usize

Returns the encoded length of the message without a length delimiter. Read more
§

fn encode_vec(self) -> Vec<u8>

Encodes into a Protobuf-encoded Vec<u8>.
§

fn decode_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance from a Vec<u8> (or equivalent).
§

fn encode_length_delimited_vec(self) -> Vec<u8>

Encode with a length-delimiter to a Vec<u8> Protobuf-encoded message.
§

fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance with a length-delimiter from a Vec<u8> or equivalent.
Source§

impl Protobuf<Vote> for Vote

§

fn encode<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode into a buffer in Protobuf format. Read more
§

fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode with a length-delimiter to a buffer in Protobuf format. Read more
§

fn decode<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode an instance from a buffer. Read more
§

fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode a length-delimited instance from the buffer. Read more
§

fn encoded_len(self) -> usize

Returns the encoded length of the message without a length delimiter. Read more
§

fn encode_vec(self) -> Vec<u8>

Encodes into a Protobuf-encoded Vec<u8>.
§

fn decode_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance from a Vec<u8> (or equivalent).
§

fn encode_length_delimited_vec(self) -> Vec<u8>

Encode with a length-delimiter to a Vec<u8> Protobuf-encoded message.
§

fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance with a length-delimiter from a Vec<u8> or equivalent.
Source§

impl Protobuf<Vote> for Vote

§

fn encode<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode into a buffer in Protobuf format. Read more
§

fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>
where B: BufMut,

Encode with a length-delimiter to a buffer in Protobuf format. Read more
§

fn decode<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode an instance from a buffer. Read more
§

fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>
where B: Buf,

Constructor that attempts to decode a length-delimited instance from the buffer. Read more
§

fn encoded_len(self) -> usize

Returns the encoded length of the message without a length delimiter. Read more
§

fn encode_vec(self) -> Vec<u8>

Encodes into a Protobuf-encoded Vec<u8>.
§

fn decode_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance from a Vec<u8> (or equivalent).
§

fn encode_length_delimited_vec(self) -> Vec<u8>

Encode with a length-delimiter to a Vec<u8> Protobuf-encoded message.
§

fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>

Constructor that attempts to decode a Protobuf-encoded instance with a length-delimiter from a Vec<u8> or equivalent.
Source§

impl Serialize for Vote

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<Vote> for Vote

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: RawVote) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Vote> for Vote

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: RawVote) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Vote> for Vote

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: RawVote) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Eq for Vote

Source§

impl StructuralPartialEq for Vote

Auto Trait Implementations§

§

impl Freeze for Vote

§

impl RefUnwindSafe for Vote

§

impl Send for Vote

§

impl Sync for Vote

§

impl Unpin for Vote

§

impl UnwindSafe for Vote

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,