range block or block+blob requests

This commit is contained in:
realbigsean
2022-12-07 15:35:46 -05:00
parent a0d4aecf30
commit 5a42f6b067
2 changed files with 33 additions and 15 deletions

View File

@@ -5422,21 +5422,25 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
/// The epoch at which we require a data availability check in block processing.
/// `None` if the `Eip4844` fork is disabled.
pub fn data_availability_boundary(&self) -> Option<Epoch> {
self.spec.eip4844_fork_epoch.map(|fork_epoch| {
self.epoch().ok().map(|current_epoch|{
std::cmp::max(
fork_epoch,
current_epoch - *MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS,
)
self.spec
.eip4844_fork_epoch
.map(|fork_epoch| {
self.epoch().ok().map(|current_epoch| {
std::cmp::max(
fork_epoch,
current_epoch - *MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS,
)
})
})
}).flatten()
.flatten()
}
/// Returns `true` if we are at or past the `Eip4844` fork. This will always return `false` if
/// the `Eip4844` fork is disabled.
pub fn is_data_availability_check_required(&self) -> Result<bool, Error> {
let current_epoch = self.epoch()?;
Ok(self.spec
Ok(self
.spec
.eip4844_fork_epoch
.map(|fork_epoch| fork_epoch <= current_epoch)
.unwrap_or(false))