Skip to content

fix: avoid msat truncation when paying invoices with built-in amounts#512

Open
ben-kaufman wants to merge 3 commits intomasterfrom
fix/msat-invoice-precision
Open

fix: avoid msat truncation when paying invoices with built-in amounts#512
ben-kaufman wants to merge 3 commits intomasterfrom
fix/msat-invoice-precision

Conversation

@ben-kaufman
Copy link
Copy Markdown
Contributor

Summary

  • Bump bitkit-core to v0.1.56 which rounds up sub-satoshi invoice amounts (ceiling division instead of floor)
  • Stop overriding the amount for invoices that already have one — pass sats: nil so LDK uses the invoice's native msat precision instead of our truncated sats value converted back to msat
  • Only pass sats for zero-amount invoices where the user specifies the amount

Test plan

  • E2E: pay invoices created with lnd.addInvoice({ valueMsat }) using amounts 222538, 222222, 500500 msat
  • Verify zero-amount invoice flow still works
  • Verify LNURL pay flow still works
  • Verify quickpay flow still works

Depends on synonymdev/bitkit-core#85
Closes #511

🤖 Generated with Claude Code

Bump bitkit-core to v0.1.56 which rounds up sub-satoshi invoice amounts.

Additionally, stop overriding the amount for invoices that already have
one. Pass sats: nil so LDK uses the invoice's native msat precision
instead of our truncated sats value converted back to msat. Only pass
sats for zero-amount invoices where the user specifies the amount.

Closes #511
@claude

This comment has been minimized.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@claude

This comment has been minimized.

@claude
Copy link
Copy Markdown

claude bot commented Apr 2, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

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.

[Bug]: msat-precision invoices fail to send (regular BOLT11 + LNURL pay/withdraw)

2 participants