backport: Merge bitcoin#28903, 28924, 29056, 28455, 29037#7123
Draft
vijaydasmp wants to merge 5 commits intodashpay:developfrom
Draft
backport: Merge bitcoin#28903, 28924, 29056, 28455, 29037#7123vijaydasmp wants to merge 5 commits intodashpay:developfrom
vijaydasmp wants to merge 5 commits intodashpay:developfrom
Conversation
|
42a977c to
351653d
Compare
351653d to
b66d2b5
Compare
…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
403ee64 to
cc5de9b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
bitcoin backports