Skip to content

feat: Add receive address index APIs#81

Merged
ben-kaufman merged 3 commits into
mainfrom
codex-receive-address-index-apis
May 12, 2026
Merged

feat: Add receive address index APIs#81
ben-kaufman merged 3 commits into
mainfrom
codex-receive-address-index-apis

Conversation

@ben-kaufman
Copy link
Copy Markdown

Summary

  • Add AddressInfo and KeychainKind public wrapper types.
  • Add receive address metadata APIs on OnchainPayment, including typed generation, single-index peek, batch peek, and receive-address reveal-through-index.
  • Add keychain-aware BDK aggregate helpers and validation for non-hardened derivation index ranges.
  • Regenerate Swift, Kotlin, Python, and native binding artifacts for 0.7.0-rc.38.

Validation

  • cargo fmt
  • cargo fmt --check
  • git diff --check
  • cargo test -p bdk-wallet-aggregate --lib
  • cargo test --lib wallet::tests::derivation
  • cargo test --features uniffi --lib
  • swift package compute-checksum bindings/swift/LDKNodeFFI.xcframework.zip matched Package.swift

@ben-kaufman ben-kaufman marked this pull request as ready for review May 11, 2026 23:14
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread crates/bdk-wallet-aggregate/src/lib.rs
Comment thread crates/bdk-wallet-aggregate/src/lib.rs
@ovitrif ovitrif changed the title [codex] Add receive address index APIs feat: Add receive address index APIs May 12, 2026
Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread Package.swift Outdated
Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread Package.swift
@ben-kaufman ben-kaufman requested a review from ovitrif May 12, 2026 13:05
Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@ben-kaufman ben-kaufman merged commit c3593ae into main May 12, 2026
5 of 6 checks passed
@ben-kaufman ben-kaufman deleted the codex-receive-address-index-apis branch May 12, 2026 15:34
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.

2 participants