nwc: add lud16 parameter

This will be used for auto-setting up the lightning wallet

See https://github.com/nostr-protocol/nips/pull/513
This commit is contained in:
William Casarin
2023-05-10 11:10:43 -07:00
parent 370a5feb4e
commit a5726d4650

View File

@@ -17,10 +17,22 @@ struct WalletConnectURL: Equatable {
let relay: RelayURL let relay: RelayURL
let keypair: FullKeypair let keypair: FullKeypair
let pubkey: String let pubkey: String
let lud16: String?
func to_url() -> URL { func to_url() -> URL {
let urlstr = "nostrwalletconnect://\(pubkey)?relay=\(relay.id)&secret=\(keypair.privkey)" var urlComponents = URLComponents()
return URL(string: urlstr)! urlComponents.scheme = "nostrwalletconnect"
urlComponents.host = pubkey
urlComponents.queryItems = [
URLQueryItem(name: "relay", value: relay.id),
URLQueryItem(name: "secret", value: keypair.privkey)
]
if let lud16 {
urlComponents.queryItems?.append(URLQueryItem(name: "lud16", value: lud16))
}
return urlComponents.url!
} }
init?(str: String) { init?(str: String) {
@@ -37,14 +49,16 @@ struct WalletConnectURL: Equatable {
return nil return nil
} }
let lud16 = items.first(where: { qi in qi.name == "lud16" })?.value
let keypair = FullKeypair(pubkey: our_pk, privkey: secret) let keypair = FullKeypair(pubkey: our_pk, privkey: secret)
self = WalletConnectURL(pubkey: pk, relay: relay_url, keypair: keypair) self = WalletConnectURL(pubkey: pk, relay: relay_url, keypair: keypair, lud16: lud16)
} }
init(pubkey: String, relay: RelayURL, keypair: FullKeypair) { init(pubkey: String, relay: RelayURL, keypair: FullKeypair, lud16: String?) {
self.pubkey = pubkey self.pubkey = pubkey
self.relay = relay self.relay = relay
self.keypair = keypair self.keypair = keypair
self.lud16 = lud16
} }
} }