fix: require accepted onchain broadcasts - #1225
Draft
ovitrif wants to merge 6 commits into
Draft
Conversation
ovitrif
force-pushed
the
codex/1211-onchain-send-result
branch
from
September 7, 2026 16:22
c095d77 to
b8ed182
Compare
ovitrif
force-pushed
the
codex/1211-onchain-send-result
branch
2 times, most recently
from
September 8, 2026 13:05
537ae0f to
a86da21
Compare
ovitrif
force-pushed
the
codex/1211-onchain-send-result
branch
from
September 8, 2026 15:18
a86da21 to
66f0fff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1211
This PR keeps Android's on-chain success path conditional on an accepted transaction and blocks fresh spending while a prior broadcast remains unresolved.
Description
com.synonym:ldk-node-android:0.7.0-rc.67binding generated from LDK Improve Wallet and LDK node business logic handling #113 head6b60fe0; no release or remote artifact contains this final API yet.Txidreturn.proofDataempty.Pendingupdates the canonical lineage without delivery,Acceptedqueues only the canonical proof, andAbandonedremoves the correlated proof without delivery.Preview
2026-09-05-android1225-accepted.mp4
2026-09-05-android1225-rejected.mp4
QA Notes
Manual Tests
66f0fffaused a fresh Android E2E identity and shared regtest fixture for an accepted 1,000-sat send:23a1ef7f277a777a7be6b2ab1b40c54e2e3e88f8d34e54a4d2b9ccd3a8bc3528entered the mempool; the success UI and sent activity showed it.66f0fffaused deterministic Electrum proxy rejection for a 1,000-sat send: the proxy injected terminal-26 non-finalforbbd23b0a9de52acb61ef55d3e1ea4f14f98a964932e93c255a8ee26756f6f191, which returnedOnchainTxBroadcastRejected; success UI and a second sent activity were absent, and the mempool was unchanged.Automated Checks
LightningServiceTest.ktcovers pending guards, pending-query failure, concurrent send serialization, and a later send after a conclusive failure.PaykitPaymentProofRepoTest.ktcovers durable association, canonical replacement lineage, null and failed outcome queries,Pending,Accepted,Abandoned, and acknowledgment retry without duplicate proof delivery.AppViewModelSendFlowTest.ktcovers current unknown proof association, pre-existing pending cleanup, persistent guidance, and absence of success.TransferViewModelTest.ktcovers acceptance-unknown guidance in LSP funding.66f0fffapassedjust compile,just test, andjust lintusing the superseded local rc.67 artifact and was installed on a fresh Android emulator.Dependency
Blocked from merge until ldk-node#113 publishes the regenerated Android binding from head
6b60fe0df32362d6c6604393071110e94a2058b8. No release or tag exists, and the prior remote rc.67 artifact is unsuitable. This PR uses the exact generatedBroadcastOutcomeAPI without inferring acceptance from payment details or submitting null-proof records.