diff --git a/pallas-blockfetch/src/lib.rs b/pallas-blockfetch/src/lib.rs index 78d4b8b..3dfcb10 100644 --- a/pallas-blockfetch/src/lib.rs +++ b/pallas-blockfetch/src/lib.rs @@ -1,6 +1,6 @@ use std::sync::mpsc::Receiver; -use log::info; +use log::{debug, info}; use pallas_machines::{ primitives::Point, Agent, CodecError, DecodePayload, EncodePayload, MachineOutput, PayloadDecoder, PayloadEncoder, Transition, @@ -88,8 +88,20 @@ impl DecodePayload for Message { } pub trait Observer { - fn on_block(&self, body: Vec) -> Result<(), Box> { - log::debug!("block fetched {:?}", body); + fn on_block_received(&self, body: Vec) -> Result<(), Box> { + log::debug!("block received, sice: {}", body.len()); + Ok(()) + } + + fn on_block_range_requested( + &self, + range: &(Point, Point), + ) -> Result<(), Box> { + log::debug!( + "block range requested, from: {:?}, to: {:?}", + range.0, + range.1 + ); Ok(()) } } @@ -128,11 +140,21 @@ where tx.send_msg(&msg)?; + self.observer.on_block_range_requested(&self.range)?; + Ok(Self { state: State::Busy, ..self }) } + + fn on_block(self, body: Vec) -> Transition { + debug!("received block body, size {}", body.len()); + + self.observer.on_block_received(body)?; + + Ok(self) + } } impl Agent for BatchClient @@ -171,11 +193,7 @@ where state: State::Done, ..self }), - (State::Streaming, Message::Block { body }) => { - info!("received block body of size {}", body.len()); - self.observer.on_block(body)?; - Ok(self) - } + (State::Streaming, Message::Block { body }) => self.on_block(body), (State::Streaming, Message::BatchDone) => Ok(Self { state: State::Done, ..self @@ -221,6 +239,14 @@ where ..self }) } + + fn on_block(self, body: Vec) -> Transition { + debug!("received block body, size {}", body.len()); + + self.observer.on_block_received(body)?; + + Ok(self) + } } impl Agent for OnDemandClient @@ -261,11 +287,7 @@ where state: State::Idle, ..self }), - (State::Streaming, Message::Block { body }) => { - info!("received block body of size {}", body.len()); - self.observer.on_block(body)?; - Ok(self) - } + (State::Streaming, Message::Block { body }) => self.on_block(body), (State::Streaming, Message::BatchDone) => Ok(Self { state: State::Idle, ..self