Conversation
This comment has been minimized.
This comment has been minimized.
|
Pushed f148c15: Esplora now requires the exact txid acknowledgement using the existing configured client, and current-thread Tokio callers return a pre-dispatch error before wallet preparation. This addresses the two current broadcast-boundary findings. Both regressions failed on the old source and passed on the fix. Six focused tests passed, including 10 real HTTP reply cases, unchanged wallet/mempool state for both unsupported-runtime calls, and funded fixed/send-all acceptance across all three backends. Public API shapes and the legacy queue are unchanged. This remains draft: rc67 is immutable and lacks these corrections. Corrected artifacts and affected Android/iOS consumer validation are required before readiness. |
|
I pushed 773792d with the rc68 version and matching Swift checksum. Canonical artifacts include the broadcast response and runtime fixes at f148c15. The build, native Swift/Kotlin smokes, ABI/signature/hash checks, Android 16 KB alignment and symbol checks passed. The previous rc67 remains unchanged. Remote rc68 publication and repeated affected consumer checks are still pending, so this PR remains draft. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
ben-kaufman
left a comment
There was a problem hiding this comment.
One optional simplification: Rejected and Unknown have the same retry contract here. Both retain the transaction ID and must not authorize another payment. Could we collapse them into a single uncertain result and keep the backend refusal details in logs? That would remove the backend-specific non-final parsing and reduce the generated binding surface. I don't think this blocks the PR.
@ben-kaufman Agreed: the retry contract is the same. |
Closes #112
Refs:
Description
Source fixes and published
0.7.0-rc.68canonical artifacts are verified. Both apps now consume matching distributed packages and pass the affected tests and current fixed-amount/send-all native journeys.OnchainSendResult::{Accepted, Rejected, Unknown}with the locally computed transaction ID, so callers can distinguish backend acknowledgement from transaction creation.0.7.0-rc.68; canonical regeneration leaves tracked binding signatures unchanged.Contract and limitations
Erris limited to a failure that proves this invocation never initiated broadcast. Current-thread Tokio callers receivePaymentSendingFailedbefore wallet preparation. Once submission may have started, the returned report carries the transaction ID.Acceptedmeans the configured backend acknowledged this transaction; it does not guarantee confirmation or propagation.Rejectedreports a recognized refusal response. Earlier delivery may still have happened, so neither rejection nor an unknown result authorizes creating another payment.Out of Scope
QA Notes
Manual Tests
Automated Checks
integration_tests_rust.rs— funded direct fixed-amount/send-all across Electrum, Esplora and bitcoind, exactly one submission, dead-backend unknown result, pre-dispatch stopped-node error, and the legacy txid limitation.electrum.rs— actual TCP refusal responses cannot become acceptance after a successful task join; a timed-out blocking RPC may remain in flight and returns unknown.bitcoind.rs,esplora.rs,electrum.rs— acceptance, mismatched transaction IDs, verified non-final responses and conservative unknown classification.0.7.0-rc.67; canonical./bindgen.sh, Swift and compiled Kotlin native initialization, both new stopped-node methods, framework slices, all three Android ABI checks and 16 KB alignment passed.Release
1955a179fdb6acc5159ead68225dd27029d2f2a74c4b8b13164038eb9f95462f, matchingPackage.swiftand the uploaded asset digest.com.synonym:ldk-node-android:0.7.0-rc.68was published from the same verified canonical build. AAR SHA-256:0cee2079291260aea12bf60ac9c8af8f459d9f24c3327d4cb021e5686035aa2f. The existing local Gradle publishing task exited successfully.toolspackage unavailable). The release assets and Maven package were published through the existing local route from the verified canonical build; this is not a successful hosted workflow run.