Skip to content

api: Stop exposing Bitcoin Core descriptor records #63

Description

@BenWestgate

Follow-up to the review question on #12 and the v1 API-boundary pass.

core_descriptors(...) is a legacy public adapter from before Bitcoin Core became the sole EC/HD-key integration. It is still exported in codex32.__all__ on current reviewability-v1, while production EC/public-derivation work lives behind _bitcoin_core.py.

#7 has since moved wallet initialization to Bitcoin Core's Core-native HD-key/descriptor setup and intentionally limits that v1 path to account 0. #68 separately tracks nonzero accounts when Bitcoin Core exposes the needed native selector. Therefore this issue must not preserve the old arbitrary ms32 wallet --account implementation by replaying Python private-descriptor construction.

Acceptance:

  • remove core_descriptors from package-level codex32.__all__ and from supported public documentation;
  • remove the unused public-deriver abstraction/branch from wallet.py;
  • keep any descriptor/checksum helpers still needed by the current Core adapter/tests/tools private and explicitly underscored;
  • preserve Wallet: use Core for setup and remove test crypto deps #7's Core-native account-0 initialization and do not reintroduce the pre-Wallet: use Core for setup and remove test crypto deps #7 import-record initialization path;
  • leave nonzero Core-native account support to wallet: Support nonzero accounts with Core-native setup #68;
  • update installed-wheel/public-API checks so no supported external interface depends on descriptor-record construction;
  • keep master_xprv unchanged unless separately reviewed;
  • rerun the focused public-API/Core tests and the real-Core fixture where relevant after the final refresh.

#64 is the reviewed focused implementation, but its historical patch predates #7 and contains an obsolete _bitcoin_core.py hunk. Refresh #64 after the runtime stack settles and replay only the API-surface cleanup that still matches current code.

This is an API-surface cleanup, not a release-budget refactor or a reason to undo the Core-native initialization boundary.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: apiPublic and supported Python API boundaries.area: wallet/coreWallet integration and Bitcoin Core boundaries.gate: adversarial reviewResolve, merge, or explicitly defer before the next full adversarial review.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions