upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-09 19:58:41 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-09 19:58:41 +0000
commitb28a356cb41077ccee12a9c52f4ef2054e76cac6 (patch)
tree2a0867f1ab0216e86efa062aef90b2b8077e6fb9 /src/config.rs
parent6dd9fcd5392891b0ddb7894e2c5cb40450eae00e (diff)
chore: cargo fmt
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/config.rs b/src/config.rs
index 2343c88..44001d8 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -141,12 +141,20 @@ pub struct Config {
141 /// Stores full event objects for immediate re-processing when dependencies resolve. 141 /// Stores full event objects for immediate re-processing when dependencies resolve.
142 /// Too short (<30s): Miss events from slow relays 142 /// Too short (<30s): Miss events from slow relays
143 /// Too long (>5min): Waste memory 143 /// Too long (>5min): Waste memory
144 #[arg(long, env = "NGIT_REJECTED_HOT_CACHE_DURATION_SECS", default_value_t = 120)] 144 #[arg(
145 long,
146 env = "NGIT_REJECTED_HOT_CACHE_DURATION_SECS",
147 default_value_t = 120
148 )]
145 pub rejected_hot_cache_duration_secs: u64, 149 pub rejected_hot_cache_duration_secs: u64,
146 150
147 /// Cold index expiry in seconds for rejected announcements (default: 604800 = 7 days) 151 /// Cold index expiry in seconds for rejected announcements (default: 604800 = 7 days)
148 /// Stores metadata only to prevent repeated downloads of rejected events. 152 /// Stores metadata only to prevent repeated downloads of rejected events.
149 #[arg(long, env = "NGIT_REJECTED_COLD_INDEX_EXPIRY_SECS", default_value_t = 604800)] 153 #[arg(
154 long,
155 env = "NGIT_REJECTED_COLD_INDEX_EXPIRY_SECS",
156 default_value_t = 604800
157 )]
150 pub rejected_cold_index_expiry_secs: u64, 158 pub rejected_cold_index_expiry_secs: u64,
151} 159}
152 160
@@ -190,10 +198,7 @@ impl Config {
190 // Validate it's a valid nsec 198 // Validate it's a valid nsec
191 Keys::parse(&nsec).context("Invalid nsec in relay owner key file")?; 199 Keys::parse(&nsec).context("Invalid nsec in relay owner key file")?;
192 200
193 tracing::info!( 201 tracing::info!("Loaded relay owner key from {}", key_path.display());
194 "Loaded relay owner key from {}",
195 key_path.display()
196 );
197 return Ok(nsec); 202 return Ok(nsec);
198 } 203 }
199 204
@@ -202,8 +207,7 @@ impl Config {
202 let nsec = keys.secret_key().to_bech32()?; 207 let nsec = keys.secret_key().to_bech32()?;
203 208
204 // Save to file 209 // Save to file
205 fs::write(&key_path, &nsec) 210 fs::write(&key_path, &nsec).context("Failed to write relay owner key file")?;
206 .context("Failed to write relay owner key file")?;
207 211
208 tracing::info!( 212 tracing::info!(
209 "Generated new relay owner key and saved to {}", 213 "Generated new relay owner key and saved to {}",
@@ -215,7 +219,9 @@ impl Config {
215 219
216 /// Get the relay owner's Keys object 220 /// Get the relay owner's Keys object
217 pub fn relay_owner_keys(&self) -> Result<Keys> { 221 pub fn relay_owner_keys(&self) -> Result<Keys> {
218 let nsec = self.relay_owner_nsec.as_ref() 222 let nsec = self
223 .relay_owner_nsec
224 .as_ref()
219 .context("relay_owner_nsec not set (should be set by Config::load())")?; 225 .context("relay_owner_nsec not set (should be set by Config::load())")?;
220 Keys::parse(nsec).context("Invalid relay_owner_nsec") 226 Keys::parse(nsec).context("Invalid relay_owner_nsec")
221 } 227 }
@@ -251,8 +257,11 @@ impl Config {
251 pub fn for_testing() -> Self { 257 pub fn for_testing() -> Self {
252 // Generate a test key deterministically for consistent tests 258 // Generate a test key deterministically for consistent tests
253 let keys = Keys::generate(); 259 let keys = Keys::generate();
254 let nsec = keys.secret_key().to_bech32().expect("Failed to generate test nsec"); 260 let nsec = keys
255 261 .secret_key()
262 .to_bech32()
263 .expect("Failed to generate test nsec");
264
256 Self { 265 Self {
257 domain: "localhost:8080".to_string(), 266 domain: "localhost:8080".to_string(),
258 relay_owner_nsec: Some(nsec), 267 relay_owner_nsec: Some(nsec),
@@ -348,7 +357,7 @@ mod tests {
348 let config = Config::for_testing(); 357 let config = Config::for_testing();
349 let keys = config.relay_owner_keys().expect("Should have valid keys"); 358 let keys = config.relay_owner_keys().expect("Should have valid keys");
350 let npub = config.relay_owner_npub().expect("Should derive npub"); 359 let npub = config.relay_owner_npub().expect("Should derive npub");
351 360
352 // Verify the npub matches the keys 361 // Verify the npub matches the keys
353 assert_eq!(npub, keys.public_key().to_bech32().unwrap()); 362 assert_eq!(npub, keys.public_key().to_bech32().unwrap());
354 assert!(npub.starts_with("npub1")); 363 assert!(npub.starts_with("npub1"));