- 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,19 +76,22 @@ class NostrSignerRemote(
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
): T { ): T {
val template = EventTemplate<Event>( val template =
createdAt = createdAt, EventTemplate<Event>(
kind = kind, createdAt = createdAt,
tags = tags, kind = kind,
content = content, tags = tags,
) content = content,
val event = NostrConnectEvent.create( )
message = BunkerRequestSign( val event =
event = template, NostrConnectEvent.create(
), message =
remoteKey = remotePubkey, BunkerRequestSign(
signer = signer event = template,
) ),
remoteKey = remotePubkey,
signer = signer,
)
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
@@ -99,14 +100,16 @@ class NostrSignerRemote(
plaintext: String, plaintext: String,
toPublicKey: HexKey, toPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip04Encrypt( NostrConnectEvent.create(
message = plaintext, message =
pubKey = toPublicKey, BunkerRequestNip04Encrypt(
), message = plaintext,
remoteKey = remotePubkey, pubKey = toPublicKey,
signer = signer ),
) remoteKey = remotePubkey,
signer = signer,
)
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
@@ -115,14 +118,16 @@ class NostrSignerRemote(
ciphertext: String, ciphertext: String,
fromPublicKey: HexKey, fromPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip04Decrypt( NostrConnectEvent.create(
ciphertext = ciphertext, message =
pubKey = fromPublicKey, BunkerRequestNip04Decrypt(
), ciphertext = ciphertext,
remoteKey = remotePubkey, pubKey = fromPublicKey,
signer = signer ),
) remoteKey = remotePubkey,
signer = signer,
)
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
@@ -131,14 +136,16 @@ class NostrSignerRemote(
plaintext: String, plaintext: String,
toPublicKey: HexKey, toPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip44Encrypt( NostrConnectEvent.create(
message = plaintext, message =
pubKey = toPublicKey, BunkerRequestNip44Encrypt(
), message = plaintext,
remoteKey = remotePubkey, pubKey = toPublicKey,
signer = signer ),
) remoteKey = remotePubkey,
signer = signer,
)
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }
@@ -147,48 +154,54 @@ class NostrSignerRemote(
ciphertext: String, ciphertext: String,
fromPublicKey: HexKey, fromPublicKey: HexKey,
): String { ): String {
val event = NostrConnectEvent.create( val event =
message = BunkerRequestNip44Decrypt( NostrConnectEvent.create(
ciphertext = ciphertext, message =
pubKey = fromPublicKey, BunkerRequestNip44Decrypt(
), ciphertext = ciphertext,
remoteKey = remotePubkey, pubKey = fromPublicKey,
signer = signer ),
) remoteKey = remotePubkey,
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 =
message = BunkerRequestPing(), NostrConnectEvent.create(
remoteKey = remotePubkey, message = BunkerRequestPing(),
signer = signer remoteKey = remotePubkey,
) 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,
permissions = permissions,
secret = secret,
),
remoteKey = remotePubkey, remoteKey = remotePubkey,
permissions = permissions, signer = signer,
secret = secret, )
),
remoteKey = remotePubkey,
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 =
message = BunkerRequestGetPublicKey(), NostrConnectEvent.create(
remoteKey = remotePubkey, message = BunkerRequestGetPublicKey(),
signer = signer remoteKey = remotePubkey,
) signer = signer,
)
client.send(event, relayList = relays) client.send(event, relayList = relays)
TODO("Not yet implemented") TODO("Not yet implemented")
} }