Uh oh!
There was an error while loading. Please reload this page.
fix: wait for on-chain broadcast results - #113
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:92486e5695
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:431c6f9f29
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Uh oh!
There was an error while loading. Please reload this page.
ovitrif
commented
Sep 2, 2026
@codex review |
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…adcast-result # Conflicts: # CHANGELOG.md # Cargo.toml # Package.swift # bindings/kotlin/ldk-node-android/gradle.properties # bindings/kotlin/ldk-node-android/lib/src/main/jniLibs/arm64-v8a/libldk_node.so # bindings/kotlin/ldk-node-android/lib/src/main/jniLibs/armeabi-v7a/libldk_node.so # bindings/kotlin/ldk-node-android/lib/src/main/jniLibs/x86_64/libldk_node.so # bindings/kotlin/ldk-node-jvm/gradle.properties # bindings/kotlin/ldk-node-jvm/lib/src/main/resources/darwin-aarch64/libldk_node.dylib # bindings/kotlin/ldk-node-jvm/lib/src/main/resources/darwin-x86-64/libldk_node.dylib # bindings/python/pyproject.toml # src/chain/electrum.rs
| [Throws=NodeError] | ||
| Txid rebroadcast_transaction([ByRef]Txid txid); | ||
| [Throws=NodeError] | ||
| sequence<PendingBroadcastInfo> list_pending_broadcasts(); |
There was a problem hiding this comment.
Reminder to run ./bindgen.sh before merge. The UDL now returns PendingBroadcastInfo, but the checked-in Swift, Kotlin, and Python bindings still return Txid, so they need to be regenerated together with the native artifacts and the Package.swift checksum.
| } | ||
| } | ||
| for txid in wallet.take_locally_applied_unconfirmed_txids() { |
There was a problem hiding this comment.
note_locally_applied_unconfirmed runs before backend dispatch, but these markers are emitted unconditionally. In particular, reject_rbf_broadcast does not remove the rejected replacement marker, and a transaction confirmed before the first sync can emit Confirmed followed by Received. Could we clear the marker on RBF rejection and skip absent or already-confirmed transactions here?
| original_tx, | ||
| tx.clone(), | ||
| )?; | ||
| self.write_broadcast_intent(&replacement_intent)?; |
There was a problem hiding this comment.
write_broadcast_intent runs before next_broadcast_timestamp. If an existing lineage contains u64::MAX - 1, the timestamp call fails after the new active replacement has been persisted but before BDK records it. Restart then fails while reapplying the missing active transaction. Could we calculate the timestamp before persisting the replacement, or roll the intent back, and add an RBF restart test for this boundary?
Closes#112
Summary
0.7.0-rc.67; PR fix: sigabrt runtime teardown #111 reservesrc.66.Preview
N/A — no user-visible changes.
QA Notes
rebroadcast_transactionfor that exact ID; they must not create a second payment.list_pending_broadcastsenumerates unresolved IDs.abandon_pending_broadcastis valid only after the caller proves the entire payment lineage absent from mempool and chain.NodeErrorcases no longer carry the legacy generatedmessagevalue. The four broadcast-result cases carrytxid.NodeExceptioncases now have empty generated messages. The four broadcast-result cases carrytxid.Validation
550b99177102ba1bc5d01f9c41160765993a3520; local HEAD and upstream match; worktree clean.cargo fmt --checkandgit diff --check: passed.cargo build --all-targets --locked: passed. Existing target-name, unused-import, and unused-variable warnings remain outside this change.cargo test --lib: 131 passed.cargo test --features uniffi --lib: 141 passed; only the repository's existing UniFFI warnings were emitted.cargo test --doc: 13 passed.cargo test --features uniffi --doc: 13 passed.cargo test --test multi_address_types_tests rbf::test_rbf_cross_wallet_transaction -- --exact --nocapture: passed against realbitcoindandelectrs.onchain_transaction_evicted_event: accepted-send indexing and pending-intent assertions passed; the final eviction injection is guarded and skipped because the bundled Bitcoin Core lacksremovetx.On-chain transaction signing failedpath and wait on both base03ccac798aeb907c6dda367fa4c8af6e3eaa54faand this branch../bindgen.sh: passed the JVM build/publish graph, Python generation, Swift XCFramework assembly, Android three-ABI build, DWARF/strip validation, 16 KiB alignment validation, native-debug-symbol packaging, and Maven Local publication.d6ccac3a6a013fbb5313d49faf4d3373b14053ede91923e9a1cd4f3230c6848c;Package.swiftmatches.36ce1902372a5e6be38b93debce365445c878efa646c7ffc0697150648ad2f63; Maven Local and the bindgen output match byte-for-byte.Consumer validation
e72a87566f672c14f4b7b5a32f72cb6615262270compiled against the rc.67 API-equivalent XCFramework before the internal timestamp-only follow-up; final bindgen regenerated only native runtime artifacts and left generated Swift unchanged. After the expected enum-payload compatibility adaptation, Accepted, rejected, failed, timed-out, not-dispatched, maximum-send, and wrapped-error tests passed: 7 passed, 0 failed, 0 skipped.e733f9c4ed4dbed701a640fe58c3799717c77b0bcompiled against the rc.67 API-equivalent Maven AAR before the internal timestamp-only follow-up; final bindgen regenerated only native runtime artifacts and left generated Kotlin unchanged. Repository and UI accepted/rejected send-path tests passed: 5 passed.24b2dd80ebdca0610fdc2e90b589b810bd9fd2781cc33de8a55b63e6020b44f9and Android txbd2fb7e01eb49fefc70fc46be9466d3f209999c1668cdd9ec2aeaac1dfab703areached mempool/activity/success; rejected iOS txfeeb000e379dc52d1c140f3fd8a01edfa7dfb29f12a8e670ab1b99a7a33f7b7aand Android tx481280340d1e5507079c771de07ab8d0c13ace14203f6e0d508c9250ab09726bpropagated RPC-26, stayed absent from mempool/chain/activity, and did not show success.Release
rc.67may be released from the fully pushed PR head only after a non-author approval, all required checks, and PR fix: sigabrt runtime teardown #111'src.66ordering are resolved. Add the release link here before merge.