@@ -5,7 +5,8 @@ use log::LevelFilter;
5
5
use serde:: { Deserialize , Serialize } ;
6
6
use simln_lib:: clock:: SimulationClock ;
7
7
use simln_lib:: sim_node:: {
8
- ln_node_from_graph, populate_network_graph, ChannelPolicy , SimGraph , SimulatedChannel ,
8
+ ln_node_from_graph, populate_network_graph, ChannelPolicy , Interceptor , SimGraph ,
9
+ SimulatedChannel ,
9
10
} ;
10
11
use simln_lib:: {
11
12
cln, cln:: ClnNode , eclair, eclair:: EclairNode , lnd, lnd:: LndNode , serializers,
@@ -87,6 +88,9 @@ pub struct Cli {
87
88
/// simulated nodes.
88
89
#[ clap( long) ]
89
90
pub speedup_clock : Option < u16 > ,
91
+ /// Latency to optionally introduce for simulated nodes.
92
+ #[ clap( long) ]
93
+ pub latency_ms : Option < f32 > ,
90
94
}
91
95
92
96
impl Cli {
@@ -217,6 +221,7 @@ pub async fn create_simulation_with_network(
217
221
cli : & Cli ,
218
222
sim_params : & SimParams ,
219
223
tasks : TaskTracker ,
224
+ interceptors : Vec < Arc < dyn Interceptor > > ,
220
225
) -> Result < ( Simulation < SimulationClock > , Vec < ActivityDefinition > ) , anyhow:: Error > {
221
226
let cfg: SimulationCfg = SimulationCfg :: try_from ( cli) ?;
222
227
let SimParams {
@@ -246,7 +251,7 @@ pub async fn create_simulation_with_network(
246
251
SimGraph :: new (
247
252
channels. clone ( ) ,
248
253
tasks. clone ( ) ,
249
- vec ! [ ] ,
254
+ interceptors ,
250
255
( shutdown_trigger. clone ( ) , shutdown_listener. clone ( ) ) ,
251
256
)
252
257
. map_err ( |e| SimulationError :: SimulatedNetworkError ( format ! ( "{:?}" , e) ) ) ?,
0 commit comments