CWallet class
authorPieter Wuille <pieter.wuille@gmail.com>
Wed, 1 Jun 2011 16:28:20 +0000 (18:28 +0200)
committerPieter Wuille <pieter.wuille@gmail.com>
Wed, 15 Jun 2011 09:05:55 +0000 (11:05 +0200)
commit64c7ee7e6b9c059d99aaa493c74a6703c6b0fc80
tree5ffafe3c7e4486f7b5ff2594bdbbf67e62560677
parente89b9f6a2abaa120ff0fc3cea9ae364e8cbd25e4
CWallet class

* A new class CKeyStore manages private keys, and script.cpp depends on access to CKeyStore.
* A new class CWallet extends CKeyStore, and contains all former wallet-specific globals; CWallet depends on script.cpp, not the other way around.
* Wallet-specific functions in CTransaction/CTxIn/CTxOut (GetDebit, GetCredit, GetChange, IsMine, IsFromMe), are moved to CWallet, taking their former 'this' argument as an explicit parameter
* CWalletTx objects know which CWallet they belong to, for convenience, so they have their own direct (and caching) GetDebit/... functions.
* Some code was moved from CWalletDB to CWallet, such as handling of reserve keys.
* Main.cpp keeps a set of all 'registered' wallets, which should be informed about updates to the block chain, and does not have any notion about any 'main' wallet. Function in main.cpp that require a wallet (such as GenerateCoins), take an explicit CWallet* argument.
* The actual CWallet instance used by the application is defined in init.cpp as "CWallet* pwalletMain". rpc.cpp and ui.cpp use this variable.
* Functions in main.cpp and db.cpp that are not used by other modules are marked static.
* The code for handling the 'submitorder' message is removed, as it not really compatible with the idea that a node is independent from the wallet(s) connected to it, and obsolete anyway.
15 files changed:
src/db.cpp
src/db.h
src/init.cpp
src/init.h
src/keystore.cpp
src/keystore.h
src/main.cpp
src/main.h
src/net.cpp
src/rpc.cpp
src/script.cpp
src/script.h
src/ui.cpp
src/wallet.cpp
src/wallet.h