aboutsummaryrefslogtreecommitdiff
path: root/src/wallet.cpp
AgeCommit message (Collapse)Author
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-22Merge branch 'bugfix_unknownoutputs' of git://github.com/luke-jr/bitcoinGavin Andresen
Conflicts: src/wallet.cpp Fixed LogPrint/printf merge conflict.
2013-10-20Merge pull request #3074 from laanwj/2013_10_remove_default_key_1Gavin Andresen
Remove automatic update of default key
2013-10-20Merge pull request #3119Pieter Wuille
db0e8cc Bump Year Number to 2013 (super3)
2013-10-20Bump Year Number to 2013super3
2013-10-19Merge pull request #2945 from gmaxwell/fee-logic_encourage_sweepingGavin Andresen
[Fee logic] Don't count txins for priority to encourage sweeping.
2013-10-19Merge pull request #3008 from gavinandresen/CENTruleGavin Andresen
Two small free transaction policy changes
2013-10-11Refactor/encapsulate chain globals into a CChain classPieter Wuille
2013-10-10wallet: remove automatic update of default keyWladimir J. van der Laan
2013-10-04Remove CENT-output free transaction rule when relayingGavin Andresen
Remove the (relay/mempool) rule that all outputs of free transactions must be greater than 0.01 XBT. Dust spam is now taken care of by making dusty outputs non-standard.
2013-09-20fix some printf -> LogPrintf leftoversPhilip Kaufmann
2013-09-18Replace printf with LogPrintf / LogPrintGavin Andresen
2013-09-17[Fee logic] Don't count txins for priority to encourage sweeping.Gregory Maxwell
This changes the priority calculation to not include the size of per-txin data including up to 110 bytes of scriptsig so that transactions which sweep up extra UTXO don't lose priority relative to ones that don't. I'd toyed with some other variations, but it seems like any formulation which results in an incentive stronger than making them not count will sometimes create incentives to add extra outputs so that you have extra inputs to consume later. The maximum credit is limited so that users don't lose the disincentive to stuff random data in their transactions, the limit of 110 is based on the size of a P2SH redemption with a compressed public key. This shouldn't need a staged deployment because the priority is not used as a relay criteria, only a mining criteria.
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-31Remove #define loop from util.hGavin Andresen
Replace the loop macro with while (true). The #define caused problems for Qt.
2013-07-17Bugfix: Avoid trying to parse outputs that aren't relevant to ↵Luke Dashjr
CWalletTx::GetAmounts This fixes a warning when an output we aren't concerned with can't be parsed.
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.
2013-06-23Moved CBlock::ReadFromDisk out of CBlock to functions ReadBlockFromDisk in ↵Eric Lombrozo
main.h
2013-06-23Merge pull request #2592 from sipa/dumpwalletPieter Wuille
Add dumpwallet and importwallet RPC commands
2013-06-22Merge pull request #2660 from TheBlueMatt/gmfrefactorPieter Wuille
Refactor fee rules to make them actually readable.
2013-06-22Add GetKeyBirthTimes to walletPieter Wuille
Compute safe lower bounds on the birth times of all wallet keys. For pool keys or keys with metadata, the actually stored birth time is used. For all others, the birth times are inferred from the wallet transactions.
2013-06-20Refactor keytime/metadata and wallet encryption bugfixPieter Wuille
Refactor keytime: * Key metadata is kept in a CWallet::mapKeyMetadata (std::map<CKeyId,CKeyMetadata>). * When generating a new key, time is put in that map, and new key is written. * AddKeyPubKey and AddCryptedKey do not take a creation time argument, but instead pull it from that map, if it exists there. Bugfix: * AddKeyPubKey and AddCryptedKey in CWallet didn't override the CKeyStore definition anymore. This is fixed, as they no longed need the nCreationTime argument now. Also a few related other changes: * Metadata can be overwritten. * Only GenerateNewKey calls GetTime(), as it's the only place where we know for sure a key was not constructed earlier. * When the nTimeFirstKey is known to be inaccurate, it is set to the value 1 (instead of 0, which would mean unknown). * Use CPubKey instead of std::vector<unsigned char> where possible.
2013-06-14Refactor fee rules to make them actually readable.Matt Corallo
This (nearly) doesn't change fee rules at all: * To make it into the fee transaction area, the dPriority comparison changed from < to <= * We now just ignore transactions > MAX_BLOCK_SIZE/4 instead of doing some calculations to require increasingly large fees as size increases.
2013-06-13Remove broken option to skip input checking for wallet txn.Matt Corallo
2013-06-10Wallet: optimize rescan to skip blocks prior to birthdayJeff Garzik
2013-06-10Wallet: store key creation time. Calculate whole-wallet birthday.Jeff Garzik
This also encapsulate wallet-read state information into CWalletScanState.
2013-06-05Removed AcceptToMemoryPool method from CTransaction. This method belongs to ↵Eric Lombrozo
the mempool instance. Removed AreInputsStandard from CTransaction, made it a regular function in main. Moved CTransaction::GetOutputFor to CCoinsViewCache. Moved GetLegacySigOpCount and GetP2SHSigOpCount out of CTransaction into regular functions in main. Moved GetValueIn and HaveInputs from CTransaction into CCoinsViewCache. Moved AllowFree, ClientCheckInputs, CheckInputs, UpdateCoins, and CheckTransaction out of CTransaction and into main. Moved IsStandard and IsFinal out of CTransaction and put them in main as IsStandardTx and IsFinalTx. Moved GetValueOut out of CTransaction into main. Moved CTxIn, CTxOut, and CTransaction into core. Added minimum fee parameter to CTxOut::IsDust() temporarily until CTransaction is moved to core.h so that CTxOut needn't know about CTransaction.
2013-06-05Moved CInPoint to core. Removed GetMinFee from CTransaction and made it a ↵Eric Lombrozo
regular function in main.
2013-06-04build: cosmetics after last commitCory Fields
2013-06-04build: use runtime setting for wallet rather than QT_GUI defineCory Fields
2013-05-30Merge pull request #2644 from sipa/constfindblockJeff Garzik
Make FindBlockByHeight constant-time
2013-05-30Merge pull request #2625 from gavinandresen/walletlock_asioJeff Garzik
Use boost::asio::deadline_timer for walletpassphrase timeout
2013-05-30CSecret/CKey -> CKey/CPubKey split/refactorPieter Wuille
2013-05-12Make FindBlockByHeight constant-time.Pieter Wuille
Remove the pnext pointer in CBlockIndex, and replace it with a vBlockIndexByHeight vector (no effect on memory usage). pnext can now be replaced by vBlockIndexByHeight[nHeight+1], but FindBlockByHeight becomes constant-time. This also means the entire mapBlockIndex structure and the block index entries in it become purely blocktree-related data, and independent from the currently active chain, potentially allowing them to be protected by separate mutexes in the future.
2013-05-07Use boost::asio::deadline_timer for walletpassphrase timeoutGavin Andresen
New method in bitcoinrpc: RunLater, that uses a map of deadline timers to run a function later. Behavior of walletpassphrase is changed; before, calling walletpassphrase again before the lock timeout passed would result in: Error: Wallet is already unlocked. You would have to call lockwallet before walletpassphrase. Now: the last walletpassphrase with correct password wins, and overrides any previous timeout. Fixes issue# 1961 which was caused by spawning too many threads. Test plan: Start with encrypted wallet, password 'foo' NOTE: python -c 'import time; print("%d"%time.time())' ... will tell you current unix timestamp. Try: walletpassphrase foo 600 getinfo EXPECT: unlocked_until is about 10 minutes in the future walletpassphrase foo 1 sleep 2 sendtoaddress mun74Bvba3B1PF2YkrF4NsgcJwHXXh12LF 11 EXPECT: Error: Please enter the wallet passphrase with walletpassphrase first. walletpassphrase foo 600 walletpassphrase foo 0 getinfo EXPECT: wallet is locked (unlocked_until is 0) walletpassphrase foo 10 walletpassphrase foo 600 getinfo EXPECT: wallet is unlocked until 10 minutes in future walletpassphrase foo 60 walletpassphrase bar 600 EXPECT: Error, incorrect passphrase getinfo EXPECT: wallet still scheduled to lock 60 seconds from first (successful) walletpassphrase
2013-05-04Merge pull request #2577 from gavinandresen/fee_bandaidGavin Andresen
Treat dust outputs as non-standard, un-hardcode TX_FEE constants
2013-05-03Merge pull request #2566 from sipa/nodefGavin Andresen
Allow the default key to be unavailable
2013-05-03Un-hardcode TX_FEE constantsGavin Andresen
Allow setting of MIN_TX_FEE / MIN_RELAY_TX_FEE with -mintxfee / -mintxrelayfee Default values are the same (0.0001 BTC).
2013-05-03CreateTransaction: return strFailReason on failureGavin Andresen
2013-05-03Define dust transaction outputs, and make them non-standardGavin Andresen
2013-05-02Do not write to wallet during LoadWalletGavin Andresen
When debugging another issue, I found a hang-during-startup race condition due to LoadWallet calling SetMinVersion (via LoadCryptedKey). Writing to the file that you're in the process of reading is a bad idea.
2013-04-25Allow the default key to be unavailablePieter Wuille
This solves the issue where no default key can be added after -salvagewallet.