bitcoin/network/
message_filter.rs1use hash_types::{BlockHash, FilterHash, FilterHeader};
6
7#[derive(PartialEq, Eq, Clone, Debug)]
8pub struct GetCFilters {
10 pub filter_type: u8,
12 pub start_height: u32,
14 pub stop_hash: BlockHash,
16}
17impl_consensus_encoding!(GetCFilters, filter_type, start_height, stop_hash);
18
19#[derive(PartialEq, Eq, Clone, Debug)]
20pub struct CFilter {
22 pub filter_type: u8,
24 pub block_hash: BlockHash,
26 pub filter: Vec<u8>,
28}
29impl_consensus_encoding!(CFilter, filter_type, block_hash, filter);
30
31#[derive(PartialEq, Eq, Clone, Debug)]
32pub struct GetCFHeaders {
34 pub filter_type: u8,
36 pub start_height: u32,
38 pub stop_hash: BlockHash,
40}
41impl_consensus_encoding!(GetCFHeaders, filter_type, start_height, stop_hash);
42
43#[derive(PartialEq, Eq, Clone, Debug)]
44pub struct CFHeaders {
46 pub filter_type: u8,
48 pub stop_hash: BlockHash,
50 pub previous_filter_header: FilterHeader,
52 pub filter_hashes: Vec<FilterHash>,
54}
55impl_consensus_encoding!(CFHeaders, filter_type, stop_hash, previous_filter_header, filter_hashes);
56
57#[derive(PartialEq, Eq, Clone, Debug)]
58pub struct GetCFCheckpt {
60 pub filter_type: u8,
62 pub stop_hash: BlockHash,
64}
65impl_consensus_encoding!(GetCFCheckpt, filter_type, stop_hash);
66
67#[derive(PartialEq, Eq, Clone, Debug)]
68pub struct CFCheckpt {
70 pub filter_type: u8,
72 pub stop_hash: BlockHash,
74 pub filter_headers: Vec<FilterHeader>,
76}
77impl_consensus_encoding!(CFCheckpt, filter_type, stop_hash, filter_headers);