diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-11-21 04:44:40 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-11-21 04:44:40 +0000 |
| commit | 7dda553918705277c7fa5b903c6a40e4b4a0aa8d (patch) | |
| tree | 4f3511cd3fe56928bd2aa9a22f4ddd592f4c6b83 /grasp-audit/src/client.rs | |
| parent | 2e799fa7ec57d284c643df8b8dc54471470f5c59 (diff) | |
add nip11
Diffstat (limited to 'grasp-audit/src/client.rs')
| -rw-r--r-- | grasp-audit/src/client.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/grasp-audit/src/client.rs b/grasp-audit/src/client.rs index 019f4cb..35aaccd 100644 --- a/grasp-audit/src/client.rs +++ b/grasp-audit/src/client.rs | |||
| @@ -84,6 +84,25 @@ impl AuditClient { | |||
| 84 | self.keys.public_key() | 84 | self.keys.public_key() |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | /// Get the relay URL | ||
| 88 | pub async fn relay_url(&self) -> Result<String> { | ||
| 89 | let relays = self.client.relays().await; | ||
| 90 | let relay = relays.values().next() | ||
| 91 | .ok_or_else(|| anyhow!("No relays configured"))?; | ||
| 92 | Ok(relay.url().to_string()) | ||
| 93 | } | ||
| 94 | |||
| 95 | /// Convert WebSocket URL to HTTP(S) URL for NIP-11 requests | ||
| 96 | pub fn ws_to_http_url(ws_url: &str) -> Result<String> { | ||
| 97 | if ws_url.starts_with("ws://") { | ||
| 98 | Ok(ws_url.replace("ws://", "http://")) | ||
| 99 | } else if ws_url.starts_with("wss://") { | ||
| 100 | Ok(ws_url.replace("wss://", "https://")) | ||
| 101 | } else { | ||
| 102 | Err(anyhow!("Invalid WebSocket URL: {}", ws_url)) | ||
| 103 | } | ||
| 104 | } | ||
| 105 | |||
| 87 | /// Check if connected to relay | 106 | /// Check if connected to relay |
| 88 | pub async fn is_connected(&self) -> bool { | 107 | pub async fn is_connected(&self) -> bool { |
| 89 | // Check if we have any connected relays | 108 | // Check if we have any connected relays |