this derivation will be built: /nix/store/8fz0krwp8q5bhxck3wnlh0dpj2x1n6wv-treefmt-check.drv building '/nix/store/8fz0krwp8q5bhxck3wnlh0dpj2x1n6wv-treefmt-check.drv' treefmt-check> treefmt v2.5.0traversed 67 files treefmt-check> emitted 64 files for processing treefmt-check> formatted 64 files (3 changed) in 411ms treefmt-check> M clanServices/dvt/roles/ecl/adapters.unit.nix treefmt-check> M clanServices/dvt/roles/ecl/lighthouse.nix treefmt-check> M clanServices/dvt/tests/lib.nix treefmt-check> diff --git a/clanServices/dvt/roles/ecl/adapters.unit.nix b/clanServices/dvt/roles/ecl/adapters.unit.nix treefmt-check> index d5f499f..14bb95e 100644 treefmt-check> --- a/clanServices/dvt/roles/ecl/adapters.unit.nix treefmt-check> +++ b/clanServices/dvt/roles/ecl/adapters.unit.nix treefmt-check> @@ -52,7 +52,8 @@ let treefmt-check> nethermindFor = treefmt-check> overrides: (evalAdapter ./nethermind.nix (mkSettings overrides)).services.nethermind.test; treefmt-check> lighthouseFor = treefmt-check> - overrides: (evalAdapter ./lighthouse.nix (mkSettings overrides)).services.ethereum.lighthouse-beacon.test; treefmt-check> + overrides: treefmt-check> + (evalAdapter ./lighthouse.nix (mkSettings overrides)).services.ethereum.lighthouse-beacon.test; treefmt-check> in treefmt-check> { treefmt-check> teku = { treefmt-check> @@ -193,17 +194,19 @@ in treefmt-check> }; treefmt-check> treefmt-check> "test checkpointSyncUrl is passed through from the clan service" = { treefmt-check> - expr = builtins.elem "--checkpoint-sync-url=https://checkpoint.example" ( treefmt-check> - lighthouseFor { treefmt-check> - network = "hoodi"; treefmt-check> - beacon.checkpointSyncUrl = "https://checkpoint.example"; treefmt-check> - } treefmt-check> - ).extraArgs; treefmt-check> + expr = treefmt-check> + builtins.elem "--checkpoint-sync-url=https://checkpoint.example" treefmt-check> + (lighthouseFor { treefmt-check> + network = "hoodi"; treefmt-check> + beacon.checkpointSyncUrl = "https://checkpoint.example"; treefmt-check> + }).extraArgs; treefmt-check> expected = true; treefmt-check> }; treefmt-check> treefmt-check> "test unset checkpointSyncUrl adds no checkpoint flag to extraArgs" = { treefmt-check> - expr = builtins.any (lib.hasPrefix "--checkpoint-sync-url") (lighthouseFor { network = "hoodi"; }).extraArgs; treefmt-check> + expr = treefmt-check> + builtins.any (lib.hasPrefix "--checkpoint-sync-url") treefmt-check> + (lighthouseFor { network = "hoodi"; }).extraArgs; treefmt-check> expected = false; treefmt-check> }; treefmt-check> }; treefmt-check> diff --git a/clanServices/dvt/roles/ecl/lighthouse.nix b/clanServices/dvt/roles/ecl/lighthouse.nix treefmt-check> index ba0fad6..8a10d3c 100644 treefmt-check> --- a/clanServices/dvt/roles/ecl/lighthouse.nix treefmt-check> +++ b/clanServices/dvt/roles/ecl/lighthouse.nix treefmt-check> @@ -32,7 +32,7 @@ in treefmt-check> http = { treefmt-check> enable = true; treefmt-check> address = "::"; treefmt-check> - port = settings.beacon.rest.port; treefmt-check> + inherit (settings.beacon.rest) port; treefmt-check> }; treefmt-check> treefmt-check> metrics = { treefmt-check> @@ -41,22 +41,21 @@ in treefmt-check> }; treefmt-check> }; treefmt-check> treefmt-check> - extraArgs = treefmt-check> - [ treefmt-check> - "--port=${toString settings.beacon.p2p.port}" treefmt-check> - "--subscribe-all-subnets" treefmt-check> - ] treefmt-check> - ++ lib.optionals (settings.beacon.p2p.maxPeers != null) [ treefmt-check> - "--target-peers=${toString settings.beacon.p2p.maxPeers}" treefmt-check> - ] treefmt-check> - ++ lib.optionals treefmt-check> - (settings.beacon.p2p.nat != null && lib.hasPrefix "extip:" settings.beacon.p2p.nat) treefmt-check> + extraArgs = [ treefmt-check> + "--port=${toString settings.beacon.p2p.port}" treefmt-check> + "--subscribe-all-subnets" treefmt-check> + ] treefmt-check> + ++ lib.optionals (settings.beacon.p2p.maxPeers != null) [ treefmt-check> + "--target-peers=${toString settings.beacon.p2p.maxPeers}" treefmt-check> + ] treefmt-check> + ++ treefmt-check> + lib.optionals (settings.beacon.p2p.nat != null && lib.hasPrefix "extip:" settings.beacon.p2p.nat) treefmt-check> [ treefmt-check> "--enr-address=${lib.removePrefix "extip:" settings.beacon.p2p.nat}" treefmt-check> ] treefmt-check> - ++ lib.optionals (settings.beacon.checkpointSyncUrl != null) [ treefmt-check> - "--checkpoint-sync-url=${settings.beacon.checkpointSyncUrl}" treefmt-check> - ]; treefmt-check> + ++ lib.optionals (settings.beacon.checkpointSyncUrl != null) [ treefmt-check> + "--checkpoint-sync-url=${settings.beacon.checkpointSyncUrl}" treefmt-check> + ]; treefmt-check> }; treefmt-check> treefmt-check> environment.etc."alloy/dvt-lighthouse-beacon.alloy".text = '' treefmt-check> diff --git a/clanServices/dvt/tests/lib.nix b/clanServices/dvt/tests/lib.nix treefmt-check> index 4d6a02b..980996c 100644 treefmt-check> --- a/clanServices/dvt/tests/lib.nix treefmt-check> +++ b/clanServices/dvt/tests/lib.nix treefmt-check> @@ -925,7 +925,8 @@ in treefmt-check> # is /ip4/203.0.113.7/tcp/9000 for every entry (all ECL nodes share this treefmt-check> # test NAT IP), which is unreachable inside the QEMU VM network — actual CL treefmt-check> # inter-node peering does not occur. Each node starts with a stable identity. treefmt-check> - settings.beacon.p2p.staticPeers = clPackage != "nimbus" && clPackage != "lodestar" && clPackage != "lighthouse"; treefmt-check> + settings.beacon.p2p.staticPeers = treefmt-check> + clPackage != "nimbus" && clPackage != "lodestar" && clPackage != "lighthouse"; treefmt-check> settings.beacon.p2p.directPeering = clPackage == "lodestar"; treefmt-check> # Port must match the chosen CL client's REST API port treefmt-check> settings.beacon.rest.port = cl.restPortInventorySetting; error: Cannot build '/nix/store/8fz0krwp8q5bhxck3wnlh0dpj2x1n6wv-treefmt-check.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/9wijf57d98qqznlrybcxabr5gz1p2c41-treefmt-check Last 25 log lines: > "--enr-address=${lib.removePrefix "extip:" settings.beacon.p2p.nat}" > ] > - ++ lib.optionals (settings.beacon.checkpointSyncUrl != null) [ > - "--checkpoint-sync-url=${settings.beacon.checkpointSyncUrl}" > - ]; > + ++ lib.optionals (settings.beacon.checkpointSyncUrl != null) [ > + "--checkpoint-sync-url=${settings.beacon.checkpointSyncUrl}" > + ]; > }; > > environment.etc."alloy/dvt-lighthouse-beacon.alloy".text = '' > diff --git a/clanServices/dvt/tests/lib.nix b/clanServices/dvt/tests/lib.nix > index 4d6a02b..980996c 100644 > --- a/clanServices/dvt/tests/lib.nix > +++ b/clanServices/dvt/tests/lib.nix > @@ -925,7 +925,8 @@ in > # is /ip4/203.0.113.7/tcp/9000 for every entry (all ECL nodes share this > # test NAT IP), which is unreachable inside the QEMU VM network — actual CL > # inter-node peering does not occur. Each node starts with a stable identity. > - settings.beacon.p2p.staticPeers = clPackage != "nimbus" && clPackage != "lodestar" && clPackage != "lighthouse"; > + settings.beacon.p2p.staticPeers = > + clPackage != "nimbus" && clPackage != "lodestar" && clPackage != "lighthouse"; > settings.beacon.p2p.directPeering = clPackage == "lodestar"; > # Port must match the chosen CL client's REST API port > settings.beacon.rest.port = cl.restPortInventorySetting; For full logs, run: nix log /nix/store/8fz0krwp8q5bhxck3wnlh0dpj2x1n6wv-treefmt-check.drv