reth_node_core/args/
enclave.rs1use std::net::IpAddr;
4
5use clap::Args;
6use reth_enclave::{ENCLAVE_DEFAULT_ENDPOINT_ADDR, 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_ADDR)]
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_ADDR,
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 crate::args::enclave::EnclaveArgs;
44 use clap::{Args, Parser};
45
46 #[derive(Parser)]
48 struct CommandParser<T: Args> {
49 #[command(flatten)]
50 args: T,
51 }
52
53 #[test]
54 fn test_enclave_args_parser() {
55 let args = CommandParser::<EnclaveArgs>::parse_from(["reth node"]).args;
56
57 let addr = args.enclave_server_addr;
58 let port = args.enclave_server_port;
59 let mock = args.mock_server;
60
61 assert_eq!(port, ENCLAVE_DEFAULT_ENDPOINT_PORT);
62 assert_eq!(addr, ENCLAVE_DEFAULT_ENDPOINT_ADDR);
63 assert_eq!(mock, false);
64 }
65}