Repository navigation
Commit f435ae5
committed
Merge #7452: backport: Merge bitcoin#30257, 30264, (partial) 16807, (partial) 23577, 24402, 26252, 30047, 29607, 27905
5ce9c6f Merge bitcoin#27905: validation: add missing insert to m_dirty_blockindex (fanquake)
bd6b815 Merge bitcoin#29607: refactor: Reduce memory copying operations in bech32 encoding (Ava Chow)
67d6eed Merge bitcoin#30047: refactor: Model the bech32 charlimit as an Enum (Ava Chow)
0f033fd Merge bitcoin#26252: refactor: Make 64-bit shift explicit (MacroFake)
a27cdd3 Merge bitcoin#24402: refactor: Avoid implicit-integer-sign-change in bech32.cpp (fanquake)
bd1186e (partial) Merge bitcoin#23577: Follow-ups to Bech32 error detection (W. J. van der Laan)
ce6d7cb (partial) Merge bitcoin#16807: Let validateaddress locate error in Bech32 address (W. J. van der Laan)
a8a3fa8 Merge bitcoin#30264: test: add coverage for errors for `combinerawtransaction` (merge-script)
8a74523 Merge bitcoin#30257: build: Remove --enable-gprof (merge-script)
Pull request description:
## Issue being fixed or feature implemented
- Replaces #7296 with a clean, GPG-signed backport stack.
- Backports Bitcoin Core build cleanup, RPC test coverage, Bech32 library improvements, and the missing dirty block-index update.
- Excludes bitcoin#30006 because its `feature_reindex_readonly.py` change depends on an upstream test-history chain not currently present in Dash; it should be handled separately.
## What was done?
- Backported bitcoin#30257 and bitcoin#30264.
- Partially backported bitcoin#16807 and bitcoin#23577, limited to:
- `src/bech32.cpp`
- `src/bech32.h`
- `src/test/bech32_tests.cpp`
- Intentionally excluded their Bitcoin L1 `key_io` / `validateaddress` integration, related functional tests, and release note. Dash L1 addresses remain Base58; Dash's Platform Bech32m path is separate.
- Backported bitcoin#24402 completely, including the Bech32 sign-conversion cleanup and removal of the four now-unnecessary sanitizer suppressions.
- Backported the complete applicable bitcoin#26252 change. Its `src/bech32.cpp` change is applied exactly. The `build_msvc/common.init.vcxproj.in` hunk is intentionally inapplicable because Dash removed that obsolete build system in `04fb085f6bddc90e806deefd90c72104763f055a`.
- Backported bitcoin#30047 completely, including all `CharLimit`, `CHECKSUM_SIZE`, and `LocateErrors` changes.
- Backported bitcoin#29607 completely, including both `hrp.reserve(pos)` additions in `Decode` and `LocateErrors`.
- Backported bitcoin#27905 while preserving Dash's ChainLocks-specific `fConflictingChain` path.
- Preserved upstream authorship and signed all nine commits with PastaClaw key `218BBA5FAC3745AB`.
The remaining older, non-blocking upstream starting-state differences are a copyright-header update and bitcoin#24513's cosmetic `CChainState` rename. Neither causes an omitted hunk, semantic workaround, or behavior difference in this stack.
## How Has This Been Tested?
- `git verify-commit` passed for all nine commits.
- Compared bitcoin#24402 and bitcoin#26252 against their upstream first-parent merge diffs, file by file.
- Confirmed bitcoin#24402 removes only the four intended sanitizer suppressions.
- Confirmed bitcoin#26252 applies the exact Bech32 change and does not recreate `build_msvc`.
- Confirmed stable patch IDs for bitcoin#30047 and bitcoin#29607 are unchanged.
- `git range-diff` confirmed the existing seven patches remain unchanged apart from rewritten IDs and the expected bitcoin#30047 context around bitcoin#24402's formatting change.
- `git diff --check` passed.
- `make -C src test/test_dash -j15` passed on macOS arm64.
- `./src/test/test_dash --run_test=bech32_tests`: 4 test cases passed.
- A build configured with `--with-sanitizers=undefined,integer` passed.
- The Bech32 test suite passed under the sanitizer build with the project's CI `UBSAN_OPTIONS`.
- Separate local Codex backport review passed at `5ce9c6f8da5659c540f8b68cdf8dc317bf7c8934` with no findings.
## Breaking Changes
None.
## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e tests
- [x] I have made corresponding changes to the documentation
- [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
Top commit has no ACKs.
Tree-SHA512: e24f389a19c812766d6c28ead35347808a9b4d4fe3b86527a24ac69ded41310724e5e5ac0e90d1a3a958371060eef8dac1af21bfcbd6c3d517bda23d9f9f07d39 files changed
Lines changed: 461 additions & 78 deletions
File tree
- doc
- src
- test
- test
- functional
- sanitizer_suppressions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | | - | |
| 204 | + | |
205 | 205 | | |
206 | | - | |
| 206 | + | |
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| |||
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | 310 | | |
318 | 311 | | |
319 | 312 | | |
| |||
1058 | 1051 | | |
1059 | 1052 | | |
1060 | 1053 | | |
1061 | | - | |
1062 | | - | |
1063 | | - | |
1064 | | - | |
1065 | | - | |
1066 | | - | |
1067 | | - | |
1068 | | - | |
1069 | | - | |
1070 | | - | |
1071 | | - | |
1072 | | - | |
1073 | | - | |
1074 | | - | |
1075 | | - | |
1076 | | - | |
1077 | | - | |
1078 | 1054 | | |
1079 | 1055 | | |
1080 | 1056 | | |
1081 | 1057 | | |
1082 | 1058 | | |
1083 | 1059 | | |
1084 | | - | |
1085 | 1060 | | |
1086 | 1061 | | |
1087 | 1062 | | |
| |||
2038 | 2013 | | |
2039 | 2014 | | |
2040 | 2015 | | |
2041 | | - | |
2042 | | - | |
2043 | 2016 | | |
2044 | 2017 | | |
2045 | 2018 | | |
| |||
2160 | 2133 | | |
2161 | 2134 | | |
2162 | 2135 | | |
2163 | | - | |
2164 | 2136 | | |
2165 | 2137 | | |
2166 | 2138 | | |
| |||
2170 | 2142 | | |
2171 | 2143 | | |
2172 | 2144 | | |
2173 | | - | |
2174 | | - | |
| 2145 | + | |
| 2146 | + | |
2175 | 2147 | | |
2176 | 2148 | | |
2177 | 2149 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| |||
385 | 384 | | |
386 | 385 | | |
387 | 386 | | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | 387 | | |
393 | 388 | | |
394 | 389 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
0 commit comments