From 414854a3920f76942f82a8cab4b84f16530cea52 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 16 Jan 2026 16:10:02 -0800 Subject: [PATCH] Add commands for setting relay lists --- packages/app/src/commands.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/app/src/commands.ts b/packages/app/src/commands.ts index fa50990..4163d8f 100644 --- a/packages/app/src/commands.ts +++ b/packages/app/src/commands.ts @@ -11,6 +11,7 @@ import { makeHttpAuth, getListTags, getRelayTags, + getRelayTagValues, makeList, makeRoomCreateEvent, makeRoomDeleteEvent, @@ -23,6 +24,7 @@ import { createProfile, editProfile, RelayMode, + makeEvent, MESSAGING_RELAYS, BLOCKED_RELAYS, FOLLOWS, @@ -86,6 +88,16 @@ export const addRelay = async (url: string, mode: RelayMode) => { return publishThunk({event, relays}) } +export const setRelays = async (tags: string[][]) => { + const router = Router.get() + const event = makeEvent(RELAYS, {tags}) + const relays = router + .merge([router.Index(), router.FromRelays(getRelayTagValues(tags))]) + .getUrls() + + return publishThunk({event, relays}) +} + // NIP 17 export const removeMessagingRelay = async (url: string) => { @@ -108,6 +120,13 @@ export const addMessagingRelay = async (url: string) => { return publishThunk({event, relays}) } +export const setMessagingRelays = async (urls: string[]) => { + const event = makeEvent(MESSAGING_RELAYS, {tags: urls.map(url => ["relay", url])}) + const relays = Router.get().FromUser().getUrls() + + return publishThunk({event, relays}) +} + // NIP 51 export const removeBlockedRelay = async (url: string) => { @@ -130,6 +149,13 @@ export const addBlockedRelay = async (url: string) => { return publishThunk({event, relays}) } +export const setBlockedRelays = async (urls: string[]) => { + const event = makeEvent(BLOCKED_RELAYS, {tags: urls.map(url => ["relay", url])}) + const relays = Router.get().FromUser().getUrls() + + return publishThunk({event, relays}) +} + // NIP 01 export const setProfile = (profile: Profile) => {