Browse Source

Merge branch 'master' into add-wallet-modal

post-button-style
Suhail Saqan 2 years ago
parent
commit
067d4d44b3
No known key found for this signature in database GPG Key ID: C3E8D33BFD16C6E6
  1. 28
      damus/Nostr/Nostr.swift
  2. 3
      damus/Util/Keys.swift
  3. 4
      damus/Views/EditMetadataView.swift
  4. 16
      damus/Views/ProfileView.swift

28
damus/Nostr/Nostr.swift

@ -57,13 +57,25 @@ struct Profile: Codable {
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? {
get { return value["nip05"]; }
set(s) { value["nip05"] = s }
}
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 {
@ -110,3 +122,17 @@ struct NostrSubscription {
let sub_id: String
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))
}

3
damus/Util/Keys.swift

@ -133,7 +133,8 @@ func get_saved_pubkey() -> String? {
}
func get_saved_privkey() -> String? {
try? Vault.getPrivateKey(keychainConfiguration: DamusKeychainConfiguration())
let mkey = try? Vault.getPrivateKey(keychainConfiguration: DamusKeychainConfiguration());
return mkey.map { $0.trimmingCharacters(in: .whitespaces) }
}
fileprivate func removePrivateKeyFromUserDefaults() throws {

4
damus/Views/EditMetadataView.swift

@ -84,8 +84,8 @@ struct EditMetadataView: View {
website: website,
nip05: nip05.isEmpty ? nil : nip05,
picture: picture.isEmpty ? nil : picture,
lud06: ln.contains("@") ? ln : nil,
lud16: ln.contains("@") ? nil : ln
lud06: ln.contains("@") ? nil : ln,
lud16: ln.contains("@") ? ln : nil
);
let m_metadata_ev = make_metadata_event(keypair: damus_state.keypair, metadata: metadata)

16
damus/Views/ProfileView.swift

@ -126,7 +126,7 @@ struct ProfileView: View {
//@EnvironmentObject var profile: ProfileModel
func LNButton(lud06: String?, lud16: String?) -> some View {
func LNButton(lud06: String?, lud16: String?, profile: Profile) -> some View {
Button(action: {
if let l = lud06 {
inv = l
@ -139,6 +139,12 @@ struct ProfileView: View {
.symbolRenderingMode(.palette)
.font(.system(size: 34).weight(.thin))
.foregroundStyle(colorScheme == .light ? .black : .white, colorScheme == .light ? .black.opacity(0.1) : .white.opacity(0.2))
}.contextMenu {
Button {
UIPasteboard.general.string = profile.lnurl ?? ""
} label: {
Label("Copy LNUrl", systemImage: "doc.on.doc")
}
}.sheet(isPresented: $showingSelectWallet, onDismiss: {showingSelectWallet = false}) {
SelectWalletView(showingSelectWallet: $showingSelectWallet, invoice: $inv)
}
@ -164,9 +170,11 @@ struct ProfileView: View {
ProfilePicView(pubkey: profile.pubkey, size: PFP_SIZE, highlight: .custom(Color.black, 2), profiles: damus_state.profiles)
Spacer()
if (data != nil) && (data?.lud06 != nil || data?.lud16 != nil) {
LNButton(lud06: data?.lud06, lud16: data?.lud16)
if let profile = data {
if (profile?.lud06 != nil || profile?.lud16 != nil) {
LNButton(lud06: data?.lud06, lud16: data?.lud16,, profile: profile)
}
}
DMButton

Loading…
Cancel
Save