use crate::model::ArchiveStatus;
use bitcoin::{BlockHash, Wtxid};
use serde::{Deserialize, Serialize};
pub const MAX_WIRE_PAGE: u32 = 128;
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct IndexSnapshot {
pub instance: String,
pub revision: u64,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct WireCursor {
pub snapshot: IndexSnapshot,
pub height: u64,
pub position: u32,
}
#[derive(Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct WireRecord {
pub block_hash: BlockHash,
pub wtxid: Wtxid,
pub entry: urma_wire::index::Entry,
}
#[derive(Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct WirePage {
pub snapshot: IndexSnapshot,
pub archive: ArchiveStatus,
pub records: Vec<WireRecord>,
pub next: Option<WireCursor>,
}