diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt index 7cb41000e..217020561 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt @@ -7,6 +7,7 @@ import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.service.model.ATag import com.vitorpamplona.amethyst.service.model.ChannelCreateEvent import com.vitorpamplona.amethyst.service.model.LiveActivitiesEvent +import com.vitorpamplona.amethyst.service.toNote import com.vitorpamplona.amethyst.ui.components.BundledUpdate import com.vitorpamplona.amethyst.ui.note.toShortenHex import fr.acinq.secp256k1.Hex diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt index 6a05a117f..5448367b5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt @@ -11,6 +11,7 @@ import com.vitorpamplona.amethyst.service.model.* import com.vitorpamplona.amethyst.service.nip19.Nip19 import com.vitorpamplona.amethyst.service.relays.EOSETime import com.vitorpamplona.amethyst.service.relays.Relay +import com.vitorpamplona.amethyst.service.toNote import com.vitorpamplona.amethyst.ui.actions.ImmutableListOfLists import com.vitorpamplona.amethyst.ui.actions.updated import com.vitorpamplona.amethyst.ui.components.BundledUpdate diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Bech32Util.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Bech32Util.kt index efcbe061d..62cb91e3d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/Bech32Util.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Bech32Util.kt @@ -201,6 +201,10 @@ object Bech32 { fun ByteArray.toNsec() = Bech32.encodeBytes(hrp = "nsec", this, Bech32.Encoding.Bech32) fun ByteArray.toNpub() = Bech32.encodeBytes(hrp = "npub", this, Bech32.Encoding.Bech32) +fun ByteArray.toNote() = Bech32.encodeBytes(hrp = "note", this, Bech32.Encoding.Bech32) +fun ByteArray.toNEvent() = Bech32.encodeBytes(hrp = "nevent", this, Bech32.Encoding.Bech32) +fun ByteArray.toNAddress() = Bech32.encodeBytes(hrp = "naddr", this, Bech32.Encoding.Bech32) +fun ByteArray.toLnUrl() = Bech32.encodeBytes(hrp = "lnurl", this, Bech32.Encoding.Bech32) fun String.bechToBytes(hrp: String? = null): ByteArray { val decodedForm = Bech32.decodeBytes(this) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt index d34bae6ad..26272766b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt @@ -5,6 +5,7 @@ import com.vitorpamplona.amethyst.BuildConfig import com.vitorpamplona.amethyst.service.Bech32 import com.vitorpamplona.amethyst.service.HttpClient import com.vitorpamplona.amethyst.service.checkNotInMainThread +import com.vitorpamplona.amethyst.service.toLnUrl import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -131,7 +132,7 @@ class LightningAddressResolver() { fetchLightningAddressJson( lnaddress, onSuccess = { - onSuccess(Bech32.encodeBytes("lnurl", it.toByteArray(), Bech32.Encoding.Bech32)) + onSuccess(it.toByteArray().toLnUrl()) }, onError = onError ) 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 941498c37..ec5c80946 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 @@ -4,10 +4,10 @@ import android.util.Log import androidx.compose.runtime.Immutable import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey -import com.vitorpamplona.amethyst.service.Bech32 import com.vitorpamplona.amethyst.service.bechToBytes import com.vitorpamplona.amethyst.service.nip19.Tlv import com.vitorpamplona.amethyst.service.toByteArray +import com.vitorpamplona.amethyst.service.toNAddress import fr.acinq.secp256k1.Hex @Immutable @@ -30,7 +30,7 @@ data class ATag(val kind: Int, val pubKeyHex: String, val dTag: String, val rela byteArrayOf(Tlv.Type.AUTHOR.id, author.size.toByte()) + author + byteArrayOf(Tlv.Type.KIND.id, kind.size.toByte()) + kind - return Bech32.encodeBytes(hrp = "naddr", fullArray, Bech32.Encoding.Bech32) + return fullArray.toNAddress() } companion object { 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 d64606396..2ce81532e 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 @@ -4,9 +4,9 @@ import android.util.Log import androidx.compose.runtime.Immutable import com.vitorpamplona.amethyst.model.hexToByteArray import com.vitorpamplona.amethyst.model.toHexKey -import com.vitorpamplona.amethyst.service.Bech32 import com.vitorpamplona.amethyst.service.bechToBytes import com.vitorpamplona.amethyst.service.toByteArray +import com.vitorpamplona.amethyst.service.toNEvent import java.util.regex.Pattern object Nip19 { @@ -167,6 +167,6 @@ object Nip19 { fullArray = fullArray + byteArrayOf(Tlv.Type.KIND.id, kind.size.toByte()) + kind } - return Bech32.encodeBytes(hrp = "nevent", fullArray, Bech32.Encoding.Bech32) + return fullArray.toNEvent() } }