Add relay.veganostr.com as default relay with migration

This commit is contained in:
Jure
2026-04-05 13:23:51 +02:00
parent 05f718b092
commit 4235f9e059

View File

@@ -39,6 +39,7 @@ export async function fetchWithTimeout(
export const RELAY_STORAGE_KEY = "wrystr_relays"; export const RELAY_STORAGE_KEY = "wrystr_relays";
export const FALLBACK_RELAYS = [ export const FALLBACK_RELAYS = [
"wss://relay.veganostr.com",
"wss://relay.damus.io", "wss://relay.damus.io",
"wss://nos.lol", "wss://nos.lol",
"wss://relay.snort.social", "wss://relay.snort.social",
@@ -46,6 +47,7 @@ export const FALLBACK_RELAYS = [
// Override NDK's default outbox relays (purplepag.es can have DNS issues) // Override NDK's default outbox relays (purplepag.es can have DNS issues)
export const OUTBOX_RELAYS = [ export const OUTBOX_RELAYS = [
"wss://relay.veganostr.com/",
"wss://relay.damus.io/", "wss://relay.damus.io/",
"wss://nos.lol/", "wss://nos.lol/",
"wss://relay.nostr.band/", "wss://relay.nostr.band/",
@@ -56,6 +58,9 @@ export function normalizeRelayUrl(url: string): string {
return url.replace(/\/+$/, ""); return url.replace(/\/+$/, "");
} }
const VEGA_RELAY = "wss://relay.veganostr.com";
const VEGA_RELAY_MIGRATED_KEY = "wrystr_vega_relay_added";
export function getStoredRelayUrls(): string[] { export function getStoredRelayUrls(): string[] {
try { try {
const stored = localStorage.getItem(RELAY_STORAGE_KEY); const stored = localStorage.getItem(RELAY_STORAGE_KEY);
@@ -63,11 +68,22 @@ export function getStoredRelayUrls(): string[] {
// Deduplicate on load (handles legacy duplicates from trailing-slash mismatch) // Deduplicate on load (handles legacy duplicates from trailing-slash mismatch)
const urls: string[] = JSON.parse(stored); const urls: string[] = JSON.parse(stored);
const seen = new Set<string>(); const seen = new Set<string>();
return urls.map(normalizeRelayUrl).filter((u) => { const deduped = urls.map(normalizeRelayUrl).filter((u) => {
if (seen.has(u)) return false; if (seen.has(u)) return false;
seen.add(u); seen.add(u);
return true; return true;
}); });
// One-time: inject Vega relay for existing users
if (!localStorage.getItem(VEGA_RELAY_MIGRATED_KEY)) {
localStorage.setItem(VEGA_RELAY_MIGRATED_KEY, "1");
if (!deduped.includes(VEGA_RELAY)) {
deduped.unshift(VEGA_RELAY);
saveRelayUrls(deduped);
}
}
return deduped;
} }
} catch { /* ignore */ } } catch { /* ignore */ }
return FALLBACK_RELAYS; return FALLBACK_RELAYS;