lnurl

MIT licensed lnurl on crates.io lnurl on docs.rs

Documentation

Readings about lnurl

Progress

Usage

You will certainly need some crates like: toml bech32 = "0.7.1" lightning-invoice = "0.2.0" serde = { version = "1.0.93", features =["derive"]} serde_json = "1.0.39"

Create a bech32 QRCode: ```rust use bech32::ToBase32; use image::Luma; use qrcode::QrCode;

pub fn createlnurlqrcode(url: &str, path: &str) { let encoded = bech32::encode("lnurl", url.asbytes().tobase32()).unwrap(); let code = QrCode::new(encoded.to_string()).unwrap(); let image = code.render::>().build(); image.save(path).unwrap(); } ```

Use serde_json to encode your LNRUL object in the HTTP response body of your server.

rust if let Err(_) = invoice.parse::<lightning_invoice::SignedRawInvoice>() { let res = serde_json::to_string( &lnurl::Response::Error{reason: "your invoice is wrong".to_string()} ).unwrap(); return Ok(Response::builder() .status(StatusCode::BAD_REQUEST) .header(header::CONTENT_TYPE, "application/json") .body(Body::from(res)).unwrap()) }

See lnurl-examples