Skip to content

Implement breez lightning address#602

Open
Nodirbek75 wants to merge 18 commits into
mainfrom
feat/breez-lightning-address
Open

Implement breez lightning address#602
Nodirbek75 wants to merge 18 commits into
mainfrom
feat/breez-lightning-address

Conversation

@Nodirbek75
Copy link
Copy Markdown
Contributor

No description provided.

@Nodirbek75 Nodirbek75 marked this pull request as ready for review May 22, 2026 15:07
@Nodirbek75 Nodirbek75 requested a review from islandbitcoin May 22, 2026 15:08
@Nodirbek75 Nodirbek75 self-assigned this May 22, 2026
@linear
Copy link
Copy Markdown

linear Bot commented May 22, 2026

ENG-387

ENG-165

ENG-166

@islandbitcoin
Copy link
Copy Markdown
Contributor

islandbitcoin commented May 22, 2026

## Summary

This PR fixes the BTC/Breez external-wallet setup flow and the main manual-send edge case found during simulator testing.

### Fixes included

- Stabilized Breez external wallet setup: (352619d935a32285acb4d7b3e51e275d79365283)
  - waits for `updateExternalWallet(input: { lnurlp })` instead of treating it as fire-and-forget
  - stores the backend-returned BTC/external `walletId`
  - retries registration when `me.username` becomes available after Breez SDK init
  - prevents duplicate registration attempts
  - shows loading/error/retry states instead of surfacing raw `missing walletIds`

- Fixed manual username sends for USD → BTC-default recipients: (f0acdf2008981d0e67fc7e8d82480ef676293f1e)
  - when a sender’s default wallet is USD and the receiver’s default wallet is BTC/Breez, bare username entry now routes through LNURL (`username@<lnAddressHostname>`) instead of the USD intraledger mutation
  - USD → USD username sends still use the existing intraledger path
  - full lightning address sends continue to use the existing LNURL path

### User testing covered

Tested with:

- Pixel 9 Android simulator
- iPhone 17 simulator

Passing cases:

- External wallet pays Flash user with USD default
- External wallet pays Flash user with BTC default
- Flash BTC default pays Flash USD default
- Flash BTC default pays Flash BTC default
- Flash USD default pays Flash USD default
- Full lightning address works for USD → BTC-default recipient
- Manual bare username now works for USD → BTC-default recipient

### Known follow-up

There is still a separate edge case for non-manual entry points: QR/NFC/card flows that resolve to a bare Flash username may still route through the shared intraledger parser and fail for USD sender → BTC-default receiver.

Tracked separately in Linear: [ENG-399](https://linear.app/island-bitcoin/issue/ENG-399)

Copy link
Copy Markdown
Contributor

@islandbitcoin islandbitcoin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bugs fixes applied, ACK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement] - Option to send to BTC wallet via lightning address For having Default BTC Wallet, enable Breez-SDK LNURL on PayCode Tab

3 participants