1
+ use std:: path:: PathBuf ;
2
+
1
3
use clap:: Parser ;
2
4
use libp2p:: Multiaddr ;
3
- use mithril_common:: StdResult ;
4
5
use slog:: error;
5
6
6
- use super :: CommandContext ;
7
+ use mithril_common:: { CardanoNetwork , StdResult } ;
8
+
7
9
use crate :: AggregatorRelay ;
8
10
11
+ use super :: CommandContext ;
12
+
9
13
#[ derive( Parser , Debug , Clone ) ]
10
14
pub struct AggregatorCommand {
11
15
/// Peer listening port
@@ -16,6 +20,24 @@ pub struct AggregatorCommand {
16
20
#[ clap( long, env = "DIAL_TO" ) ]
17
21
dial_to : Option < Multiaddr > ,
18
22
23
+ /// Path to the DMQ socket file
24
+ #[ clap(
25
+ long,
26
+ env = "DMQ_NODE_SOCKET_PATH" ,
27
+ value_name = "PATH" ,
28
+ default_value = "./dmq.socket"
29
+ ) ]
30
+ dmq_node_socket_path : PathBuf ,
31
+
32
+ /// Cardano network
33
+ #[ clap( long, env = "NETWORK" ) ]
34
+ pub network : String ,
35
+
36
+ /// Cardano Network Magic number
37
+ /// useful for TestNet & DevNet
38
+ #[ clap( long, env = "NETWORK_MAGIC" ) ]
39
+ pub network_magic : Option < u64 > ,
40
+
19
41
/// Aggregator endpoint URL.
20
42
#[ clap( long, env = "AGGREGATOR_ENDPOINT" ) ]
21
43
aggregator_endpoint : String ,
@@ -24,12 +46,21 @@ pub struct AggregatorCommand {
24
46
impl AggregatorCommand {
25
47
/// Main command execution
26
48
pub async fn execute ( & self , context : CommandContext ) -> StdResult < ( ) > {
49
+ let logger = context. logger ( ) ;
27
50
let dial_to = self . dial_to . to_owned ( ) ;
28
51
let addr: Multiaddr = format ! ( "/ip4/0.0.0.0/tcp/{}" , self . listen_port) . parse ( ) ?;
29
52
let aggregator_endpoint = self . aggregator_endpoint . to_owned ( ) ;
30
- let logger = context. logger ( ) ;
53
+ let cardano_network =
54
+ CardanoNetwork :: from_code ( self . network . to_owned ( ) , self . network_magic ) ?;
31
55
32
- let mut relay = AggregatorRelay :: start ( & addr, & aggregator_endpoint, logger) . await ?;
56
+ let mut relay = AggregatorRelay :: start (
57
+ & addr,
58
+ & self . dmq_node_socket_path ,
59
+ & cardano_network,
60
+ & aggregator_endpoint,
61
+ logger,
62
+ )
63
+ . await ?;
33
64
if let Some ( dial_to_address) = dial_to {
34
65
relay. dial_peer ( dial_to_address. clone ( ) ) ?;
35
66
}
0 commit comments