1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
mod block;
mod block_height;
mod coin;
mod da_block_height;
mod messages;
mod txpool;
mod vote;

use crate::common::{
    fuel_crypto::SecretKey,
    fuel_types::{
        Address,
        Bytes32,
    },
};
pub use block::{
    BlockId,
    ConsensusType,
    Empty,
    FuelApplicationHeader,
    FuelBlock,
    FuelBlockConsensus,
    FuelBlockDb,
    FuelBlockHeader,
    FuelBlockPoAConsensus,
    FuelConsensusHeader,
    Genesis,
    PartialFuelBlock,
    PartialFuelBlockHeader,
    SealedFuelBlock,
    SealedFuelBlockHeader,
};
pub use block_height::BlockHeight;
pub use coin::{
    Coin,
    CoinStatus,
};
pub use da_block_height::DaBlockHeight;
use derive_more::{
    Deref,
    From,
};
pub use messages::*;
use secrecy::{
    zeroize,
    CloneableSecret,
    DebugSecret,
};
pub use txpool::{
    ArcPoolTx,
    TxInfo,
};
pub use vote::ConsensusVote;
use zeroize::Zeroize;

/// Validator address used for registration of validator on DA layer
pub type ValidatorId = Address;
/// Consensus public key used for Fuel network consensus protocol to
/// check signatures. ConsensusId is assigned by validator.
pub type ConsensusId = Bytes32;

/// Wrapper around [`fuel_crypto::SecretKey`] to implement [`secrecy`] marker traits
#[derive(
    Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Zeroize, Deref, From,
)]
#[repr(transparent)]
pub struct SecretKeyWrapper(SecretKey);

impl CloneableSecret for SecretKeyWrapper {}
impl DebugSecret for SecretKeyWrapper {}