feat: Add receive address index APIs#81
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d096cd3f10
ℹ️ 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".
ovitrif
left a comment
There was a problem hiding this comment.
Thanks, this is a good API addition overall: the source now validates hardened derivation indexes, caps batch peeks, preserves cursor semantics, and has focused tests for the new aggregate-wallet behavior.
I found one release-blocking issue before I can approve: v0.7.0-rc.38 currently points at d096cd3, while this PR head is 40d6b22. The commits after the tag change Rust behavior (Validate address derivation ranges) but the tracked native artifacts and the published Swift xcframework release asset appear to have been built from the older tag. Please rebuild/regenerate artifacts from the current head, move/recreate the release tag or bump to a new rc, and add the release link to the PR description.
Local verification passed: cargo fmt --check, git diff --check origin/main...HEAD, cargo test -p bdk-wallet-aggregate --lib, cargo test --lib wallet::tests::derivation, and cargo test --features uniffi --lib (with pre-existing UniFFI unused-import warnings). GitHub claude-review is failing due an action symlink/internal error, not due code review findings.
ovitrif
left a comment
There was a problem hiding this comment.
Thanks for the update. The code path itself still looks good and the local checks pass, but I still cannot approve the version-bump/release state yet.
The PR now points Cargo.toml, Package.swift, Kotlin, Python, and CHANGELOG at 0.7.0-rc.39, but v0.7.0-rc.39 is not pushed as a tag and gh release view v0.7.0-rc.39 returns no release. The PR description also still says the regenerated artifacts are for 0.7.0-rc.38 and does not include the required release link.
Local verification on ecbc0a7: cargo fmt --check, git diff --check origin/main...HEAD, cargo test -p bdk-wallet-aggregate --lib, cargo test --lib wallet::tests::derivation, and cargo test --features uniffi --lib all pass. The UniFFI test target still has the existing unused-import warnings. GitHub claude-review is still failing independently.
There was a problem hiding this comment.
LGTM. The code and regenerated bindings look good: the new address metadata APIs are covered, hardened indexes are rejected, batch peeks are capped, and cursor/reveal behavior has focused tests. Local verification on ecbc0a7: cargo fmt --check, git diff --check origin/main...HEAD, cargo test -p bdk-wallet-aggregate --lib, cargo test --lib wallet::tests::derivation, and cargo test --features uniffi --lib all passed.
Please still complete the release workflow before merge as planned: publish v0.7.0-rc.39 from this PR head, upload/verify LDKNodeFFI.xcframework.zip against the Package.swift checksum, and update the PR body to mention rc.39 plus the release link.
Summary
AddressInfoandKeychainKindpublic wrapper types.OnchainPayment, including typed generation, single-index peek, batch peek, and receive-address reveal-through-index.0.7.0-rc.38.Validation
cargo fmtcargo fmt --checkgit diff --checkcargo test -p bdk-wallet-aggregate --libcargo test --lib wallet::tests::derivationcargo test --features uniffi --libswift package compute-checksum bindings/swift/LDKNodeFFI.xcframework.zipmatchedPackage.swift