From 64d9d4eb3dda5b260b20bbb53c300703a1c2ec82 Mon Sep 17 00:00:00 2001 From: frstrtr Date: Sat, 25 Jul 2026 18:49:43 +0000 Subject: [PATCH] bch(m4): wire CashAddr KAT into CI; fix stale scrypt pow-hash comment The CashAddr codec + KAT test landed in master (821ec05d1) but the test was never registered in CMake or the COIN_BCH build lists, so it never ran in CI -- authored-but-unrun false-green, the same class of gap the #156 embedded-body tests closed at test/CMakeLists.txt:179. - register cashaddr_kat_test in BCH_ABLA_TESTS (pure, header-only over coin/cashaddr.hpp); it now runs under ctest -R ^bch_ on both the COIN_BCH Release and ASan/UBSan legs. - add bch_cashaddr_kat_test to both build.yml COIN_BCH --target lists (Release + sanitizer) so the executable is built before ctest. - rename cashaddr_test.cpp -> cashaddr_kat_test.cpp to match the bch_*_kat_test target convention (asert/coinbase/g2 KATs). - the KAT already asserts encode+decode both directions, BCHN vector parity (PolyMod/version-byte), P2SH32 32-byte roundtrip, and negative cases: corrupt checksum, wrong prefix/hrp, mixed case, bad hash length. share_check.hpp: correct the g_last_pow_hash TLS comments from scrypt to SHA256d -- BCH PoW is SHA256d (stale LTC-port copy). Comment-only. Per-coin isolation held: src/impl/bch/ + build.yml only; no core, no bitcoin_family. No share/sharechain/coinbase/PPLNS change; p2pool-merged-v36 surface unchanged. --- .github/workflows/build.yml | 2 ++ src/impl/bch/share_check.hpp | 4 ++-- src/impl/bch/test/CMakeLists.txt | 1 + .../bch/test/{cashaddr_test.cpp => cashaddr_kat_test.cpp} | 0 4 files changed, 5 insertions(+), 2 deletions(-) rename src/impl/bch/test/{cashaddr_test.cpp => cashaddr_kat_test.cpp} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92e31f0c6..91907806c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -476,6 +476,7 @@ jobs: bch_coinbase_kat_bytevector_test \ bch_coinbase_author_kat_test \ bch_cashtokens_transparency_test \ + bch_cashaddr_kat_test \ bch_block_connector_test bch_block_ordering_test \ bch_utxo_connect_test bch_reorg_connect_test bch_reorg_rerequest_test \ bch_compact_block_connector_test \ @@ -609,6 +610,7 @@ jobs: bch_coinbase_kat_bytevector_test \ bch_coinbase_author_kat_test \ bch_cashtokens_transparency_test \ + bch_cashaddr_kat_test \ bch_block_connector_test bch_block_ordering_test \ bch_utxo_connect_test bch_reorg_connect_test bch_reorg_rerequest_test \ bch_compact_block_connector_test \ diff --git a/src/impl/bch/share_check.hpp b/src/impl/bch/share_check.hpp index 875cb15d9..c36f61b62 100644 --- a/src/impl/bch/share_check.hpp +++ b/src/impl/bch/share_check.hpp @@ -465,9 +465,9 @@ inline std::pair compute_ref_hash_for_work(const RefHashParam return {ref_hash, nonce}; } -// Thread-local state from share_init_verify — read by attempt_verify() without re-computing scrypt. +// Thread-local state from share_init_verify — read by attempt_verify() without re-computing the SHA256d PoW. inline thread_local bool g_last_init_is_block = false; -inline thread_local uint256 g_last_pow_hash; // scrypt hash of the share header +inline thread_local uint256 g_last_pow_hash; // SHA256d hash of the share header // ============================================================================ // share_init_verify() diff --git a/src/impl/bch/test/CMakeLists.txt b/src/impl/bch/test/CMakeLists.txt index 33d87082c..bdfe914f5 100644 --- a/src/impl/bch/test/CMakeLists.txt +++ b/src/impl/bch/test/CMakeLists.txt @@ -26,6 +26,7 @@ if(BUILD_TESTING) g0_canonical_pin_test # G0: canonical-pin vs p2poolBCH @6603b79 baseline + v35->v36 transition rule (pure) g2_ratchet_gate_kat_test # G2: 60%-by-WORK version-switch accept gate + mint-cannot-outrun-accept (pure) coinbase_author_kat_test # KAT G2: v36 coinbase output-assembly byte-parity vs p2pool-merged-v36 oracle (pure) + cashaddr_kat_test # M4: CashAddr codec KAT -- encode/decode roundtrip + PolyMod/version-byte parity vs BCHN vectors, prefix/checksum rejection (pure) ) foreach(t IN LISTS BCH_ABLA_TESTS) add_executable(bch_${t} ${t}.cpp) diff --git a/src/impl/bch/test/cashaddr_test.cpp b/src/impl/bch/test/cashaddr_kat_test.cpp similarity index 100% rename from src/impl/bch/test/cashaddr_test.cpp rename to src/impl/bch/test/cashaddr_kat_test.cpp