This commit just moves function 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 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 definitionsreceive.cpp/.h
- functions checking received transactions and computing balancesspend.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 #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.