fuels_test_helpers/
node_types.rs1use std::{
2 net::{Ipv4Addr, SocketAddr},
3 path::PathBuf,
4 time::Duration,
5};
6
7pub use fuel_core_chain_config::{ChainConfig, StateConfig};
8
9#[derive(Clone, Debug)]
10pub enum Trigger {
11 Instant,
12 Never,
13 Interval { block_time: Duration },
14 Open { period: Duration },
15}
16
17#[cfg(feature = "fuel-core-lib")]
18impl From<Trigger> for fuel_core_poa::Trigger {
19 fn from(value: Trigger) -> Self {
20 match value {
21 Trigger::Instant => fuel_core_poa::Trigger::Instant,
22 Trigger::Never => fuel_core_poa::Trigger::Never,
23 Trigger::Interval { block_time } => fuel_core_poa::Trigger::Interval { block_time },
24 Trigger::Open { period } => fuel_core_poa::Trigger::Open { period },
25 }
26 }
27}
28
29#[derive(Clone, Debug)]
30pub enum DbType {
31 InMemory,
32 RocksDb(Option<PathBuf>),
33}
34
35#[cfg(feature = "fuel-core-lib")]
36impl From<DbType> for fuel_core::service::DbType {
37 fn from(value: DbType) -> Self {
38 match value {
39 DbType::InMemory => fuel_core::service::DbType::InMemory,
40 DbType::RocksDb(..) => fuel_core::service::DbType::RocksDb,
41 }
42 }
43}
44
45#[derive(Clone, Debug)]
46pub struct NodeConfig {
47 pub addr: SocketAddr,
48 pub max_database_cache_size: Option<usize>,
49 pub database_type: DbType,
50 pub utxo_validation: bool,
51 pub historical_execution: bool,
52 pub debug: bool,
53 pub block_production: Trigger,
54 pub vm_backtrace: bool,
55 pub silent: bool,
56 pub starting_gas_price: u64,
57 pub graphql_request_body_bytes_limit: u64,
58}
59
60impl Default for NodeConfig {
61 fn default() -> Self {
62 Self {
63 addr: SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), 0),
64 max_database_cache_size: None,
65 database_type: DbType::InMemory,
66 utxo_validation: true,
67 historical_execution: false,
68 debug: true,
69 block_production: Trigger::Instant,
70 vm_backtrace: false,
71 silent: true,
72 starting_gas_price: 1,
73 graphql_request_body_bytes_limit: u64::MAX,
74 }
75 }
76}