}
/// The kind of `BlockSourceError`, either persistent or transient.
-#[derive(Clone, Copy, Debug, PartialEq)]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum BlockSourceErrorKind {
/// Indicates an error that won't resolve when retrying a request (e.g., invalid data).
Persistent,
/// A block header and some associated data. This information should be available from most block
/// sources (and, notably, is available in Bitcoin Core's RPC and REST interfaces).
-#[derive(Clone, Copy, Debug, PartialEq)]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct BlockHeaderData {
/// The block header itself.
pub header: BlockHeader,
let height = header.height;
let block_data = chain_poller
.fetch_block(&header).await
- .or_else(|e| Err((e, Some(new_tip))))?;
+ .map_err(|e| (e, Some(new_tip)))?;
debug_assert_eq!(block_data.block_hash, header.block_hash);
match block_data.deref() {
BlockData::FullBlock(block) => {
- self.chain_listener.block_connected(&block, height);
+ self.chain_listener.block_connected(block, height);
},
BlockData::HeaderOnly(header) => {
- self.chain_listener.filtered_block_connected(&header, &[], height);
+ self.chain_listener.filtered_block_connected(header, &[], height);
},
}