Skip to content

Commit 166861f

Browse files
authored
Merge pull request #58 from tnull/2026-02-switch-to-bitreq-url
Switch to `bitreq::Url`
2 parents ad63805 + 4dea2e8 commit 166861f

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

Cargo.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@ build = "build.rs"
1515

1616
[features]
1717
default = ["lnurl-auth", "sigs-auth"]
18-
lnurl-auth = ["dep:bitcoin", "dep:url", "dep:serde", "dep:serde_json"]
18+
lnurl-auth = ["dep:bitcoin", "dep:serde", "dep:serde_json"]
1919
sigs-auth = ["dep:bitcoin"]
2020

2121
[dependencies]
2222
prost = "0.11.6"
23-
bitreq = { version = "0.3", default-features = false, features = ["async-https"] }
23+
bitreq = { version = "0.3.4", default-features = false, features = ["async-https"] }
2424
tokio = { version = "1", default-features = false, features = ["time"] }
2525
rand = "0.8.5"
2626
async-trait = "0.1.77"
2727
bitcoin = { version = "0.32.2", default-features = false, features = ["std", "rand-std"], optional = true }
28-
url = { version = "2.5.0", default-features = false, optional = true, features = ["std"] }
2928
base64 = { version = "0.22", default-features = false, features = ["std"]}
3029
serde = { version = "1.0.196", default-features = false, features = ["serde_derive"], optional = true }
3130
serde_json = { version = "1.0.113", default-features = false, features = ["std"], optional = true }

src/headers/lnurl_auth_jwt.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ use bitcoin::hashes::sha256;
88
use bitcoin::hashes::{Hash, HashEngine, Hmac, HmacEngine};
99
use bitcoin::secp256k1::{Message, Secp256k1, SignOnly};
1010
use bitcoin::PrivateKey;
11+
use bitreq::Url;
1112
use serde::Deserialize;
1213
use std::collections::HashMap;
1314
use std::sync::RwLock;
1415
use std::time::{Duration, SystemTime};
15-
use url::Url;
1616

1717
// Derivation index of the hashing private key as defined by LUD-05.
1818
const HASHING_DERIVATION_INDEX: u32 = 0;
@@ -195,7 +195,7 @@ fn sign_lnurl(
195195
error: format!("invalid lnurl: {}", lnurl_str.escape_debug()),
196196
};
197197
let mut lnurl = Url::parse(lnurl_str).map_err(|_| invalid_lnurl())?;
198-
let domain = lnurl.domain().ok_or(invalid_lnurl())?;
198+
let domain = lnurl.base_url();
199199
let k1_str = lnurl
200200
.query_pairs()
201201
.find(|(k, _)| k == K1_QUERY_PARAM)
@@ -218,10 +218,11 @@ fn sign_lnurl(
218218
let sig = engine.sign_ecdsa(&message, &linking_private_key.inner);
219219

220220
// Compose LNURL with signature and linking public key.
221-
lnurl
222-
.query_pairs_mut()
223-
.append_pair(SIG_QUERY_PARAM, &sig.serialize_der().to_string())
224-
.append_pair(KEY_QUERY_PARAM, &linking_public_key.to_string());
221+
let serialized_sig = sig.serialize_der().to_string();
222+
let serialized_pubkey = linking_public_key.to_string();
223+
let query_params =
224+
[(SIG_QUERY_PARAM, serialized_sig.as_str()), (KEY_QUERY_PARAM, serialized_pubkey.as_str())];
225+
lnurl.append_query_params(query_params.into_iter());
225226
Ok(lnurl.to_string())
226227
}
227228

0 commit comments

Comments
 (0)