casper-node 1.4.8

The Casper blockchain node
Documentation
use crate::{
    effect::{EffectBuilder, EffectExt, Effects},
    types::Block,
};

use super::{event::DeploysResult, Event, ReactorEventT};

pub(super) fn fetch_block_deploys<I: Clone + Send + 'static, REv>(
    effect_builder: EffectBuilder<REv>,
    peer: I,
    block: Block,
) -> Effects<Event<I>>
where
    REv: ReactorEventT<I>,
{
    effect_builder
        .validate_block(peer.clone(), block.clone())
        .event(move |valid| {
            if valid {
                Event::GetDeploysResult(DeploysResult::Found(Box::new(block)))
            } else {
                Event::GetDeploysResult(DeploysResult::NotFound(Box::new(block), peer))
            }
        })
}