use ergo_chain_types::{Header, PreHeader};
pub type Headers = [Header; 10];
#[derive(PartialEq, Eq, Debug, Clone)]
pub struct ErgoStateContext {
pub pre_header: PreHeader,
pub headers: Headers,
}
impl ErgoStateContext {
pub fn new(pre_header: PreHeader, headers: Headers) -> ErgoStateContext {
ErgoStateContext {
pre_header,
headers,
}
}
}
#[cfg(feature = "arbitrary")]
mod arbitrary {
use super::*;
use proptest::prelude::*;
impl Arbitrary for ErgoStateContext {
type Parameters = ();
type Strategy = BoxedStrategy<Self>;
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
(any::<PreHeader>(), any::<Headers>())
.prop_map(|(pre_header, headers)| Self::new(pre_header, headers))
.boxed()
}
}
}