Skip to content

Commit 16307f6

Browse files
Merge pull request #3754 from TheBlueMatt/2025-04-deterministic-determinism
Make `generate_test_routes` deterministic based on its seed
2 parents c4a5987 + 6cef57b commit 16307f6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

lightning/src/routing/router.rs

+9-5
Original file line numberDiff line numberDiff line change
@@ -8935,16 +8935,20 @@ pub(crate) mod bench_utils {
89358935
let payer = payer_pubkey();
89368936
let random_seed_bytes = [42; 32];
89378937

8938-
let nodes = graph.read_only().nodes().clone();
8938+
let mut nodes = graph.read_only().nodes().clone();
89398939
let mut route_endpoints = Vec::new();
89408940
for _ in 0..route_count {
89418941
loop {
89428942
seed = seed.overflowing_mul(6364136223846793005).0.overflowing_add(1).0;
8943-
let src = PublicKey::from_slice(nodes.unordered_keys()
8944-
.skip((seed as usize) % nodes.len()).next().unwrap().as_slice()).unwrap();
8943+
let src_idx = (seed as usize) % nodes.len();
8944+
let src_key = nodes.range(..).skip(src_idx).next().unwrap().0;
8945+
let src = PublicKey::from_slice(src_key.as_slice()).unwrap();
8946+
89458947
seed = seed.overflowing_mul(6364136223846793005).0.overflowing_add(1).0;
8946-
let dst = PublicKey::from_slice(nodes.unordered_keys()
8947-
.skip((seed as usize) % nodes.len()).next().unwrap().as_slice()).unwrap();
8948+
let dst_idx = (seed as usize) % nodes.len();
8949+
let dst_key = nodes.range(..).skip(dst_idx).next().unwrap().0;
8950+
let dst = PublicKey::from_slice(dst_key.as_slice()).unwrap();
8951+
89488952
let params = PaymentParameters::from_node_id(dst, 42)
89498953
.with_bolt11_features(features.clone()).unwrap();
89508954
let first_hop = first_hop(src);

0 commit comments

Comments
 (0)