1use cfx_types::H256;
6use keccak_hash::KECCAK_EMPTY;
7use serde_derive::{Deserialize, Serialize};
8
9pub type EpochId = H256;
10pub const NULL_EPOCH: EpochId = KECCAK_EMPTY;
11
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
14pub enum EpochNumber {
15 Number(u64),
17 Earliest,
19 LatestCheckpoint,
21 LatestFinalized,
23 LatestConfirmed,
26 LatestState,
28 LatestMined,
30}
31
32impl Into<EpochNumber> for u64 {
33 fn into(self) -> EpochNumber { EpochNumber::Number(self) }
34}
35
36#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
37pub enum BlockHashOrEpochNumber {
38 BlockHashWithOption {
39 hash: H256,
40 require_pivot: Option<bool>,
41 },
42 EpochNumber(EpochNumber),
43}