- Add connect, getPublivKey and ping

- send NostrConnectEvent to relays
This commit is contained in:
greenart7c3
2025-11-10 15:36:57 -03:00
parent e6f109de74
commit da85e59424
@@ -22,7 +22,6 @@ package com.vitorpamplona.quartz.nip46RemoteSigner.signer
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.OptimizedJsonMapper
import com.vitorpamplona.quartz.nip01Core.relay.client.INostrClient import com.vitorpamplona.quartz.nip01Core.relay.client.INostrClient
import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.req import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.req
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
@@ -59,7 +58,6 @@ class NostrSignerRemote(
tags = mapOf("p" to listOf(remotePubkey)), tags = mapOf("p" to listOf(remotePubkey)),
), ),
) { event -> ) { event ->
} }
fun openSubscription() { fun openSubscription() {
@@ -78,18 +76,21 @@ class NostrSignerRemote(
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
): T { ): T {
val template = EventTemplate<Event>( val template =
EventTemplate<Event>(
createdAt = createdAt, createdAt = createdAt,
kind = kind, kind = kind,
tags = tags, tags = tags,
content = content, content = content,
) )
val event = NostrConnectEvent.create( val event =
message = BunkerRequestSign( NostrConnectEvent.create(
message =
BunkerRequestSign(
event = template, event = template,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
@@ -99,13 +100,15 @@ class NostrSignerRemote(
plaintext: String, plaintext: String,
toPublicKey: HexKey, toPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip04Encrypt( NostrConnectEvent.create(
message =
BunkerRequestNip04Encrypt(
message = plaintext, message = plaintext,
pubKey = toPublicKey, pubKey = toPublicKey,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
@@ -115,13 +118,15 @@ class NostrSignerRemote(
ciphertext: String, ciphertext: String,
fromPublicKey: HexKey, fromPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip04Decrypt( NostrConnectEvent.create(
message =
BunkerRequestNip04Decrypt(
ciphertext = ciphertext, ciphertext = ciphertext,
pubKey = fromPublicKey, pubKey = fromPublicKey,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
@@ -131,13 +136,15 @@ class NostrSignerRemote(
plaintext: String, plaintext: String,
toPublicKey: HexKey, toPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip44Encrypt( NostrConnectEvent.create(
message =
BunkerRequestNip44Encrypt(
message = plaintext, message = plaintext,
pubKey = toPublicKey, pubKey = toPublicKey,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
@@ -147,47 +154,53 @@ class NostrSignerRemote(
ciphertext: String, ciphertext: String,
fromPublicKey: HexKey, fromPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip44Decrypt( NostrConnectEvent.create(
message =
BunkerRequestNip44Decrypt(
ciphertext = ciphertext, ciphertext = ciphertext,
pubKey = fromPublicKey, pubKey = fromPublicKey,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
suspend fun ping(): String { suspend fun ping(): String {
val event = NostrConnectEvent.create( val event =
NostrConnectEvent.create(
message = BunkerRequestPing(), message = BunkerRequestPing(),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
suspend fun connect(): String { suspend fun connect(): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestConnect( NostrConnectEvent.create(
message =
BunkerRequestConnect(
remoteKey = remotePubkey, remoteKey = remotePubkey,
permissions = permissions, permissions = permissions,
secret = secret, secret = secret,
), ),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
suspend fun getPublicKey(): String { suspend fun getPublicKey(): String {
val event = NostrConnectEvent.create( val event =
NostrConnectEvent.create(
message = BunkerRequestGetPublicKey(), message = BunkerRequestGetPublicKey(),
remoteKey = remotePubkey, remoteKey = remotePubkey,
signer = signer signer = signer,
) )
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")