Adds method to create the NIP-65 list

This commit is contained in:
Vitor Pamplona
2024-05-22 18:23:52 -04:00
parent 11fa762028
commit c78c00acd9
2 changed files with 75 additions and 12 deletions
@@ -47,6 +47,7 @@ import com.vitorpamplona.quartz.encoders.HexKey
import com.vitorpamplona.quartz.encoders.Nip47WalletConnect
import com.vitorpamplona.quartz.encoders.hexToByteArray
import com.vitorpamplona.quartz.encoders.toHexKey
import com.vitorpamplona.quartz.events.AdvertisedRelayListEvent
import com.vitorpamplona.quartz.events.BookmarkListEvent
import com.vitorpamplona.quartz.events.ChannelCreateEvent
import com.vitorpamplona.quartz.events.ChannelMessageEvent
@@ -2580,6 +2581,34 @@ class Account(
}
}
fun sendNip65RelayList(relays: List<AdvertisedRelayListEvent.AdvertisedRelayInfo>) {
if (!isWriteable()) return
val nip65RelayList =
LocalCache.getOrCreateAddressableNote(
AdvertisedRelayListEvent.createAddressATag(signer.pubKey),
).event as? AdvertisedRelayListEvent
if (nip65RelayList != null) {
AdvertisedRelayListEvent.updateRelayList(
earlierVersion = nip65RelayList,
relays = relays,
signer = signer,
) {
Client.send(it)
LocalCache.justConsume(it, null)
}
} else {
AdvertisedRelayListEvent.createFromScratch(
relays = relays,
signer = signer,
) {
Client.send(it)
LocalCache.justConsume(it, null)
}
}
}
fun setHideDeleteRequestDialog() {
hideDeleteRequestDialog = true
saveable.invalidateData()