Skip to content

Commit c7bd584

Browse files
committed
MOVEONLY: CWallet transaction code out of wallet.cpp/.h
This commit just moves functions without making any changes. It can be reviewed with `git log -p -n1 --color-moved=dimmed_zebra` Motivation for this change is to make wallet.cpp/h less monolithic and start to make wallet transaction state tracking comprehensible so bugs in https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Wallet-Transaction-Conflict-Tracking can be fixed safely without introducing new problems. This commit moves wallet classes and methods that deal with transactions out of wallet.cpp/.h into better organized files: - transaction.cpp/.h - CWalletTx and CMerkleTx class definitions - receive.cpp/.h - functions checking received transactions and computing balances - spend.cpp/.h - functions creating transactions and finding spendable coins After #20773, when loading is separated from syncing it will also be possible to move more wallet.cpp/.h functions to: - sync.cpp/.h - functions handling chain notifications and rescanning This commit arranges receive.cpp and spend.cpp functions in dependency order so it's possible to skim receive.cpp and get an idea of how computing balances works, and skim spend.cpp and get an idea of how transactions are created, without having to jump all over wallet.cpp where functions are not in order and there is a lot of unrelated code. Followup commit "refactor: Detach wallet transaction methods" in bitcoin/bitcoin#21206 follows up this PR and tweaks function names and arguments to reflect new locations. The two commits are split into separate PRs because this commit is more work to maintain and less work to review, while the other commit is less work to maintain and more work to review, so hopefully this commit can be merged earlier.
1 parent ecddd12 commit c7bd584

File tree

10 files changed

+1990
-1902
lines changed

10 files changed

+1990
-1902
lines changed

src/Makefile.am

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,13 @@ BITCOIN_CORE_H = \
284284
wallet/fees.h \
285285
wallet/ismine.h \
286286
wallet/load.h \
287+
wallet/receive.h \
287288
wallet/rpcwallet.h \
288289
wallet/salvage.h \
289290
wallet/scriptpubkeyman.h \
291+
wallet/spend.h \
290292
wallet/sqlite.h \
293+
wallet/transaction.h \
291294
wallet/wallet.h \
292295
wallet/walletdb.h \
293296
wallet/wallettool.h \
@@ -405,9 +408,12 @@ libbitcoin_wallet_a_SOURCES = \
405408
wallet/fees.cpp \
406409
wallet/interfaces.cpp \
407410
wallet/load.cpp \
411+
wallet/receive.cpp \
408412
wallet/rpcdump.cpp \
409413
wallet/rpcwallet.cpp \
410414
wallet/scriptpubkeyman.cpp \
415+
wallet/spend.cpp \
416+
wallet/transaction.cpp \
411417
wallet/wallet.cpp \
412418
wallet/walletdb.cpp \
413419
wallet/walletutil.cpp \

0 commit comments

Comments
 (0)