Skip to content

Commit f9547e6

Browse files
rootroot
root
authored and
root
committed
sim-cli/refactor: create ActivityValidationParams struct and pass to validate_activities to improve testability and reduce coupling.
1 parent 2b30a3c commit f9547e6

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

sim-cli/src/parsing.rs

+22-4
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ struct ActivityParser {
119119
pub amount_msat: Amount,
120120
}
121121

122+
struct ActivityValidationParams {
123+
activity: Vec<ActivityParser>,
124+
pk_node_map: HashMap<PublicKey, NodeInfo>,
125+
alias_node_map: HashMap<String, NodeInfo>
126+
}
127+
122128
impl TryFrom<&Cli> for SimulationCfg {
123129
type Error = anyhow::Error;
124130

@@ -169,7 +175,15 @@ pub async fn create_simulation(cli: &Cli) -> Result<Simulation, anyhow::Error> {
169175
))
170176
};
171177

172-
let validated_activities = validate_activities(activity, &clients_info, get_node).await?;
178+
let (pk_node_map, alias_node_map) = add_node_to_maps(&clients_info).await?;
179+
180+
let activity_validation_params = ActivityValidationParams {
181+
activity,
182+
pk_node_map,
183+
alias_node_map
184+
};
185+
186+
let validated_activities = validate_activities(activity_validation_params, get_node).await?;
173187
let tasks = TaskTracker::new();
174188

175189
Ok(Simulation::new(cfg, clients, validated_activities, tasks))
@@ -250,12 +264,16 @@ async fn add_node_to_maps(
250264
/// Validates a set of defined activities, cross-checking aliases and public keys against the set of clients that
251265
/// have been configured.
252266
async fn validate_activities(
253-
activity: Vec<ActivityParser>,
254-
nodes: &HashMap<PublicKey, NodeInfo>,
267+
activity_validation_params: ActivityValidationParams,
255268
get_node_info: impl AsyncFn(&PublicKey) -> Result<NodeInfo, LightningError>,
256269
) -> Result<Vec<ActivityDefinition>, LightningError> {
257270
let mut validated_activities = vec![];
258-
let (pk_node_map, alias_node_map) = add_node_to_maps(nodes).await?;
271+
272+
let ActivityValidationParams {
273+
activity,
274+
pk_node_map,
275+
alias_node_map
276+
} = activity_validation_params;
259277

260278
// Make all the activities identifiable by PK internally
261279
for act in activity.into_iter() {

0 commit comments

Comments
 (0)