From f3316f53eabbd2d32fa161b8c28de85edc173be1 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 6 May 2023 09:24:39 -0400 Subject: [PATCH] Renames Hex.toByteArray() to avoid confusing with String.toByteArray() --- .../vitorpamplona/amethyst/LocalPreferences.kt | 4 ++-- .../vitorpamplona/amethyst/model/Account.kt | 18 +++++++++--------- .../com/vitorpamplona/amethyst/model/Hex.kt | 4 ++-- .../amethyst/service/model/ATag.kt | 4 ++-- .../amethyst/service/model/GeneralListEvent.kt | 4 ++-- .../service/model/LnZapPaymentRequestEvent.kt | 4 ++-- .../service/model/LnZapRequestEvent.kt | 6 +++--- .../amethyst/service/model/MuteListEvent.kt | 4 ++-- .../amethyst/service/nip19/Nip19.kt | 6 +++--- .../ui/screen/AccountStateViewModel.kt | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index 3882218b1..a3a16dda8 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -9,7 +9,7 @@ import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.GLOBAL_FOLLOWS import com.vitorpamplona.amethyst.model.KIND3_FOLLOWS import com.vitorpamplona.amethyst.model.RelaySetupInfo -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.service.model.ContactListEvent import com.vitorpamplona.amethyst.service.model.Event import com.vitorpamplona.amethyst.service.model.Event.Companion.getRefinedEvent @@ -276,7 +276,7 @@ object LocalPreferences { val hideBlockAlertDialog = getBoolean(PrefKeys.HIDE_BLOCK_ALERT_DIALOG, false) val a = Account( - Persona(privKey = privKey?.toByteArray(), pubKey = pubKey.toByteArray()), + Persona(privKey = privKey?.hexToByteArray(), pubKey = pubKey.hexToByteArray()), followingChannels, hiddenUsers, localRelays, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 6c7b55d39..b15189cec 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -178,7 +178,7 @@ class Account( } fun isNIP47Author(pubkeyHex: String?): Boolean { - val privKey = zapPaymentRequest?.secret?.toByteArray() ?: loggedIn.privKey + val privKey = zapPaymentRequest?.secret?.hexToByteArray() ?: loggedIn.privKey if (privKey == null) return false @@ -189,8 +189,8 @@ class Account( fun decryptZapPaymentResponseEvent(zapResponseEvent: LnZapPaymentResponseEvent): Response? { val myNip47 = zapPaymentRequest ?: return null - val privKey = myNip47.secret?.toByteArray() ?: loggedIn.privKey - val pubKey = myNip47.pubKeyHex.toByteArray() + val privKey = myNip47.secret?.hexToByteArray() ?: loggedIn.privKey + val pubKey = myNip47.pubKeyHex.hexToByteArray() if (privKey == null) return null @@ -202,8 +202,8 @@ class Account( } fun calculateZappedAmount(zappedNote: Note?): BigDecimal { - val privKey = zapPaymentRequest?.secret?.toByteArray() ?: loggedIn.privKey - val pubKey = zapPaymentRequest?.pubKeyHex?.toByteArray() + val privKey = zapPaymentRequest?.secret?.hexToByteArray() ?: loggedIn.privKey + val pubKey = zapPaymentRequest?.pubKeyHex?.hexToByteArray() return zappedNote?.zappedAmount(privKey, pubKey) ?: BigDecimal.ZERO } @@ -211,16 +211,16 @@ class Account( if (!isWriteable()) return zapPaymentRequest?.let { nip47 -> - val event = LnZapPaymentRequestEvent.create(bolt11, nip47.pubKeyHex, nip47.secret?.toByteArray() ?: loggedIn.privKey!!) + val event = LnZapPaymentRequestEvent.create(bolt11, nip47.pubKeyHex, nip47.secret?.hexToByteArray() ?: loggedIn.privKey!!) val wcListener = NostrLnZapPaymentResponseDataSource(nip47.pubKeyHex, event.pubKey, event.id) wcListener.start() LocalCache.consume(event, zappedNote) { // After the response is received. - val privKey = nip47.secret?.toByteArray() + val privKey = nip47.secret?.hexToByteArray() if (privKey != null) { - onResponse(it.response(privKey, nip47.pubKeyHex.toByteArray())) + onResponse(it.response(privKey, nip47.pubKeyHex.hexToByteArray())) } } @@ -826,7 +826,7 @@ class Account( pubkeyToUse = recepientPK } - event.plainContent(loggedIn.privKey!!, pubkeyToUse.toByteArray()) + event.plainContent(loggedIn.privKey!!, pubkeyToUse.hexToByteArray()) } else if (event is LnZapRequestEvent && loggedIn.privKey != null) { decryptZapContentAuthor(note)?.content() } else { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt index eed0507d5..a9ab40817 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt @@ -29,7 +29,7 @@ fun ByteArray.toHexKey(): HexKey { return toHex() } -fun HexKey.toByteArray(): ByteArray { +fun HexKey.hexToByteArray(): ByteArray { return Hex.decode(this) } @@ -39,7 +39,7 @@ fun HexKey.toDisplayHexKey(): String { fun decodePublicKey(key: String): ByteArray { val parsed = Nip19.uriToRoute(key) - val pubKeyParsed = parsed?.hex?.toByteArray() + val pubKeyParsed = parsed?.hex?.hexToByteArray() return if (key.startsWith("nsec")) { Persona(privKey = key.bechToBytes()).pubKey diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ATag.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ATag.kt index 27a39b4d8..24d705835 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ATag.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ATag.kt @@ -1,7 +1,7 @@ package com.vitorpamplona.amethyst.service.model import android.util.Log -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey import com.vitorpamplona.amethyst.service.nip19.Tlv import fr.acinq.secp256k1.Hex @@ -14,7 +14,7 @@ data class ATag(val kind: Int, val pubKeyHex: String, val dTag: String, val rela fun toNAddr(): String { val kind = kind.toByteArray() - val author = pubKeyHex.toByteArray() + val author = pubKeyHex.hexToByteArray() val dTag = dTag.toByteArray(Charsets.UTF_8) val relay = relay?.toByteArray(Charsets.UTF_8) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/GeneralListEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/GeneralListEvent.kt index dd236c96c..6b1940e47 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/GeneralListEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/GeneralListEvent.kt @@ -3,7 +3,7 @@ package com.vitorpamplona.amethyst.service.model import android.util.Log import com.google.gson.reflect.TypeToken import com.vitorpamplona.amethyst.model.HexKey -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import nostr.postr.Utils abstract class GeneralListEvent( @@ -24,7 +24,7 @@ abstract class GeneralListEvent( fun plainContent(privKey: ByteArray): String? { return try { - val sharedSecret = Utils.getSharedSecret(privKey, pubKey.toByteArray()) + val sharedSecret = Utils.getSharedSecret(privKey, pubKey.hexToByteArray()) return Utils.decrypt(content, sharedSecret) } catch (e: Exception) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapPaymentRequestEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapPaymentRequestEvent.kt index 966ed230d..63464b5d9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapPaymentRequestEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapPaymentRequestEvent.kt @@ -6,7 +6,7 @@ import com.google.gson.JsonDeserializer import com.google.gson.JsonElement import com.google.gson.JsonParseException import com.vitorpamplona.amethyst.model.HexKey -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey import nostr.postr.Utils import java.lang.reflect.Type @@ -53,7 +53,7 @@ class LnZapPaymentRequestEvent( val content = Utils.encrypt( serializedRequest, privateKey, - walletServicePubkey.toByteArray() + walletServicePubkey.hexToByteArray() ) val tags = mutableListOf>() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt index 0fc12d565..44cfb5213 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapRequestEvent.kt @@ -59,7 +59,7 @@ class LnZapRequestEvent( } else if (zapType == LnZapEvent.ZapType.PRIVATE) { var encryptionPrivateKey = createEncryptionPrivateKey(privateKey.toHexKey(), originalNote.id(), createdAt) var noteJson = (create(privkey, 9733, listOf(tags[0], tags[1]), message)).toJson() - var encryptedContent = encryptPrivateZapMessage(noteJson, encryptionPrivateKey, originalNote.pubKey().toByteArray()) + var encryptedContent = encryptPrivateZapMessage(noteJson, encryptionPrivateKey, originalNote.pubKey().hexToByteArray()) tags = tags + listOf(listOf("anon", encryptedContent)) content = "" // make sure public content is empty, as the content is encrypted privkey = encryptionPrivateKey // sign event with generated privkey @@ -92,7 +92,7 @@ class LnZapRequestEvent( } else if (zapType == LnZapEvent.ZapType.PRIVATE) { var encryptionPrivateKey = createEncryptionPrivateKey(privateKey.toHexKey(), userHex, createdAt) var noteJson = (create(privkey, 9733, listOf(tags[0], tags[1]), message)).toJson() - var encryptedContent = encryptPrivateZapMessage(noteJson, encryptionPrivateKey, userHex.toByteArray()) + var encryptedContent = encryptPrivateZapMessage(noteJson, encryptionPrivateKey, userHex.hexToByteArray()) tags = tags + listOf(listOf("anon", encryptedContent)) content = "" privkey = encryptionPrivateKey @@ -157,7 +157,7 @@ class LnZapRequestEvent( val encnote = anonTag[1] if (encnote.isNotBlank()) { try { - val note = decryptPrivateZapMessage(encnote, loggedInUserPrivKey, pubKey.toByteArray()) + val note = decryptPrivateZapMessage(encnote, loggedInUserPrivKey, pubKey.hexToByteArray()) val decryptedEvent = fromJson(note) if (decryptedEvent.kind == 9733) { return decryptedEvent diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/MuteListEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/MuteListEvent.kt index cb1f8aef7..a9f639a36 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/MuteListEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/MuteListEvent.kt @@ -3,7 +3,7 @@ package com.vitorpamplona.amethyst.service.model import android.util.Log import com.google.gson.reflect.TypeToken import com.vitorpamplona.amethyst.model.HexKey -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey import nostr.postr.Utils import java.util.Date @@ -21,7 +21,7 @@ class MuteListEvent( fun plainContent(privKey: ByteArray): String? { return try { - val sharedSecret = Utils.getSharedSecret(privKey, pubKey.toByteArray()) + val sharedSecret = Utils.getSharedSecret(privKey, pubKey.hexToByteArray()) return Utils.decrypt(content, sharedSecret) } catch (e: Exception) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/nip19/Nip19.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/nip19/Nip19.kt index 6aa8dd754..4a42c1adf 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/nip19/Nip19.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/nip19/Nip19.kt @@ -1,7 +1,7 @@ package com.vitorpamplona.amethyst.service.nip19 import android.util.Log -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey import nostr.postr.Bech32 import nostr.postr.bechToBytes @@ -147,8 +147,8 @@ object Nip19 { public fun createNEvent(idHex: String, author: String?, kind: Int?, relay: String?): String { val kind = kind?.toByteArray() - val author = author?.toByteArray() - val idHex = idHex.toByteArray() + val author = author?.hexToByteArray() + val idHex = idHex.hexToByteArray() val relay = relay?.toByteArray(Charsets.UTF_8) var fullArray = byteArrayOf(Tlv.Type.SPECIAL.id, idHex.size.toByte()) + idHex diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt index 0118af459..04a81c790 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.ViewModel import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.ServiceManager import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.service.nip19.Nip19 import fr.acinq.secp256k1.Hex import kotlinx.coroutines.CoroutineScope @@ -42,7 +42,7 @@ class AccountStateViewModel() : ViewModel() { fun startUI(key: String) { val pattern = Pattern.compile(".+@.+\\.[a-z]+") val parsed = Nip19.uriToRoute(key) - val pubKeyParsed = parsed?.hex?.toByteArray() + val pubKeyParsed = parsed?.hex?.hexToByteArray() val account = if (key.startsWith("nsec")) {