refactor: Convert uint256 to Txid #33116

pull marcofleon wants to merge 8 commits into bitcoin:master from marcofleon:2025/07/txid-type-safety changing 74 files +287 −276
  1. marcofleon commented at 1:45 pm on August 1, 2025: contributor

    This is the final leg of the type safety refactor.

    All of these changes are straightforward uint256 –> Txid along with any necessary explicit conversions. Also, transaction_identifier.h is moved to primitives in the last commit, as Txid and Wtxid become fundamental types after this PR.

  2. DrahtBot added the label Refactoring on Aug 1, 2025
  3. DrahtBot commented at 1:45 pm on August 1, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33116.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #33094 (refactor: unify container presence checks by l0rinc)
    • #33066 (p2p: never check tx rejections by txid by glozow)
    • #33042 (refactor: inline constant return values from dbwrapper write methods by l0rinc)
    • #32998 (Bump SCRIPT_VERIFY flags to 64 bit by ajtowns)
    • #32941 (p2p: TxOrphanage revamp cleanups by glozow)
    • #32844 (RPC/txoutproof: Support including (and verifying) proofs of wtxid by luke-jr)
    • #32497 (merkle: pre‑reserve leaves to prevent reallocs with odd vtx count by l0rinc)
    • #31682 ([IBD] specialize CheckBlock’s input & coinbase checks by l0rinc)
    • #31308 (ci, iwyu: Treat warnings as errors for specific directories by hebasto)
    • #30442 ([IBD] precalculate SipHash constant salt calculations by l0rinc)
    • #30079 (Fee Estimation: Ignore all transactions that are CPFP’d by ismaelsadeeq)
    • #29641 (scripted-diff: Use LogInfo over LogPrintf [WIP, NOMERGE, DRAFT] by maflcko)
    • #28676 (Cluster mempool implementation by sdaftuar)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  4. marcofleon force-pushed on Aug 1, 2025
  5. DrahtBot added the label CI failed on Aug 1, 2025
  6. DrahtBot commented at 1:51 pm on August 1, 2025: contributor

    🚧 At least one of the CI tasks failed. Task lint: https://github.com/bitcoin/bitcoin/runs/47204972085 LLM reason (✨ experimental): The CI failure is caused by a missing include guard in the file src/primitives/transaction_identifier.h, detected during a lint check.

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

  7. Clean up `FindTxForGetData`
    Adds back a comment that was unintentionally deleted in
    the GenTxid refactor.
    554e67ebc8
  8. refactor: Convert RPCs and `merkleblock` from uint256 to Txid 33373a4e4f
  9. refactor: Convert `mini_miner` from uint256 to Txid d481fd2335
  10. mempool, refactor: Convert uint256 to Txid fc7a412ab5
  11. policy, refactor: Convert uint256 to Txid d0fbe42322
  12. refactor: Convert remaining instances from uint256 to Txid
    These remaining miscellaneous changes were identified by commenting out
    the `operator const uint256&` conversion and the `Compare(const uint256&)`
    method from `transaction_identifier.h`.
    4ad4e7fda4
  13. Remove implicit uint256 conversion and comparison bfef804531
  14. refactor: Move `transaction_identifier.h` to primitives
    Moves the file from `src/util` to `src/primitives`. Now that the
    refactor is complete, Txid and Wtxid are fundamental types, so it
    makes sense for them to reside in `src/primitives`.
    92c5e147d9
  15. marcofleon force-pushed on Aug 1, 2025
  16. DrahtBot removed the label CI failed on Aug 1, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-08-04 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me