From 1ddaaf598be6650688d1623525a3a2b97a28398e Mon Sep 17 00:00:00 2001 From: greenart7c3 <115044884+greenart7c3@users.noreply.github.com> Date: Fri, 4 Aug 2023 15:09:22 -0300 Subject: [PATCH] check if pubkey of the event is empty and fill pubkey and event id --- .../com/greenart7c3/nostrsigner/service/model/Event.kt | 9 +++++++++ .../java/com/greenart7c3/nostrsigner/ui/MainScreen.kt | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/service/model/Event.kt b/app/src/main/java/com/greenart7c3/nostrsigner/service/model/Event.kt index 0a923398..af91a28c 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/service/model/Event.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/service/model/Event.kt @@ -296,6 +296,15 @@ open class Event( return CryptoUtils.sha256(rawEventJson.toByteArray()) } + fun setPubKeyIfEmpty(event: Event, pubKey: HexKey): Event { + if (event.pubKey.isEmpty()) { + val id = generateId(pubKey, event.createdAt, event.kind, event.tags, event.content) + return Event(id.toHexKey(), pubKey, event.createdAt, event.kind, event.tags, event.content, "") + } + + return event + } + fun create(privateKey: ByteArray, kind: Int, tags: List> = emptyList(), content: String = "", createdAt: Long = TimeUtils.now()): Event { val pubKey = CryptoUtils.pubkeyCreate(privateKey).toHexKey() val id = generateId(pubKey, createdAt, kind, tags, content) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt index adc5a0fb..7bbc7912 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt @@ -116,7 +116,9 @@ fun MainScreen(account: Account, accountStateViewModel: AccountStateViewModel, j return@EventData } - if (event.value!!.pubKey != account.keyPair.pubKey.toHexKey()) { + val localEvent = Event.setPubKeyIfEmpty(event.value!!, account.keyPair.pubKey.toHexKey()) + + if (localEvent.pubKey != account.keyPair.pubKey.toHexKey()) { coroutineScope.launch { Toast.makeText( context, @@ -127,7 +129,7 @@ fun MainScreen(account: Account, accountStateViewModel: AccountStateViewModel, j return@EventData } - val id = event.value!!.id.hexToByteArray() + val id = localEvent.id.hexToByteArray() val sig = CryptoUtils.sign(id, account.keyPair.privKey!!).toHexKey() clipboardManager.setText(AnnotatedString(sig))