pub struct ProtocolValidationContext {
pub block_height: u64,
pub network_params: NetworkParameters,
pub validation_rules: ProtocolValidationRules,
pub median_time_past: u64,
pub network_time: u64,
pub context_data: HashMap<String, String>,
}Expand description
Protocol-specific validation context
Fields§
§block_height: u64Current block height
network_params: NetworkParametersCurrent network parameters
validation_rules: ProtocolValidationRulesProtocol validation rules
median_time_past: u64Median time-past used for time-based validation (BIP113)
This is populated by the node using recent headers and is threaded down to consensus for timestamp validation.
network_time: u64Current adjusted network time (Unix timestamp)
This is populated by the node from its time source and used by consensus to enforce future timestamp limits.
context_data: HashMap<String, String>Additional context data
Implementations§
Source§impl ProtocolValidationContext
impl ProtocolValidationContext
Sourcepub fn new(
version: ProtocolVersion,
block_height: u64,
) -> Result<Self, ProtocolError>
pub fn new( version: ProtocolVersion, block_height: u64, ) -> Result<Self, ProtocolError>
Create validation context for a protocol version
Sourcepub fn is_feature_enabled(&self, feature: &str) -> bool
pub fn is_feature_enabled(&self, feature: &str) -> bool
Check if a feature is enabled at current block height
Sourcepub fn get_max_size(&self, component: &str) -> u32
pub fn get_max_size(&self, component: &str) -> u32
Get maximum allowed size for a component
Trait Implementations§
Source§impl Clone for ProtocolValidationContext
impl Clone for ProtocolValidationContext
Source§fn clone(&self) -> ProtocolValidationContext
fn clone(&self) -> ProtocolValidationContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProtocolValidationContext
impl Debug for ProtocolValidationContext
Source§impl<'de> Deserialize<'de> for ProtocolValidationContext
impl<'de> Deserialize<'de> for ProtocolValidationContext
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for ProtocolValidationContext
Auto Trait Implementations§
impl Freeze for ProtocolValidationContext
impl RefUnwindSafe for ProtocolValidationContext
impl Send for ProtocolValidationContext
impl Sync for ProtocolValidationContext
impl Unpin for ProtocolValidationContext
impl UnsafeUnpin for ProtocolValidationContext
impl UnwindSafe for ProtocolValidationContext
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<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