@@ -719,20 +719,72 @@ def update_geth(self, parsed):
719
719
value = getattr (self .args , opt )
720
720
node ["cache" ] = value
721
721
722
+ def _get_value (self , key , node , parsed , validator = None , converter = None , default = None ):
723
+ result = None
724
+
725
+ node_name = node ["name" ]
726
+
727
+ def process (value , hint ):
728
+ if converter :
729
+ try :
730
+ value = converter (value )
731
+ except Exception as e :
732
+ raise ValueError ("({}) Invalid value: {}" .format (hint , value )) from e
733
+
734
+ if validator and not validator (value ):
735
+ raise ValueError (value )
736
+
737
+ return value
738
+
739
+ if key in parsed :
740
+ value = parsed [key ]
741
+ value = process (value , "{}.conf > {} > {}" .format (self .network , node_name , key ))
742
+ result = value
743
+
744
+ opt = "{}.{}" .format (node_name , key .replace ("-" , "_" ))
745
+
746
+ if hasattr (self .args , opt ):
747
+ value = getattr (self .args , opt )
748
+ value = process (value , "--{}" .format (opt .replace ("_" , "-" )))
749
+ result = value
750
+
751
+ if not result :
752
+ if default :
753
+ return default
754
+ msg = "configuration \" {}.{}\" missing (please specify command-line option \" --{}\" or add \" {}\" in your {}.conf \" {}\" section)" .format (
755
+ node_name , key , opt .replace ("_" , "-" ), key , self .network , node_name )
756
+ raise ValueError (msg )
757
+
758
+ return result
759
+
722
760
def update_lndbtc (self , parsed ):
723
761
"""Update lndbtc related configurations from parsed TOML lndbtc section
724
762
:param parsed: Parsed lndbtc TOML section
725
763
"""
726
764
node = self .nodes ["lndbtc" ]
727
765
self .update_ports (node , parsed )
728
766
767
+ node ["mode" ] = self ._get_value ("mode" , node , parsed , validator = lambda v : v in ["native" , "external" ], default = "native" )
768
+ if node ["mode" ] == "external" :
769
+ node ["rpc_host" ] = self ._get_value ("rpc_host" , node , parsed )
770
+ node ["rpc_port" ] = self ._get_value ("rpc_port" , node , parsed , converter = lambda v : int (v ))
771
+ node ["certpath" ] = self ._get_value ("certpath" , node , parsed )
772
+ node ["macaroonpath" ] = self ._get_value ("macaroonpath" , node , parsed )
773
+
729
774
def update_lndltc (self , parsed ):
730
775
"""Update lndltc related configurations from parsed TOML lndltc section
731
776
:param parsed: Parsed lndltc TOML section
732
777
"""
733
778
node = self .nodes ["lndltc" ]
734
779
self .update_ports (node , parsed )
735
780
781
+ node ["mode" ] = self ._get_value ("mode" , node , parsed , validator = lambda v : v in ["native" , "external" ], default = "native" )
782
+ if node ["mode" ] == "external" :
783
+ node ["rpc_host" ] = self ._get_value ("rpc_host" , node , parsed )
784
+ node ["rpc_port" ] = self ._get_value ("rpc_port" , node , parsed , converter = lambda v : int (v ))
785
+ node ["certpath" ] = self ._get_value ("certpath" , node , parsed )
786
+ node ["macaroonpath" ] = self ._get_value ("macaroonpath" , node , parsed )
787
+
736
788
def update_connext (self , parsed ):
737
789
"""Update Connext related configurations from parsed TOML connext section
738
790
:param parsed: Parsed connext TOML section
@@ -1029,6 +1081,7 @@ def dump_attr(attr: str) -> None:
1029
1081
if isinstance (value , bool ):
1030
1082
value = str (value ).lower ()
1031
1083
print ("{}=\" {}\" " .format (key , value ), file = f )
1084
+
1032
1085
dump_attr ("branch" )
1033
1086
dump_attr ("disable_update" )
1034
1087
dump_attr ("external_ip" )
@@ -1078,15 +1131,15 @@ def dump_node_attr(node: str, attr: str) -> None:
1078
1131
if node in ["bitcoind" , "litecoind" ]:
1079
1132
dump_node_attr (node , "external_rpc_host" )
1080
1133
dump_node_attr (node , "external_rpc_port" )
1081
- #dump_node_attr(node, "external_rpc_user")
1082
- #dump_node_attr(node, "external_rpc_password")
1134
+ # dump_node_attr(node, "external_rpc_user")
1135
+ # dump_node_attr(node, "external_rpc_password")
1083
1136
dump_node_attr (node , "external_zmqpubrawblock" )
1084
1137
dump_node_attr (node , "external_zmqpubrawtx" )
1085
1138
elif node == "geth" :
1086
1139
dump_node_attr (node , "external_rpc_host" )
1087
1140
dump_node_attr (node , "external_rpc_port" )
1088
- #dump_node_attr(node, "infura_project_id")
1089
- #dump_node_attr(node, "infura_project_secret")
1141
+ # dump_node_attr(node, "infura_project_id")
1142
+ # dump_node_attr(node, "infura_project_secret")
1090
1143
dump_node_attr (node , "cache" )
1091
1144
elif node == "arby" :
1092
1145
dump_node_attr (node , "test_centralized_baseasset_balance" )
@@ -1098,6 +1151,6 @@ def dump_node_attr(node: str, attr: str) -> None:
1098
1151
dump_node_attr (node , "live_cex" )
1099
1152
dump_node_attr (node , "test_mode" )
1100
1153
dump_node_attr (node , "cex" )
1101
- #dump_node_attr(node, "cex_api_key")
1102
- #dump_node_attr(node, "cex_api_secret")
1154
+ # dump_node_attr(node, "cex_api_key")
1155
+ # dump_node_attr(node, "cex_api_secret")
1103
1156
dump_node_attr (node , "margin" )
0 commit comments