Use a new connection to check for the bunker relay to avoid the mute error

This commit is contained in:
greenart7c3
2025-07-28 08:10:57 -03:00
parent 1be3015c1c
commit e35a524846
@@ -333,6 +333,9 @@ fun onAddRelay(
val client = NostrClient(
socket,
)
val clientSub = NostrClient(
socket,
)
AmberListenerSingleton.getListener()?.let { listener ->
client.subscribe(listener)
}
@@ -347,6 +350,17 @@ fun onAddRelay(
),
),
)
clientSub.reconnect(
arrayOf(
RelaySetupInfoToConnect(
addedWSS,
read = true,
write = true,
feedTypes = COMMON_FEED_TYPES,
forceProxy = if (isPrivateIp) false else Amber.instance.settings.useProxy,
),
),
)
var filterResult = false
val listener2 = BunkerValidationRelayListener(
account,
@@ -357,10 +371,15 @@ fun onAddRelay(
},
)
val relay = client.getRelay(addedWSS) ?: return@secondLaunch
val relaySub = clientSub.getRelay(addedWSS) ?: return@secondLaunch
client.subscribe(
listener2,
)
clientSub.subscribe(
listener2,
)
relay.connect()
relaySub.connect()
delay(3000)
relay.sendFilter(
UUID.randomUUID().toString().substring(0, 4),
@@ -374,6 +393,18 @@ fun onAddRelay(
),
),
)
relaySub.sendFilter(
UUID.randomUUID().toString().substring(0, 4),
filters = listOf(
TypedFilter(
types = COMMON_FEED_TYPES,
filter = SincePerRelayFilter(
kinds = listOf(NostrConnectEvent.KIND),
tags = mapOf("p" to listOf(signedEvent.pubKey)),
),
),
),
)
delay(3000)
val result = client.sendAndWaitForResponse(
signedEvent = signedEvent,
@@ -394,7 +425,9 @@ fun onAddRelay(
client.unsubscribe(listener)
}
client.unsubscribe(listener2)
clientSub.unsubscribe(listener2)
client.getRelay(addedWSS)?.disconnect()
clientSub.getRelay(addedWSS)?.disconnect()
if (result && filterResult) {
relays2.add(