@@ -42,6 +42,7 @@ pub struct NymNetworkDetails {
42
42
pub endpoints : Vec < ValidatorDetails > ,
43
43
pub contracts : NymContracts ,
44
44
pub explorer_api : Option < String > ,
45
+ pub nym_vpn_api_url : Option < String > ,
45
46
}
46
47
47
48
// by default we assume the same defaults as mainnet, i.e. same prefixes and denoms
@@ -71,6 +72,7 @@ impl NymNetworkDetails {
71
72
endpoints : Default :: default ( ) ,
72
73
contracts : Default :: default ( ) ,
73
74
explorer_api : Default :: default ( ) ,
75
+ nym_vpn_api_url : Default :: default ( ) ,
74
76
}
75
77
}
76
78
@@ -126,6 +128,7 @@ impl NymNetworkDetails {
126
128
. with_multisig_contract ( get_optional_env ( var_names:: MULTISIG_CONTRACT_ADDRESS ) )
127
129
. with_coconut_dkg_contract ( get_optional_env ( var_names:: COCONUT_DKG_CONTRACT_ADDRESS ) )
128
130
. with_explorer_api ( get_optional_env ( var_names:: EXPLORER_API ) )
131
+ . with_nym_vpn_api_url ( get_optional_env ( var_names:: NYM_VPN_API ) )
129
132
}
130
133
131
134
pub fn new_mainnet ( ) -> Self {
@@ -155,6 +158,7 @@ impl NymNetworkDetails {
155
158
) ,
156
159
} ,
157
160
explorer_api : parse_optional_str ( mainnet:: EXPLORER_API ) ,
161
+ nym_vpn_api_url : parse_optional_str ( mainnet:: NYM_VPN_API ) ,
158
162
}
159
163
}
160
164
@@ -263,6 +267,19 @@ impl NymNetworkDetails {
263
267
self . explorer_api = endpoint. map ( Into :: into) ;
264
268
self
265
269
}
270
+
271
+ #[ must_use]
272
+ pub fn with_nym_vpn_api_url < S : Into < String > > ( mut self , endpoint : Option < S > ) -> Self {
273
+ self . nym_vpn_api_url = endpoint. map ( Into :: into) ;
274
+ self
275
+ }
276
+
277
+ pub fn nym_vpn_api_url ( & self ) -> Option < Url > {
278
+ self . nym_vpn_api_url . as_ref ( ) . map ( |url| {
279
+ url. parse ( )
280
+ . expect ( "the provided nym-vpn api url is invalid!" )
281
+ } )
282
+ }
266
283
}
267
284
268
285
#[ derive( Debug , Copy , Serialize , Deserialize , Clone , PartialEq , Eq ) ]
0 commit comments