dash_sdk::query_types

Struct CurrentQuorumsInfo

pub struct CurrentQuorumsInfo {
    pub quorum_hashes: Vec<[u8; 32]>,
    pub current_quorum_hash: [u8; 32],
    pub validator_sets: Vec<ValidatorSet>,
    pub last_block_proposer: [u8; 32],
    pub last_platform_block_height: u64,
    pub last_core_block_height: u32,
}
Expand description

Represents the current state of quorums in the platform.

This struct holds various information related to the current quorums, including the list of quorum hashes, the current active quorum hash, and details about the validators and their statuses.

§Fields

  • quorum_hashes: A list of 32-byte hashes representing the active quorums.
  • current_quorum_hash: A 32-byte hash identifying the currently active quorum. This is the quorum that is currently responsible for platform operations.
  • validator_sets: A collection of [ValidatorSet] structs, each representing a set of validators for different quorums. This provides detailed information about the members of each quorum.
  • last_block_proposer: A vector of bytes representing the identity of the last block proposer. This is typically the ProTxHash of the masternode that proposed the most recent platform block.
  • last_platform_block_height: The height of the most recent platform block. This indicates the latest block height at the platform level, which may differ from the core blockchain height.
  • last_core_block_height: The height of the most recent core blockchain block associated with the platform. This is the height of the blockchain where the platform block was anchored.

§Derives

  • Debug: Provides a debug representation of the CurrentQuorumsInfo struct, useful for logging and debugging purposes.
  • Clone: Allows the CurrentQuorumsInfo struct to be cloned, creating a deep copy of its contents.

§Conditional Derives

When the mocks feature is enabled, the following derives and attributes are applied:

  • Encode: Allows the struct to be serialized into a binary format using the bincode crate.
  • Decode: Allows the struct to be deserialized from a binary format using the bincode crate.
  • PlatformSerialize: Enables serialization of the struct using the platform-specific serialization format.
  • PlatformDeserialize: Enables deserialization of the struct using the platform-specific deserialization format.
  • platform_serialize(unversioned): Specifies that the struct should be serialized without including a version field in the serialized data.

This structure is typically used in scenarios where the state of the current quorums needs to be accessed, for example, when validating or proposing new blocks, or when determining the active set of validators.

Fields§

§quorum_hashes: Vec<[u8; 32]>

A list of 32-byte hashes representing the active quorums.

§current_quorum_hash: [u8; 32]

A 32-byte hash identifying the currently active quorum.

§validator_sets: Vec<ValidatorSet>

A collection of [ValidatorSet] structs, each representing a set of validators for different quorums.

§last_block_proposer: [u8; 32]

A vector of bytes representing the identity of the last block proposer.

§last_platform_block_height: u64

The height of the most recent platform block.

§last_core_block_height: u32

The height of the most recent core blockchain block associated with the platform.

Trait Implementations§

§

impl<'__de> BorrowDecode<'__de> for CurrentQuorumsInfo

§

fn borrow_decode<__D>( decoder: &mut __D, ) -> Result<CurrentQuorumsInfo, DecodeError>
where __D: BorrowDecoder<'__de>,

Attempt to decode this type with the given BorrowDecode.
§

impl Clone for CurrentQuorumsInfo

§

fn clone(&self) -> CurrentQuorumsInfo

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
§

impl Debug for CurrentQuorumsInfo

§

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

Formats the value using the given formatter. Read more
§

impl Decode for CurrentQuorumsInfo

§

fn decode<__D>(decoder: &mut __D) -> Result<CurrentQuorumsInfo, DecodeError>
where __D: Decoder,

Attempt to decode this type with the given Decode.
§

impl Encode for CurrentQuorumsInfo

§

fn encode<__E>(&self, encoder: &mut __E) -> Result<(), EncodeError>
where __E: Encoder,

Encode a given type.
source§

impl FetchUnproved for CurrentQuorumsInfo

source§

type Request = GetCurrentQuorumsInfoRequest

Type of request used to fetch data from Platform.
source§

