aboutsummaryrefslogtreecommitdiff
path: root/src/wallet.h
AgeCommit message (Collapse)Author
2014-06-27UI to alert of respend attempt affecting wallet.Tom Harding
Respend transactions that conflict with transactions already in the wallet are added to it. They are not displayed unless they also involve the wallet, or get into a block. If they do not involve the wallet, they continue not to affect balance. Transactions that involve the wallet, and have conflicting non-equivalent transactions, are highlighted in red. When the conflict first occurs, a modal dialog is thrown. CWallet::SyncMetaData is changed to sync only to equivalent transactions. When a conflict is added to the wallet, counter nConflictsReceived is incremented. This acts like a change in active block height for the purpose of triggering UI updates.
2014-06-24Merge pull request #3674Wladimir J. van der Laan
77cbd46 Let -zapwallettxes recover transaction meta data (Cozz Lovan)
2014-06-22Code simplifications after CTransaction::GetHash() cachingPieter Wuille
2014-06-16Let -zapwallettxes recover transaction meta dataCozz Lovan
2014-06-12Ignore too-long redeemScripts while loading walletWladimir J. van der Laan
This avoids that long redeemScripts that were grandfathered in prevent the wallet from loading. Fixes #4313.
2014-06-06Type-safe CFeeRate classGavin Andresen
Use CFeeRate instead of an int64_t for quantities that are fee-per-size. Helps prevent unit-conversion mismatches between the wallet, relaying, and mining code.
2014-06-03CWallet: fix nTimeFirstKey init, by making constructor init common codeJeff Garzik
Don't repeat yourself etc.
2014-06-02Properly initialize CWallet::nTimeFirstKeytm314159
2014-05-25Merge pull request #4206Wladimir J. van der Laan
79d06dc Remove redundant c_str (R E Broadley)
2014-05-22Remove redundant c_strR E Broadley
2014-05-20remove CWallet::AddReserveKey which is never usedKamil Domanski
2014-05-05add DEFAULT_TRANSACTION_FEE constant in walletPhilip Kaufmann
- as this is a shared Core/GUI setting, this makes it easier to keep them in sync (also no new includes are needed)
2014-04-02[Qt] rescan progressCozz Lovan
2014-03-29Add nHighTransactionFeeWarning as per #3969.Bardi Harborow
2014-03-28Make GetAvailableCredit run GetHash() only once per transaction.Gregory Maxwell
This makes the first getbalance/getinfo 63x faster on my wallet.
2014-03-05Fix null pointer in IsTrusted()Cozz Lovan
2014-02-26Remove CWalletTx::vfSpentGavin Andresen
Use the spent outpoint multimap to figure out which wallet transaction outputs are unspent, instead of a vfSpent array that is saved to disk.
2014-02-18Wallet locking fixes for -DDEBUG_LOCKORDERGavin Andresen
Compiling with -DDEBUG_LOCKORDER and running the qa/rpc-test/ regression tests uncovered a couple of wallet methods that should (but didn't) acquire the cs_wallet mutext. I also changed the AssertLockHeld() routine print to stderr and abort, instead of printing to debug.log and then assert()'ing. It is annoying to look in debug.log to find out which AssertLockHeld is failing.
2014-02-15Merge pull request #3671 from gavinandresen/txn_conflictsGavin Andresen
Report transaction conflicts, and tentative account balance fix
2014-02-14Track and report wallet transaction clonesGavin Andresen
Adds a "walletconflicts" array to transaction info; if a wallet transaction is mutated, the alternate transaction id or ids are reported there (usually the array will be empty). Metadata from the original transaction is copied to the mutant, so the transaction time and "from" account of the mutant are reported correctly.
2014-02-14Merge pull request #3669 from gavinandresen/dead_txnsGavin Andresen
Handle "conflicted" transactions properly
2014-02-14Add -zapwallettxes cli/config option, used for wallet recoveryJeff Garzik
This diagnostic tool removes all "tx" records from the wallet db, then forces a full rescan, to rebuild "tx" records accurately.
2014-02-14Handle "conflicted" transactions properlyGavin Andresen
Extend CMerkleTx::GetDepthInMainChain with the concept of a "conflicted" transaction-- a transaction generated by the wallet that is not in the main chain or in the mempool, and, therefore, will likely never be confirmed. GetDepthInMainChain() now returns -1 for conflicted transactions (0 for unconfirmed-but-in-the-mempool, and >1 for confirmed). This makes getbalance, getbalance '*', and listunspent all agree when there are mutated transactions in the wallet. Before: listunspent: one 49BTC output getbalance: 96 BTC (change counted twice) getbalance '*': 46 BTC (spends counted twice) After: all agree, 49 BTC available to spend.
2014-02-13Merge pull request #3662Wladimir J. van der Laan
0542619 Rename IsConfirmed to IsTrusted to better match the intended behavior. (Gregory Maxwell)
2014-02-12Rename IsConfirmed to IsTrusted to better match the intended behavior.Gregory Maxwell
This doesn't change the functionality at all.
2014-02-12If requested, actually treat uncomfirmed change as being uncomfirmedb6393ce9-d324-4fe1-996b-acf82dbc3d53
This commit strengthens 1bbca249b202c4802cc2c4d4de4a26e6392b4d92 by updating the CWalletTx::IsConfirmed() function. If (bSpendZeroConfChange==false), then IsConfirmed() should actually treat unconfirmed change as being unconfirmed.
2014-02-11Add option to avoid spending unconfirmed changeWladimir J. van der Laan
2014-01-19wallet: add interface for storing generic data on destinationsWladimir J. van der Laan
2014-01-06Merge pull request #3401Wladimir J. van der Laan
012ca1c LoadWallet: acquire cs_wallet mutex before clearing setKeyPool (Wladimir J. van der Laan) 9569168 Document cs_wallet lock and add AssertLockHeld (Wladimir J. van der Laan) 19a5676 Use mutex pointer instead of name for AssertLockHeld (Wladimir J. van der Laan)
2013-12-19Merge pull request #3412Wladimir J. van der Laan
c3a7f51 Move `verifymessage` from rpcwallet to rpcmisc (Wladimir J. van der Laan) 723a03d Move `createmultisig` from rpcwallet to rpcmisc (Wladimir J. van der Laan) 452955f Move `validateaddress` from rpcwallet to rpcmisc (Wladimir J. van der Laan) cd7fa8b Move `nTransactionFee` from main.cpp to wallet.cpp (Wladimir J. van der Laan) a943bde Move `settxfee` from rpcblockchain to rpcwallet (Wladimir J. van der Laan) 16bc9aa Move `getinfo` from rpcnet to rpcmisc (Wladimir J. van der Laan) 652e156 add new RPC implementation file `rpcmisc.cpp` (Wladimir J. van der Laan)
2013-12-19Document cs_wallet lock and add AssertLockHeldWladimir J. van der Laan
Add locking assertions to wallet to all methods that access internal fields and do not aquire the cs_wallet mutex.
2013-12-14Remove unused ThreadSafeAskFee from ui_interfaceWladimir J. van der Laan
ThreadSafeAskFee is effectively unused. It is only called when the fAskFee parameter on SendMoney or SendMoneyToDestination is true, which never happens. Remove it.
2013-12-13Move `nTransactionFee` from main.cpp to wallet.cppWladimir J. van der Laan
Transaction fee is only used by the wallet. No need for it to be in main.cpp.
2013-11-18Coincontrol cleanup (e.g. add missing license)Philip Kaufmann
- add missing license headers - make compatible with Qt5 - enforce header cleanup style - small code style cleanups - rename Coin Control dialog into Coin Control Address Selection - use default font for the windows labels (no monospace)
2013-11-14Coin Control FeaturesCozz Lovan
2013-11-10Cleanup code using forward declarations.Brandon Dahler
Use misc methods of avoiding unnecesary header includes. Replace int typedefs with int##_t from stdint.h. Replace PRI64[xdu] with PRI[xdu]64 from inttypes.h. Normalize QT_VERSION ifs where possible. Resolve some indirect dependencies as direct ones. Remove extern declarations from .cpp files.
2013-10-26Use boost signals for callbacks from main to walletPieter Wuille
2013-10-26Remove broken PrintWallet functionalityPieter Wuille
2013-10-26Do not treat fFromMe transaction differently when broadcastingPieter Wuille
2013-10-20Bump Year Number to 2013super3
2013-09-18Replace printf with LogPrintf / LogPrintGavin Andresen
2013-08-29qt: Handle address purpose in incremental updatesWladimir J. van der Laan
Correctly use the purpose of addresses that are added after the start of the client. Addresses with purpose "refund" and "change" should not be visible in the GUI. This is now handled correctly.
2013-08-23Remove fAllowReuse from GetKeyFromPool.Gregory Maxwell
With the GUI password fix this was always false.
2013-08-22Payment Protocol: X509-validated payment requestsGavin Andresen
Add support for a Payment Protocol to Bitcoin-Qt. Payment messages are protocol-buffer encoded and communicated over http(s), so this adds a dependency on the Google protocol buffer library, and requires Qt with OpenSSL support.
2013-08-22Refactor: Move GetAccountAddresses to CWalletGavin Andresen
2013-08-22Refactor: CAddressBookData for mapAddressBookGavin Andresen
Straight refactor, so mapAddressBook stores a CAddressBookData (which just contains a std::string) instead of a std::string. Preparation for payment protocol work, which will add the notion of refund addresses to the address book.
2013-08-14Merge pull request #2776 from jgarzik/keypoolsizeGavin Andresen
RPC: keypoolrefill now permits optional size parameter, to bump keypool
2013-07-29Make sure new wallet variables are initializedPieter Wuille
2013-07-17Bugfix: Store last/next wallet resend times unique per CWallet objectLuke Dashjr
2013-06-25CWallet::TopUpKeyPool() takes optional pool size argumentJeff Garzik
Also, GetKeyPoolSize() now returns an accurate type, unsigned int.