Files
breez-sdk-docs/src/guide/lnurl_pay.md
Roei Erez 7d65a9c1ff Merge branch 'multi-lang-tabs' of github.com:breez/breez-sdk-docs into multi-lang-tabs
* 'multi-lang-tabs' of github.com:breez/breez-sdk-docs:
  Remove sdkServices as its managed by the native module
  Add React Native examples
  Indentation fixes
2023-07-03 19:38:37 +03:00

2.3 KiB

LNURL-Pay

Usage

Rust
// Endpoint can also be of the form:
// lnurlp://domain.com/lnurl-pay?key=val
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
let lnurl_pay_url = "lightning@address.com";

if let Ok(LnUrlPay{data: pd}) = parse(lnurl_pay_url).await {
    // TODO Show payment details in UI, read user input
    let amount_msat = pd.min_sendable;
    let comment = "Test payment".to_string();
    
    sdk.lnurl_pay(amount_msat, Some(comment), pd).await?;
}
Swift
// Endpoint can also be of the form:
// lnurlp://domain.com/lnurl-pay?key=val
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
let lnurlPayUrl = "lightning@address.com";
do {
  let inputType = try parseInput(s: lnurlPayUrl)
    if case .lnUrlPay(let data) = inputType {
    let amountSats = data.minSendable;
    try sdk.payLnurl(reqData: data, amountSats: amountSats, comment: "comment")
  }
} catch {
    // handle error
}
React Native
// Endpoint can also be of the form:
// lnurlp://domain.com/lnurl-pay?key=val
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
let lnurlPayUrl = "lightning@address.com";

try {
    const input = await parseInput(lnurlAuthUrl)
    if (input.type === InputType.LNURL_PAY) {
        const amountSats = input.minSendable;
        const result = await payLnurl(input.data, amountSats, "comment")
    }    
} catch (error) {
    console.log(error)
}

Supported Specs

  • LUD-01 LNURL bech32 encoding
  • LUD-06 payRequest spec
  • LUD-16 LN Address
  • LUD-17 Support for lnurlp prefix with non-bech32-encoded LNURL URLs