reth_seismic_node/
args.rs1use std::net::IpAddr;
4
5use clap::Args;
6use seismic_enclave::{ENCLAVE_DEFAULT_ENDPOINT_IP, ENCLAVE_DEFAULT_ENDPOINT_PORT};
7
8#[derive(Debug, Clone, Args, PartialEq, Eq, Copy)]
10#[command(next_help_heading = "Enclave")]
11pub struct EnclaveArgs {
12 #[arg(long = "enclave.endpoint-addr", default_value_t = ENCLAVE_DEFAULT_ENDPOINT_IP)]
14 pub enclave_server_addr: IpAddr,
15
16 #[arg(long = "enclave.endpoint-port", default_value_t = ENCLAVE_DEFAULT_ENDPOINT_PORT)]
18 pub enclave_server_port: u16,
19
20 #[arg(long = "enclave.mock-server", action = clap::ArgAction::SetTrue)]
22 pub mock_server: bool,
23
24 #[arg(long = "enclave.timeout", default_value_t = 5)]
26 pub enclave_timeout: u64,
27}
28
29impl Default for EnclaveArgs {
30 fn default() -> Self {
31 Self {
32 enclave_server_addr: ENCLAVE_DEFAULT_ENDPOINT_IP,
33 enclave_server_port: ENCLAVE_DEFAULT_ENDPOINT_PORT,
34 mock_server: false,
35 enclave_timeout: 5,
36 }
37 }
38}
39
40#[cfg(test)]
41mod tests {
42 use super::*;
43 use clap::{Args, Parser};
44
45 #[derive(Parser)]
47 struct CommandParser<T: Args> {
48 #[command(flatten)]
49 args: T,
50 }
51
52 #[test]
53 fn test_enclave_args_parser() {
54 let args = CommandParser::<EnclaveArgs>::parse_from(["reth node"]).args;
55
56 let addr = args.enclave_server_addr;
57 let port = args.enclave_server_port;
58 let mock = args.mock_server;
59
60 assert_eq!(port, ENCLAVE_DEFAULT_ENDPOINT_PORT);
61 assert_eq!(addr, ENCLAVE_DEFAULT_ENDPOINT_IP);
62 assert_eq!(mock, false);
63 }
64}