ln: always make an lnurl link instead of lnaddr
Changelog-Fixed: Fix lightning tip button sometimes not working
This commit is contained in:
@@ -57,13 +57,25 @@ struct Profile: Codable {
|
|||||||
set(s) { value["lud16"] = s }
|
set(s) { value["lud16"] = s }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var lnurl: String? {
|
||||||
|
guard let addr = lud06 ?? lud16 else {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
if addr.contains("@") {
|
||||||
|
return lnaddress_to_lnurl(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
var nip05: String? {
|
var nip05: String? {
|
||||||
get { return value["nip05"]; }
|
get { return value["nip05"]; }
|
||||||
set(s) { value["nip05"] = s }
|
set(s) { value["nip05"] = s }
|
||||||
}
|
}
|
||||||
|
|
||||||
var lightning_uri: URL? {
|
var lightning_uri: URL? {
|
||||||
return make_ln_url(self.lud06) ?? make_ln_url(self.lud16)
|
return make_ln_url(self.lnurl)
|
||||||
}
|
}
|
||||||
|
|
||||||
init(from decoder: Decoder) throws {
|
init(from decoder: Decoder) throws {
|
||||||
@@ -110,3 +122,17 @@ struct NostrSubscription {
|
|||||||
let sub_id: String
|
let sub_id: String
|
||||||
let filter: NostrFilter
|
let filter: NostrFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func lnaddress_to_lnurl(_ lnaddr: String) -> String? {
|
||||||
|
let parts = lnaddr.split(separator: "@")
|
||||||
|
guard parts.count == 2 else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
let url = "https://\(parts[1])/.well-known/lnurlp/\(parts[0])";
|
||||||
|
guard let dat = url.data(using: .utf8) else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return bech32_encode(hrp: "lnurl", Array(dat))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user