-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidators.nix
More file actions
36 lines (32 loc) · 932 Bytes
/
validators.nix
File metadata and controls
36 lines (32 loc) · 932 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# validators.nix provides helper functions to validate network inputs
{ lib }:
let
validNetworks = {
mainnet = "Mainnet";
preprod = "PreProd";
preview = "Preview";
sancho = "Sancho";
legacy = "Legacy";
guildnet = "GuildNet";
};
# Validates that the network input is part of `validNetworks`
validateNetwork = network:
let
matchingNetwork = lib.findFirst
(valid: valid == toString network)
null
(lib.attrValues validNetworks);
in
if matchingNetwork != null then matchingNetwork
else throw ''
Invalid network: '${toString network}'
Valid networks are:
${lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "- ${v}") validNetworks)}
'';
normalize = network: lib.toLower network;
isMainnet = network: (validateNetwork network) == "Mainnet";
in {
network = {
inherit validateNetwork normalize isMainnet;
};
}