Merge branch 'main' into amber

This commit is contained in:
greenart7c3
2023-09-15 13:18:43 -03:00
committed by GitHub
10 changed files with 115 additions and 35 deletions
@@ -69,14 +69,14 @@ object Bech32 {
values.forEach { v ->
val b = chk shr 25
chk = ((chk and 0x1ffffff) shl 5) xor v.toInt()
for (i in 0..5) {
for (i in 0..4) {
if (((b shr i) and 1) != 0) chk = chk xor GEN[i]
}
}
values1.forEach { v ->
val b = chk shr 25
chk = ((chk and 0x1ffffff) shl 5) xor v.toInt()
for (i in 0..5) {
for (i in 0..4) {
if (((b shr i) and 1) != 0) chk = chk xor GEN[i]
}
}
@@ -129,7 +129,7 @@ object Bech32 {
}
}
val hrp = bech32.take(pos)
val hrp = bech32.take(pos).lowercase() // strings must be lower case
require(hrp.length in 1..83) { "hrp must contain 1 to 83 characters" }
val data = Array(bech32.length - pos - 1) {
@@ -0,0 +1,35 @@
package com.vitorpamplona.quartz.encoders
import android.util.Log
import java.util.regex.Pattern
val lnurlpPattern = Pattern.compile("(?i:http|https):\\/\\/((.+)\\/)*\\.well-known\\/lnurlp\\/(.*)")
class Lud06 {
fun toLud16(str: String): String? {
return try {
val url = toLnUrlp(str)
val matcher = lnurlpPattern.matcher(url)
matcher.find()
val domain = matcher.group(2)
val username = matcher.group(3)
"$username@$domain"
} catch (t: Throwable) {
t.printStackTrace()
Log.w("Lud06ToLud16","Fail to convert LUD06 to LUD16",t)
null
}
}
fun toLnUrlp(str: String): String? {
return try {
String(Bech32.decodeBytes(str, false).second)
} catch (t: Throwable) {
t.printStackTrace()
Log.w("Lud06ToLud16","Fail to convert LUD06 to LUD16",t)
null
}
}
}