Skip to content

backport: Merge bitcoin#28903, 28924, 29056, 28455, 29037#7123

Draft
vijaydasmp wants to merge 5 commits intodashpay:developfrom
vijaydasmp:Feb_2026_03
Draft

backport: Merge bitcoin#28903, 28924, 29056, 28455, 29037#7123
vijaydasmp wants to merge 5 commits intodashpay:developfrom
vijaydasmp:Feb_2026_03

Conversation

@vijaydasmp
Copy link

bitcoin backports

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

⚠️ Potential Merge Conflicts Detected

This PR has potential conflicts with the following open PRs:

Please coordinate with the authors of these PRs to avoid merge conflicts.

@vijaydasmp vijaydasmp force-pushed the Feb_2026_03 branch 2 times, most recently from 42a977c to 351653d Compare February 4, 2026 06:36
@vijaydasmp vijaydasmp changed the title backport: Merge bitcoin#28903, 28924, 28958 backport: Merge bitcoin#28903, 28924, 29056 Feb 4, 2026
@vijaydasmp vijaydasmp changed the title backport: Merge bitcoin#28903, 28924, 29056 backport: Merge bitcoin#28903, 28924, 29056, 28455, 29037 Feb 4, 2026
achow101 and others added 5 commits February 4, 2026 23:02
…opyable

705e3f1 refactor: Make CTxMemPoolEntry only explicitly copyable (TheCharlatan)

Pull request description:

  This has the goal of prohibiting users from accidentally creating runtime failures, e.g. by interacting with iterator_to with a copied entry. This was brought up here:  bitcoin#28886 (comment).

  CTxMemPoolEntry is already implicitly not move-constructable. So be explicit about this and use a std::list to collect the values in the policy_estimator fuzz test instead of a std::vector.

ACKs for top commit:
  maflcko:
    ACK 705e3f1 🌯
  achow101:
    ACK 705e3f1
  ajtowns:
    ACK 705e3f1
  ismaelsadeeq:
    ACK 705e3f1

Tree-SHA512: 62056905c679c919d00f9ae065ed66ac986e7e7062015aea542843d8deecda57104d7a68d002f7b20afa3164f8e9215d2d2d002c167224129540e3b1bd0712cc
…face from arith_uint256

fa63f16 test: Add uint256 string parse tests (MarcoFalke)
facf629 refactor: Remove unused and fragile string interface from arith_uint256 (MarcoFalke)

Pull request description:

  The string interface (`base_uint(const std::string&)`, as well as `base_uint::SetHex`) is problematic for many reasons:

  * It is unused (except in test-only code).
  * It is redundant with the `uint256` string interface: `std::string -> uint256 -> UintToArith256`.
  * It is brittle, because it inherits the brittle `uint256` string interface, which is brittle due to the use of `c_str()` (embedded null will be treated as end-of string), etc ...

  Instead of fixing the interface, remove it since it is unused and redundant with `UintToArith256`.

ACKs for top commit:
  ajtowns:
    ACK fa63f16
  TheCharlatan:
    ACK fa63f16

Tree-SHA512: a95d5b938ffd0473361336bbf6be093d01265a626c50be1345ce2c5e582c0f3f73eb11af5fd1884019f59d7ba27e670ecffdb41d2c624ffb9aa63bd52b780e62
… messages

fae5263 Allow std::byte C-style array serialization (MarcoFalke)
fa898e6 refactor: Print verbose serialize compiler error messages (MarcoFalke)

Pull request description:

  Currently, trying to serialize an object that can't be serialized will fail with a short error message. For example, the diff and the error message:

  ```diff
  diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp
  index d75eb49..773f49845b 100644
  --- a/src/test/serialize_tests.cpp
  +++ b/src/test/serialize_tests.cpp
  @@ -62,6 +62,8 @@ public:

   BOOST_AUTO_TEST_CASE(sizes)
   {
  +    int b[4];
  +    DataStream{} << b << Span{b};
       BOOST_CHECK_EQUAL(sizeof(unsigned char), GetSerializeSize((unsigned char)0));
       BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0)));
       BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0)));
  ```

  ```
  ./serialize.h:765:6: error: member reference base type 'const int[4]' is not a structure or union
    765 |     a.Serialize(os);
        |     ~^~~~~~~~~~
  ```
  ```
  ./serialize.h:277:109: error: no matching function for call to 'UCharCast'
    277 | template <typename Stream, typename B> void Serialize(Stream& s, Span<B> span) { (void)/* force byte-type */UCharCast(span.data()); s.write(AsBytes(span)); }
        |                                                                                                             ^~~~~~~~~
  ```

  This is fine. However, it would be more helpful for developers and more accurate by the compiler to explain why each function is not selected.

  Fix this by using C++20 concepts where appropriate.

ACKs for top commit:
  ajtowns:
    reACK fae5263
  achow101:
    ACK fae5263
  TheCharlatan:
    Re-ACK fae5263

Tree-SHA512: e03a684ccfcc5fbcad7f8a4899945a05989b555175fdcaebdb113aff46b52b4ee7b467192748edf99c5c348a620f8e52ab98bed3f3fca88280a64dbca458fe8a
fa1d495 refactor: share and use `GenerateRandomKey` helper (Sebastian Falbesoner)

Pull request description:

  Making the `GeneratingRandomKey` helper (recently introduced in PR bitcoin#28433, commit b6934fd) available to other modules via key.{h.cpp} allows us to create random private keys directly at CKey instantiation, in contrast to the currently needed two-step process of creating an (invalid) CKey instance first and then having to call `MakeNewKey(...)`.

  This is mostly used in unit tests and a few instances in the wallet.

ACKs for top commit:
  Sjors:
    re-ACK fa1d495
  achow101:
    ACK fa1d495
  sipa:
    utACK fa1d495
  kristapsk:
    cr utACK fa1d495
  stratospher:
    ACK fa1d495.

Tree-SHA512: 6fec73f33efe5bd77ca7d3c2fc06725d96f789f229294c39377e682ff222cfc7990b77c92e0bfd4cb6cf891d007ab1f86d395907511f06e87044bae37652a2fd
1757452 test: Add tests for CFeeRate multiplication operator (Kashif Smith)
1553c80 Add multiplication operator to CFeeRate (Murch)

Pull request description:

  Allows us to use
  `coin_selection_params.m_long_term_feerate * 3`
  or
  `3 * coin_selection_params.m_long_term_feerate`
  instead of
  `CFeeRate{coin_selection_params.m_long_term_feerate.GetFee(3000)}`

  inspired by bitcoin#27877 (comment)

ACKs for top commit:
  kevkevinpal:
    reACK [1757452](bitcoin@1757452)
  achow101:
    ACK 1757452
  ajtowns:
    ACK 1757452 ; lgtm
  ismaelsadeeq:
    ACK 1757452

Tree-SHA512: a86faac1efd1b7688630cd811246533d184d56b62064a7fd9007de95dbf81fa668aa2252253d102fba67517b6a4ca2dc367c5388b8ab936215734d7d370740cf
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.

3 participants