Merge branch 'main' into amber
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user