fn fetch_unproved<'life0, 'async_trait, Q>( sdk: &'life0 Sdk, query: Q, ) -> Pin<Box<dyn Future<Output = Result<Option<Self>, Error>> + Send + 'async_trait>>
where Self: FromUnproved<<Self as FetchUnproved>::Request, Request = <Self as FetchUnproved>::Request, Response = <<Self as FetchUnproved>::Request as TransportRequest>::Response> + Send + 'async_trait, Q: 'async_trait + Query<<Self as FetchUnproved>::Request>, 'life0: 'async_trait,

Fetch unproved data from the Platform. Read more
source§

fn fetch_unproved_with_settings<'life0, 'async_trait, Q>( sdk: &'life0 Sdk, query: Q, settings: RequestSettings, ) -> Pin<Box<dyn Future<Output = Result<(Option<Self>, ResponseMetadata), Error>> + Send + 'async_trait>>
where Self: FromUnproved<<Self as FetchUnproved>::Request, Request = <Self as FetchUnproved>::Request, Response = <<Self as FetchUnproved>::Request as TransportRequest>::Response> + Send + 'async_trait, Q: 'async_trait + Query<<Self as FetchUnproved>::Request>, 'life0: 'async_trait,

Fetch unproved data from the Platform with custom settings. Read more
§

impl FromUnproved<GetCurrentQuorumsInfoRequest> for CurrentQuorumsInfo

§

type Request = GetCurrentQuorumsInfoRequest

Request type for which this trait is implemented.
§

type Response = GetCurrentQuorumsInfoResponse

Response type for which this trait is implemented.
§

fn maybe_from_unproved_with_metadata<I, O>( _request: I, response: O, _network: Network, _platform_version: &PlatformVersion, ) -> Result<(Option<CurrentQuorumsInfo>, ResponseMetadata), Error>
where I: Into<<CurrentQuorumsInfo as FromUnproved<GetCurrentQuorumsInfoRequest>>::Request>, O: Into<<CurrentQuorumsInfo as FromUnproved<GetCurrentQuorumsInfoRequest>>::Response>, CurrentQuorumsInfo: Sized,

Parse the received response and retrieve the requested object along with metadata, if any. Read more
§

fn maybe_from_unproved<I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, ) -> Result<Option<Self>, Error>
where I: Into<Self::Request>, O: Into<Self::Response>, Self: Sized,

Parse the received response and retrieve the requested object, if any. Read more
§

fn from_unproved<I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, ) -> Result<Self, Error>
where I: Into<Self::Request>, O: Into<Self::Response>, Self: Sized,

Retrieve the requested object from the response. Read more
§

fn from_unproved_with_metadata<I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, ) -> Result<(Self, ResponseMetadata), Error>
where I: Into<Self::Request>, O: Into<Self::Response>, Self: Sized,

Retrieve the requested object from the response along with metadata. Read more
source§

impl MockResponse for CurrentQuorumsInfo

source§

fn mock_serialize(&self, sdk: &MockDashPlatformSdk) -> Vec<u8>

Serialize the object to save into expectations Read more
source§

fn mock_deserialize(sdk: &MockDashPlatformSdk, buf: &[u8]) -> Self
where Self: Sized,

Deserialize the object from expectations Read more
§

impl PlatformDeserializable for CurrentQuorumsInfo

§

fn deserialize_from_bytes( bytes: &[u8], ) -> Result<CurrentQuorumsInfo, ProtocolError>

§

fn deserialize_from_bytes_no_limit( bytes: &[u8], ) -> Result<CurrentQuorumsInfo, ProtocolError>

§

impl PlatformSerializable for CurrentQuorumsInfo

§

type Error = ProtocolError

§

fn serialize_to_bytes( &self, ) -> Result<Vec<u8>, <CurrentQuorumsInfo as PlatformSerializable>::Error>

§

fn serialize_consume_to_bytes( self, ) -> Result<Vec<u8>, <CurrentQuorumsInfo as PlatformSerializable>::Error>

If the trait is not used just do a simple serialize
§

impl PlatformVersionEncode for CurrentQuorumsInfo

§

fn platform_encode<__E>( &self, encoder: &mut __E, platform_version: &PlatformVersion, ) -> Result<(), EncodeError>
where __E: Encoder,

Encode a given type.
§

impl<'__de> PlatformVersionedBorrowDecode<'__de> for CurrentQuorumsInfo

§

fn platform_versioned_borrow_decode<__D>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<CurrentQuorumsInfo, DecodeError>
where __D: BorrowDecoder<'__de>,

Attempt to decode this type with the given [BorrowDecode].
§

impl PlatformVersionedDecode for CurrentQuorumsInfo

§

fn platform_versioned_decode<__D>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<CurrentQuorumsInfo, DecodeError>
where __D: Decoder,

Attempt to decode this type with the given Decode.

Auto Trait Implementations§

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 T)

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

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> CostsExt for T

§

fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>
where Self: Sized,

Wraps any value into a CostContext object with provided costs.
§

fn wrap_fn_cost( self, f: impl FnOnce(&Self) -> OperationCost, ) -> CostContext<Self>
where Self: Sized,

Wraps any value into CostContext object with costs computed using the value getting wrapped.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

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

§

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

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

fn try_from_versioned( value: U, _grove_version: &GroveVersion, ) -> Result<T, <T as TryFromVersioned<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.
§

impl<T, U> TryIntoPlatformVersioned<U> for T
where U: TryFromPlatformVersioned<T>,

§

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

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

fn try_into_platform_versioned( self, platform_version: &PlatformVersion, ) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoVersioned<U> for T
where U: TryFromVersioned<T>,

§

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

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

fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more