sami7777
4b8d5ab8b1
C++20 Round 5: typedef -> using, IMPLEMENT_SERIALIZE macro cleanup
...
- Convert 15 typedef declarations to C++11 using aliases across 12 files:
script.h (valtype, CTxDestination), serialize.h (CSerializeData),
keystore.h (KeyMap, ScriptMap, CryptedKeyMap), sync.h (CCriticalSection,
CWaitableCriticalSection), sync.cpp (LockStack), key.h (CPrivKey, CSecret),
crypter.h (CKeyingMaterial), allocators.h (SecureString), main.h (MapPrevTx),
wallet.h (mapValue_t, removed duplicate), miner.cpp (TxPriority),
kernel.cpp (MapModifierCheckpoints)
- Remove redundant duplicate mapValue_t typedef in wallet.h
- IMPLEMENT_SERIALIZE macro: replace assert() warning suppression with
[[maybe_unused]] attributes on fGetSize/fWrite/fRead/nSerSize
2026-05-08 23:08:40 -07:00
sami7777
150828b806
C++20 modernization: nullptr, constexpr, smart pointers, thread safety, enum class
...
- Replace ~320 NULL occurrences with nullptr across 47 files (-184 net lines)
- static const -> constexpr for version, coin, utility constants
- Collapse 9 PushMessage overloads into 1 variadic template with fold expressions
- Convert boost::array -> std::array, boost::type_traits -> std:: equivalents
- pwalletMain, pScriptCheckQueue, pScriptCheckThreads -> unique_ptr
- mapOrphanBlocks values: raw CBlock* -> unique_ptr<CBlock>
- Fix data races: add locks to wallet registration, pindexBest reads, mempool exists
- pwalletdbEncryption: raw new/delete -> local unique_ptr, remove exit() calls
- PoS reward overflow: CBigNum intermediate for nCoinAge * nRewardCoinYear
- memset -> OPENSSL_cleanse for secure zeroing
- Fix const-cast UB in SetMerkleBranch
- Log silent catch(...) blocks instead of silently swallowing
- Enum class: GetMinFeeMode, WalletFeature
- std::string_view for 8 utility function parameters
- Range-for with structured bindings: 63 iterator loops modernized
- std::make_pair -> brace init: 35 sites
- Delegating constructors: CWallet, CBlockIndex
- Merkle tree caching, std::array for GetMedianTimePast
- CScript copy ctor -> = default, operator!= -> = default
2026-05-08 21:34:24 -07:00
sami7777
55c202516d
WIP: migrate ECDSA/ECDH off OpenSSL EC to libsecp256k1
...
Add libsecp256k1 v0.7.1 as src/secp256k1 submodule and introduce
crypto_ecdsa / crypto_ecdh wrappers as drop-in replacements for the
OpenSSL ECDSA_verify / ECDSA_sign / ECDH_compute_key call sites used
by key.cpp and smessage.cpp. Wrappers preserve on-chain compatibility
(lax DER parsing, 65-byte recoverable compact sigs, SEC1 priv-key
DER round-trip, raw-X ECDH output for smsg KDF).
CMake wires the submodule and new sources into the build. Mid-refactor;
landing as a checkpoint before stacking sync-pipeline work on top.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-29 02:55:18 -07:00