aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-08-15Merge pull request #2240Riccardo Spagni1-0/+2
b7d6ec83 simplewallet: add (out of sync) or (no daemon) markers in the prompt (moneromooo-monero) fa23a500 wallet2: add a is_synced function (moneromooo-monero) f1307bbd node_rpc_proxy: add a proxy for target height (moneromooo-monero)
2017-08-15Merge pull request #2238Riccardo Spagni1-0/+2
ad4649ac Enable verifying wallet password with having to load wallet. (m2049r)
2017-08-15Merge pull request #2205Riccardo Spagni1-3/+11
c97d1bd3 wallet: return unlock_time in get_transfers (moneromooo-monero)
2017-08-05wallet2: fix temporarily missing incoming tx when being minedmoneromooo-monero1-1/+1
When scanning the txpool without having first updated the blockchain, the tx would be seen as neither in the txpool nor the chain, and removed, so it'd only reappear once the chain is refreshed, and the tx seen in a block.
2017-08-03Enable verifying wallet password with having to load wallet.m2049r1-0/+2
2017-08-02wallet2: add a is_synced functionmoneromooo-monero1-0/+2
2017-08-02wallet: return unlock_time in get_transfersmoneromooo-monero1-3/+11
also show it in simplewallet's show_transfer
2017-06-03Prevent crash if performing certain actions before wallet is initializedRobby Weinberg1-2/+3
2017-05-09Correct spelling of 'get_upper_transaction_size_limit'Nano Akron1-2/+2
2017-04-24wallet: add sweep_below functionmoneromooo-monero1-1/+1
It sweeps all outputs below the given threshold This is available via the existing sweep_all RPC, by setting amount_threshold the desired amount (in atomic units)
2017-04-11Resolve #92 add ability to create wallets thru RPCHoward Chu1-0/+3
Reviewed and squashed. Open/Create is only allowed if no walletfile was specified at startup.
2017-03-25wallet: option to merge destinationsmoneromooo-monero1-2/+5
With the change from the original transfer method to the new algorithm, payments to the same destination were merged. It seemed like a good idea, optimizing space. However, it is a useful tool for people who want to split large outputs into several smaller ones (ie, service providers making frequent payments, and who do not like a large chunk of their balance being locked for 10 blocks after each payment). Default to off, which is a change from the previous behavior.
2017-03-24wallet: try to save large outputs when using an unneeded second inputmoneromooo-monero1-2/+9
When a single input is enough to satisfy a transfer, the code would previously try to add a second input, to match the "canonical" makeup of a transaction with two inputs and two outputs. This would cause wallets to slowly merge outputs till all the monero ends up in a single output, which causes trouble when making two transactions one after the other, since change is locked for 10 blocks, and an increasing portion of the remaining balance would end up locked on each transaction. There are two new settings (min-output-count and min-output-value) which can control when to stop adding such unneeded second outputs. The idea is that small "dust" outputs will still get added, but larger ones will not. Enable with, eg: set min-output-count 10 set min-output-value 30 to avoid using an unneeded second output of 30 monero or more, if there would be less than 10 such outputs left. This does not invalidate any other reason why such outputs would be used (ie, when they're really needed to satisfy a transfer, or when randomly picked in the normal course of selection). This may be improved in the future.
2017-03-21Merge pull request #1903Riccardo Spagni1-1/+6
350e99ae wallet2: cache which pool txes were scanned already (moneromooo-monero)
2017-03-21wallet2: cache which pool txes were scanned alreadymoneromooo-monero1-1/+6
This massively speeds up the wallet updating the pool on mainnet, where the tx backlog is more than 500 txes.
2017-03-20wallet2: speed up transactions using remote nodesmoneromooo-monero1-0/+2
Asking for a full histogram from a remote node (since it's untrusted) is pretty slow, and spams the remote node, so we replace it by only adding a second input if we have rct ones, which are for all intents and purposes always mixable.
2017-03-15Add intervening v5 fork for increased min block sizemoneromooo-monero1-1/+2
Minimum mixin 4 and enforced ringct is moved from v5 to v6. v5 is now used for an increased minimum block size (from 60000 to 300000) to cater for larger typical/minimum transaction size. The fee algorithm is also changed to decrease the base per kB fee, and add a cheap tier for those transactions which we do not care if they get delayed (or even included in a block).
2017-03-06Merge pull request #1846Riccardo Spagni1-1/+1
4b48565c wallet: add password command (moneromooo-monero)
2017-03-05wallet: add password commandmoneromooo-monero1-1/+1
Also tweak wallet2 password code to verify password without saying it's a new wallet, because it's assuming things.
2017-03-04wallet: fix get_tranfers with multiple incoming txes with same pidmoneromooo-monero1-3/+13
2017-03-03Merge pull request #1826Riccardo Spagni1-0/+2
2c468dd4 allow user I/O in millinero, micronero, nanonero, piconero (moneromooo-monero)
2017-03-02allow user I/O in millinero, micronero, nanonero, piconeromoneromooo-monero1-0/+2
2017-02-27Add support for the wallet to refresh pruned blocksmoneromooo-monero1-7/+7
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-11Merge pull request #1689Riccardo Spagni1-2/+5
ce7fcbb4 Add server auth to monerod, and client auth to wallet-cli and wallet-rpc (Lee Clagett)
2017-02-11Merge pull request #1686Riccardo Spagni1-1/+1
bceaf4b7 wallet2: fix transactions not considering rct inputs (moneromooo-monero)
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi841-4/+5
2017-02-06wallet2: fix transactions not considering rct inputsmoneromooo-monero1-1/+1
I broke this very recently in 2bf029be172a47ace8134143e1320fdb10d3ea44 and didn't notice in time
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett1-2/+5
2017-02-04Merge pull request #1640Riccardo Spagni1-2/+5
f97526e6 simplewallet: option to always ask password for any crytical operations (kenshi84)
2017-02-03simplewallet: option to always ask password for any crytical operationskenshi841-2/+5
2017-02-02Merge pull request #1629Riccardo Spagni1-5/+5
c02e1cb9 Updates to epee HTTP client code - http_simple_client now uses std::chrono for timeouts - http_simple_client accepts timeouts per connect / invoke call - shortened names of epee http invoke functions - invoke command functions only take relative path, connection is not automatically performed (Lee Clagett)
2017-01-25Updates to epee HTTP client codeLee Clagett1-5/+5
- http_simple_client now uses std::chrono for timeouts - http_simple_client accepts timeouts per connect / invoke call - shortened names of epee http invoke functions - invoke command functions only take relative path, connection is not automatically performed
2017-01-22Replace BOOST_FOREACH with C++11 ranged forMiguel Herranz1-8/+8
2017-01-16wallet: add a node RPC cache layer for simple RPC callsmoneromooo-monero1-2/+4
Mostly getinfo and get_hard_fork_info, which are called pretty often. This speeds up transfers as a bonus.
2017-01-16wallet2: reuse fake outs when adjusting fee on transfermoneromooo-monero1-2/+5
This avoids indirectly leaking the real output to the daemon, and is faster. This will still happen for more complex cases, especially when cancelling a tx and "re-rolling" it.
2017-01-15Merge pull request #1569Riccardo Spagni1-0/+2
16b8b66a specify restore height by YYYY-MM-DD format (kenshi84)
2017-01-16specify restore height by YYYY-MM-DD formatkenshi841-0/+2
2017-01-16Change logging to easylogging++moneromooo-monero1-0/+4
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-15Merge pull request #1574Riccardo Spagni1-2/+2
d276a165 wallet2: use at least two rct inputs if possible (moneromooo-monero)
2017-01-14wallet2: use at least two rct inputs if possiblemoneromooo-monero1-2/+2
If we'd make a rct tx with just one input, we try to add a second one to match the 2/2 ideal. This means more txes use that template (and are thus using a larger anonymity set), and it coalesces outputs "for free". We use the smallest amount outputs in priority for this, so we can "clean" the wallet at the same time.
2017-01-14fix timeout in check_connectionJaquee1-1/+1
2017-01-13Merge pull request #1562Riccardo Spagni1-0/+2
a081b39c Move key image export/import functions to wallet2 (Jaquee)
2017-01-13Merge pull request #1559Riccardo Spagni1-0/+1
db56a03f Wallet2 + API: Callbacks for unconfirmed transfers (Jaquee)
2017-01-13Merge pull request #1541Riccardo Spagni1-0/+7
0d3918e1 Wallet api: Update trustedDaemon when daemon is changed (Jaquee) dbb838f4 GUI cold signing (Jaquee) afb85a02 Wallet API: functions for supporting/creating view only wallets (Jaquee)
2017-01-13Merge pull request #1540Riccardo Spagni1-0/+1
79b4e1f9 Cold signing: make sure short payment id isnt encrypted twice (Jaquee)
2017-01-13Merge pull request #1526Riccardo Spagni1-0/+1
5eed5b05 Wallet API: functions for supporting/creating view only wallets (Jaquee)
2017-01-13Move key image export/import functions to wallet2Jaquee1-0/+2
2017-01-12Wallet2 + API: Callbacks for unconfirmed transfersJaquee1-0/+1
2017-01-10GUI cold signingJaquee1-0/+7
fix conflict
2017-01-10Wallet API: functions for supporting/creating view only walletsJaquee1-0/+1
2017-01-10Wallet API: functions for supporting/creating view only walletsJaquee1-0/+1
2017-01-09wallet cli: print originating block heights of mixin keys when making transferkenshi841-2/+5
2017-01-08Merge pull request #1515Riccardo Spagni1-32/+49
ada7c7da portable serializer: tests added (kenshi84) f390a0e2 portable serializer: make signerd/unsigned tx portable, ignore archive version checking (kenshi84)
2017-01-08Cold signing: make sure short payment id isnt encrypted twiceJaquee1-0/+1
2017-01-03portable serializer: tests addedkenshi841-0/+3
2017-01-02portable serializer: make signerd/unsigned tx portable, ignore archive ↵kenshi841-32/+46
version checking
2016-12-21make openalias also available for solo miner; introduce namespace ↵kenshi841-4/+0
tools::dns_utils; support integrated address with dns lookup
2016-12-20Merge pull request #1472Riccardo Spagni1-0/+3
2bddb8eb Refactored password prompting for wallets (Lee Clagett)
2016-12-19Refactored password prompting for walletsLee Clagett1-0/+3
2016-12-16added experimental boost::archive::portable_binary_{i|o}archivekenshi841-4/+3
2016-12-14AddressBook: use unsigned type for row ID'sanonimal1-1/+1
Fixes build warnings and may also prevent future headaches.
2016-12-12addressbook updatesJaquee1-3/+3
2016-12-12GUI address bookJaquee1-1/+29
2016-12-09Fix sending outputs from a tx with more than one pubkeymoneromooo-monero1-1/+13
A bug in cold signing caused a spurious pubkey to be included in transactions, so we need to ensure we use the correct one when sending outputs from one of those.
2016-12-04Merge pull request #1398Riccardo Spagni1-1/+1
f4772bae Fix a few minor typos (Pierre Boyer)
2016-12-04Merge pull request #1385Riccardo Spagni1-0/+3
5783dd8c tests: add unit tests for uri parsing (moneromooo-monero) 82ba2108 wallet: add API and RPC to create/parse monero: URIs (moneromooo-monero) d9001b43 epee: add functions to convert from URL format (ie, %XX values) (moneromooo-monero)
2016-12-04Merge pull request #1380Riccardo Spagni1-0/+2
657a70e0 wallet: add a getter for the filename path (moneromooo-monero)
2016-12-04Fix a few minor typosPierre Boyer1-1/+1
2016-11-28wallet: add API and RPC to create/parse monero: URIsmoneromooo-monero1-0/+3
2016-11-26wallet: add a getter for the filename pathmoneromooo-monero1-0/+2
2016-11-26Improve daemon RPC version handlingmoneromooo-monero1-1/+1
Daemon RPC version is now composed of a major and minor number, so that incompatible changes bump the major version, while compatible changes can still bump the minor version without causing clients to unnecessarily complain.
2016-11-24Merge pull request #1369Riccardo Spagni1-1/+7
6d76072 simplewallet: remove double confirmation when submitting signed tx (moneromooo-monero) 92dea04 wallet2: fix wrong change being recorded for cold signed txes (moneromooo-monero)
2016-11-23wallet2: fix wrong change being recorded for cold signed txesmoneromooo-monero1-1/+7
2016-11-19wallet: fix exporting outputs and key images with txes with two pubkeysmoneromooo-monero1-0/+1
This also needs to make sure to pick the correct one, in the case where cold signing caused to tx keys to be included.
2016-11-17Merge pull request #1318Riccardo Spagni1-1/+4
4fca34d Wallet2: calculate approximate blockchain height on offline creation (Jacob Brydolf)
2016-11-16wallet: auto sync outputs and key images in cold signing filesmoneromooo-monero1-1/+20
When passing around unsigned and signed transactions, outputs and key images are passed along (outputs are passed along unsigned transactions from the hot wallet to the cold wallet, key images are passed along with signed transations from the cold wallet to the hot wallet), to allow more user friendly syncing between hot and cold wallets.
2016-11-13wallet: fix serialization of new m_key_image_known membermoneromooo-monero1-2/+16
2016-11-13Wallet2: calculate approximate blockchain height on offline creationJacob Brydolf1-1/+4
Wallet API: add approximateBlockChainHeight()
2016-11-10Created monero-wallet-rpc, moving functionality from monero-wallet-cliLee Clagett1-0/+19
2016-11-09Merge pull request #1305Riccardo Spagni1-2/+22
c80f4d4 wallet: fix output collision detection for view wallets (moneromooo-monero)
2016-11-08Merge pull request #1306Riccardo Spagni1-0/+6
8aba0d4 wallet: encrypt outputs and key images files with the view key (moneromooo-monero)
2016-11-08Merge pull request #1285Riccardo Spagni1-1/+1
a970a4e refresh speedup (luigi1111)
2016-11-08Merge pull request #1276Riccardo Spagni1-0/+2
18f66f4 wallet: use the dynamic per kB fee (moneromooo-monero) e6deb8a rpc: add a dynamic fee estimation RPC call (moneromooo-monero) 82dbba1 core: dynamic fee algorithm from ArticMine (moneromooo-monero)
2016-11-07wallet: encrypt outputs and key images files with the view keymoneromooo-monero1-0/+6
This key is available to both cold and hot wallet. Authenticated encryption will guard against interception and/or modification of the file.
2016-11-07wallet: fix output collision detection for view walletsmoneromooo-monero1-2/+22
View wallets do not have the spend secret key, and are thus unable to derive key images for incoming outputs. Moreover, a previous patch set key images to zero as a means to mark an output as having an unknown key image, so they could be filled in when importing key images at a later time. That later patch caused spurious collisions. We now use public keys to detect duplicate outputs. Public keys obtained from the blockchain are checked to be identical to the ones derived locally, so can't be spoofed.
2016-11-02wallet: fix bad amounts/fees againmoneromooo-monero1-2/+24
m_amount_out was sometimes getting initialized with the sum of an transaction's outputs, and sometimes with the sum of outputs that were not change. This caused confusion and bugs. We now always set it to the sum of outputs. This reverts an earlier fix for bad amounts as this used the other semantics. The wallet data should be converted automatically in a percentage of cases that I'm hesitant to estimate. In any case, restoring from seed or keys or rebuilding the cache will get it right.
2016-11-01refresh speedupluigi11111-1/+1
Compute derivation only once per tx, instead of once per output. Approx 33% faster while using 75% as much CPU on my machine. Note old functions in cryptonote_core (lookup_acc_outs and is_out_to_acc) are still used by tests.
2016-11-01Merge pull request #1281Riccardo Spagni1-0/+3
bb560dd wallet: new import_outputs/export_outputs commands (moneromooo-monero)
2016-10-31wallet: use the dynamic per kB feemoneromooo-monero1-0/+2
2016-10-30wallet: new import_outputs/export_outputs commandsmoneromooo-monero1-0/+3
The intended use is to export outputs from a hot wallet, which can scan incoming transfers from the network, and import them in the cold wallet, which can't. The cold wallet can then compute key images for those outputs, which can then be exported with export_key_images, etc.
2016-10-30wallet: set incoming outputs' key image to 0 on view walletsmoneromooo-monero1-0/+1
This allows rescan_spent to know the daemon response to those is not valid.
2016-10-30wallet: print tx overview on submit_transfer toomoneromooo-monero1-1/+1
This is on the potentially compromised wallet, but still guards against stupid mistakes.
2016-10-25wallet: fix pre-rct cold wallet signing not splitting changemoneromooo-monero1-3/+6
Re-creating the transaction on the cold wallet was not splitting the change, causing the transaction to be rejected by the network. This worked on testnet since amounts do not have to be split. Also add selected_transfers, which can now be saved since they're size_t rather than iterators. This allows the view wallet to properly set the sent outputs as spent and update balance. Bump transfer file version numbers to match.
2016-10-22Merge pull request #1225Riccardo Spagni1-2/+2
04da979 Always confirm transfers defaults to ON/YES (NanoAkron)
2016-10-22Merge pull request #1224Riccardo Spagni1-0/+1
8231997 simplewallet: fix sweep_all misreporting sweeped amount for rct outputs (moneromooo-monero) 985f61a wallet: force 0 mixin transactions to use pre-rct txes (moneromooo-monero)
2016-10-22Merge pull request #1200Riccardo Spagni1-1/+0
a3748f4 Rewrote add_wallet_create_if_needed for clearer flow and behaviour (NanoAkron)
2016-10-15Rewrote add_wallet_create_if_needed for clearer flow and behaviourNanoAkron1-1/+0
2016-10-15Always confirm transfers defaults to ON/YESNanoAkron1-2/+2
2016-10-15simplewallet: fix sweep_all misreporting sweeped amount for rct outputsmoneromooo-monero1-0/+1
RingCT outputs will be 0 in the vin, so we need to get the actual amount from elsewhere.
2016-10-04wallet: better implementation of sweep_unmixablemoneromooo-monero1-2/+1
This was still using the old transaction creation algorithm, coupled with a deterministic output selection scheme, which made it ill suited to the job, since it'd loop indefinitely in case the fee increased between the test tx and adding the fee.
2016-10-04Merge pull request #1173Riccardo Spagni1-0/+1
65ea836 wallet2_api: added Wallet::daemonBlockChainTargetHeight() libwallet_api: Wallet::blockChainTargetHeight (Jacob Brydolf)
2016-10-04Merge pull request #1160Riccardo Spagni1-2/+5
80b4da3 wallet: wallet option to confirm transfers with no payment id (moneromooo-monero)
2016-10-04Merge pull request #1140Riccardo Spagni1-13/+73
bba6af9 wallet: cold wallet transaction signing (moneromooo-monero) 9872dcb wallet: fix log confusion between bytes and kilobytes (moneromooo-monero) d9b0bf9 cryptonote_core: make extra field removal more generic (moneromooo-monero) 98f19d4 serialization: add support for serializing std::pair and std::list (moneromooo-monero)
2016-10-03wallet2_api: added Wallet::daemonBlockChainTargetHeight()Jacob Brydolf1-0/+1
libwallet_api: Wallet::blockChainTargetHeight Signed-off-by: Jacob Brydolf <jacob@brydolf.net>
2016-10-01wallet: wallet option to confirm transfers with no payment idmoneromooo-monero1-2/+5
set confirm-missing-payment-id 0|1 Defaults to true.
2016-09-27wallet: cold wallet transaction signingmoneromooo-monero1-13/+73
This change adds the ability to create a new unsigned transaction from a watch only wallet, and save it to a file. This file can then be moved to another computer/VM where a cold wallet may load it, sign it, and save it. That cold wallet does not need to have a blockchain nor daemon. The signed transaction file can then be moved back to the watch only wallet, which can load it and send it to the daemon. Two new simplewallet commands to use it: sign_transfer (on the cold wallet) submit_transfer (on the watch only wallet) The transfer command used on a watch only wallet now writes an unsigned transaction set in a file called 'unsigned_monero_tx' instead of submitting the tx to the daemon as a normal wallet does. The signed tx file is called 'signed_monero_tx'.
2016-09-26wallet2_api: added Wallet::daemonBlockChainHeight()Ilya Kitaev1-0/+1
2016-09-16wallet: change priority/fee to ArticMine's recommendationmoneromooo-monero1-9/+9
We keep 1, 2, 3 multipliers till the fee decrase from 0.01/kB to 0.002/kB, where we start using 1, 20, 166 multipliers. This ensures the higher multiplier will compensate for the block reward penalty when pushing past 100% of the past median. The fee-multiplier wallet setting is now rename to priority, since it keeps its [0..3] range, but maps to different multiplier values.
2016-09-15Decrease minimum fee from 0.01/kB to 0.002/kBmoneromooo-monero1-1/+1
The wallet will start using that fee about two weeks after hard fork 3, when most people will likely have updated their daemons.
2016-08-28wallet: transfer_selected_rct now also selects fake outsmoneromooo-monero1-0/+2
2016-08-28New "Halfway RingCT" outputs for coinbase transactionsmoneromooo-monero1-2/+17
When RingCT is enabled, outputs from coinbase transactions are created as a single output, and stored as RingCT output, with a fake mask. Their amount is not hidden on the blockchain itself, but they are then able to be used as fake inputs in a RingCT ring. Since the output amounts are hidden, their "dustiness" is not an obstacle anymore to mixing, and this makes the coinbase transactions a lot smaller, as well as helping the TXO set to grow more slowly. Also add a new "Null" type of rct signature, which decreases the size required when no signatures are to be stored, as in a coinbase tx.
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero1-4/+1
This allows the key to be not the same for two outputs sent to the same address (eg, if you pay yourself, and also get change back). Also remove the key amounts lists and return parameters since we don't actually generate random ones, so we don't need to save them as we can recalculate them when needed if we have the correct keys.
2016-08-28wallet: do not store signatures in the wallet cachemoneromooo-monero1-6/+29
Saves some substantial space. Also avoid calculating tx hashes we don't need.
2016-08-28wallet2: factor m_spent changesmoneromooo-monero1-0/+2
Makes it easier to track what is going on.
2016-08-28wallet: use the prefered rct case only when enough rct outs existmoneromooo-monero1-0/+2
2016-08-28wallet: do not try to use rct txes a few blocks before the forkmoneromooo-monero1-2/+2
2016-08-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero1-3/+1
Scheme design from luigi1114.
2016-08-28rpc: send global indices along with blocks/transacions on refreshmoneromooo-monero1-5/+5
This plugs a privacy leak, where the wallet tells the daemon which transactions contain outputs for the wallet by asking for additional information for that particular transaction. As a nice bonus, this actually makes refresh slightly faster.
2016-08-28wallet: better tx input selectionmoneromooo-monero1-0/+3
We try to avoid related inputs, when possible
2016-08-28port get_tx_key/check_tx_key to rctmoneromooo-monero1-3/+10
2016-08-28wallet: rct specific output selectionmoneromooo-monero1-0/+2
Before the normal selection, we attempt to find either one or two suitable outputs to use as inputs to the rct tx. The intent is that most rct txes will have one or two inputs, and we want all to look the same if possible. When two outputs are needed, we try to find a pair which are not related (ie, by being from the same or similar block height).
2016-08-28wallet: factor transfer_rct code with transfer codemoneromooo-monero1-1/+0
The "transfer" simplewallet command is renamed to "transfer_original". "transfer_new" is renamed "transfer", "transfer_rct" is removed, and the new "transfer" now selects rct or non rct transactions based on the current block height.
2016-08-28wallet: reset output spent status on blockchain reorgmoneromooo-monero1-6/+20
If the blockchain gets reorganized, all outputs spent in the part of the blockchain that's blown away need to be reset to unspent (they may end up spent again on the blocks that replace the blocks that are removed, however).
2016-08-28add rct to the protocolmoneromooo-monero1-10/+47
It is not yet constrained to a fork, so don't use on the real network or you'll be orphaned or rejected.
2016-08-11Fake outs set is now decided by the walletmoneromooo-monero1-2/+2
This plugs a privacy leak from the wallet to the daemon, as the daemon could previously see what input is included as a transaction input, which the daemon hadn't previously supplied. Now, the wallet requests a particular set of outputs, including the real one. This can result in transactions that can't be accepted if the wallet happens to select too many outputs with non standard unlock times. The daemon could know this and select another output, but the wallet is blind to it. It's currently very unlikely since I don't think anything uses non default unlock times. The wallet requests more outputs than necessary so it can use spares if any of the returns outputs are still locked. If there are not enough spares to reach the desired mixin, the transaction will fail.
2016-08-01new unlocked parameter to output_histogrammoneromooo-monero1-1/+1
This constrains the number of instances of any amount to the unlocked ones (as defined by the default unlock time setting: outputs with non default unlock time are not considered, so may be counted as unlocked even if they are not actually unlocked).
2016-07-24wallet: new {ex,im}port_key_images commands and RPC callsmoneromooo-monero1-1/+3
They are used to export a signed set of key images from a wallet with a private spend key, so an auditor with the matching view key may see which of those are spent, and which are not.
2016-07-20wallet: add unconfirmed incoming txes from the txpoolmoneromooo-monero1-3/+10
Shown in show_transfers simplewallet command, and get_transfers RPC command, if req.pool is true.
2016-07-20Merge pull request #902Riccardo Spagni1-1/+1
014f3a0 Add a daemon RPC version, and make simplewallet check it (moneromooo-monero)
2016-07-19wallet: add command and RPC to sign/verify datamoneromooo-monero1-0/+3
Signing is done using the spend key, since the view key may be shared. This could be extended later, to let the user choose which key (even a per tx key). simplewallet's sign/verify API uses a file. The RPC uses a string (simplewallet can't easily do strings since commands receive a tokenized set of arguments).
2016-07-10Add a daemon RPC version, and make simplewallet check itmoneromooo-monero1-1/+1
If the version is different, simplewallet will refuse to use that daemon, unless --allow-mismatched-daemon-version is used.
2016-07-06Merge pull request #878Riccardo Spagni1-5/+9
945c272 wallet: add a fee multiplier (moneromooo-monero)
2016-06-22wallet: add a fee multipliermoneromooo-monero1-5/+9
Fee can now be multiplied by 2 or 3, if users want to give priority to their transactions. There are only three levels to avoid too much fingerprinting. Default is 1 (minimum fee). The default multiplier can be set by "set fee-multiplier X".
2016-06-22Typo fixedIlya Kitaev1-1/+1
2016-06-03Wallet API : WalletManager::findWallets() addedIlya Kitaev1-1/+1
2016-05-27Merge remote-tracking branch 'upstream/master'Ilya Kitaev1-1/+2
2016-05-13i_wallet_callback: virtual dtorIlya Kitaev1-0/+1
2016-05-12Merge remote-tracking branch 'upstream/master'Ilya Kitaev1-13/+44
2016-04-29Move refresh height to keys file from cache fileHoward Chu1-1/+2
2016-04-26wallet: allow attaching notes to txidsmoneromooo-monero1-1/+8
2016-04-26wallet: add GMT timestamps to transfers/paymentsmoneromooo-monero1-6/+18
2016-04-26Merge pull request #815Riccardo Spagni1-0/+1
b0850a9 wallet: add a new sweep_all command and RPC command (moneromooo-monero)
2016-04-26Merge pull request #814Riccardo Spagni1-2/+9
68cbe15 modified: src/wallet/wallet2.cpp modified: src/wallet/wallet2.h (awfulcrawler) 4b325bd modified: src/simplewallet/simplewallet.cpp modified: src/wallet/wallet2.cpp modified: src/wallet/wallet2.h (awfulcrawler)
2016-04-26Merge pull request #811Riccardo Spagni1-4/+6
672162d tests: fix compile failure on wallet2::transfer (moneromooo-monero) b0c18ef wallet2: move output selection api public (moneromooo-monero)
2016-04-26Merge remote-tracking branch 'upstream/master' into developIlya Kitaev1-16/+16
2016-04-19wallet: add a new sweep_all command and RPC commandmoneromooo-monero1-0/+1
This sends all outputs in a wallet to a given address, alleviating the difficulty people have had trying to send all monero but being left with some small amount left.
2016-04-18 modified: src/wallet/wallet2.cppawfulcrawler1-2/+2
modified: src/wallet/wallet2.h Removed working comments
2016-04-18 modified: src/simplewallet/simplewallet.cppawfulcrawler1-2/+9
modified: src/wallet/wallet2.cpp modified: src/wallet/wallet2.h Update to fix unconfirmed balance and give a slightly more verbose and informative confirmation message for transfers
2016-04-17Add GET_HASHES_FAST rpc, use it in walletHoward Chu1-0/+2
When m_refresh_from_block_height has been set, only hashes will be retrieved up to that height, instead of full blocks. The same will be done for "refresh <height>" when the specified height is beyond the current local blockchain.
2016-04-17wallet2: move output selection api publicmoneromooo-monero1-4/+6
2016-04-02wallet: better output selection for transfer/transfer_newmoneromooo-monero1-15/+15
This now requests the set of outputs that can be mixed first, to avoid trying non dust but unmixable outputs, which we know will fail.
2016-03-31Merge remote-tracking branch 'upstream/master'Ilya Kitaev1-5/+14
2016-03-27wallet: make load_keys check types when loading JSONmoneromooo-monero1-1/+1
2016-03-26wallet: pass std::function by const ref, not valuemoneromooo-monero1-1/+1
Because we can.
2016-03-26wallet: do not leak owned amounts to the daemon unless --trusted-daemonmoneromooo-monero1-2/+2
This will be slower, though more private. New trusted_daemon parameter to the matching RPC call, false by default.
2016-03-26wallet: change sweep_dust to sweep_unmixablemoneromooo-monero1-2/+5
With the change in mixin rules for v2, the "annoying" outputs are slightly changed. There is high correlation between dust and unmixable, but no equivalence.
2016-03-25- testnet option added to api;Ilya Kitaev1-0/+1
2016-03-25wallet: add a --generate-from-json flagmoneromooo-monero1-3/+9
It takes a filename containing JSON data to generate a wallet. The following fields are valid: version: integer, should be 1 filename: string, path/filename for the newly created wallet scan_from_height: 64 bit unsigned integer, optional password: string, optional viewkey: string, hex representation spendkey: string, hex representation seed: string, optional, list of words separated by spaces Either seed or private keys should be given. If using private keys, the spend key may be omitted (the wallet will not be able to spend, but will see incoming transactions). If scan_from_height is given, blocks below this height will not be checked for transactions as an optimization.
2016-03-21Revert "Print stack trace upon exceptions"moneromooo-monero1-1/+0
Ain't nobody got time for link/cmake skullduggery. This reverts commit fff238ec94ac6d45fc18c315d7bc590ddfaad63d.
2016-03-19Print stack trace upon exceptionsmoneromooo-monero1-0/+1
Useful for debugging users' logs
2016-03-16Wallet::store_to(path, password) implemented;Ilya Kitaev1-0/+6
2016-03-16Wallet::setPassword() method for wallet2_apiIlya Kitaev1-0/+3
2016-03-11wallet_rpc_server: make use_fork_rules publicmoneromooo-monero1-1/+2
We will need it in the wallet RPC server
2016-03-11Use boost::thread instead of std::threadHoward Chu1-1/+1
and all other associated IPC
2016-02-22simplewallet: add a new --restore-from-keys optionmoneromooo-monero1-0/+10
It is similar in use to --restore-from-view-key, but also expects a spend private key. Requested by luigi1112, and useful to restore MyMonero wallets.
2016-01-31Merge pull request #634Riccardo Spagni1-3/+4
7fc6fa3 wallet: forbid dust altogether in output selection where appropriate (moneromooo-monero) 5e1a739 blockchain: log number of outputs available for a new tx (moneromooo-monero)
2016-01-31wallet: forbid dust altogether in output selection where appropriatemoneromooo-monero1-3/+4
2016-01-29wallet: detect and handle failed outgoing transfersmoneromooo-monero1-1/+6
When a transaction is not found in the pool anymore, it is marked as failed, and displayed as such in show_transfers.
2016-01-29Fix V1/V2 use of hard fork related parametersmoneromooo-monero1-1/+1
Some of it uses hardcoded height, which will need some thinking for next (voted upon) fork.
2016-01-10wallet2: decide at runtime which upper tx size to usemoneromooo-monero1-2/+4
The value will be different depending on whether we've reached the first hard fork, which allows a larger size, or not. This fixes transactions being rejected by the daemon on mainnet where the first hard fork is not yet active.
2015-12-31updated copyright yearRiccardo Spagni1-1/+1
2015-12-30wallet: add a rescan_bc command and rescan_blockchain RPCmoneromooo-monero1-0/+1
Blockchain hashes and key images are flushed, and blocks are pulled anew from the daemon. The console command is shortened to match bc_height. This should make it a lot easier on users who are currently told to remove this particular cache file but keep the keys one, etc, etc.
2015-12-30wallet: protect against exceptions in the block pull threadmoneromooo-monero1-1/+1
This can happen when the daemon exits, which would also cause the wallet to crash via unhandled exception
2015-12-22Merge pull request #550Riccardo Spagni1-2/+5
8c93608 wallet: fix load/save versioning bug for recently added tx data (moneromooo-monero)
2015-12-20wallet: fix load/save versioning bug for recently added tx datamoneromooo-monero1-2/+5
The version number passed to those data's serialize function was always 0, not the wallet's version as I had expected. A version number now exists for these structures so they're versioned correctly.
2015-12-19Allow the wallet to access hard fork informationmoneromooo-monero1-1/+3
And make it change behavior slightly when close/after first hard fork
2015-12-05wallet: make the wallet refresh type a wallet settingmoneromooo-monero1-1/+2
instead of a command line setting. It makes sense that is is a long lived setting.
2015-11-30Merge pull request #507Riccardo Spagni1-2/+5
62e49a5 wallet: optional automatic refresh from the daemon (moneromooo-monero)
2015-11-28wallet: optional automatic refresh from the daemonmoneromooo-monero1-2/+5
The daemon will be polled every 90 seconds for new blocks. It is enabled by default, and can be turned on/off with set auto-refresh 1 and set auto-refresh 0 in the wallet.
2015-11-27wallet2: parallelize pulling blocks and processing them on refreshmoneromooo-monero1-0/+5
This needed locking the use of m_http_client, to avoid collisions in I/O.
2015-11-27wallet2: maintain the short chain manually when refreshingmoneromooo-monero1-1/+1
2015-11-27wallet2: split pull blocks between pulling and processingmoneromooo-monero1-1/+2
2015-11-22wallet: make the refresh optimizations selectable via command linemoneromooo-monero1-2/+15
Take the opportunity to add a no-coinbase case too, for even faster sync when an address is known to never have mined to.
2015-11-22wallet: speedup refresh from daemonmoneromooo-monero1-1/+1
Assume the whole of a coinbase goes to the same address (so that if the first output isn't for us, none of it is), and only look for payment id when we received something in the transaction.
2015-11-22wallet2: speedup refresh a bitmoneromooo-monero1-1/+3
Use the NoodleDoodle threading technique to speedup a couple code blocks on the main path when refreshing blocks without any transactions for us.
2015-11-22wallet: storing outgoing tx info now defaults to enabledmoneromooo-monero1-2/+2
The info is stored encrypted, and is pretty useful, often after the fact.
2015-11-22wallet: rename store-tx-keys to store-tx-infomoneromooo-monero1-5/+5
With backward compatibility
2015-11-22wallet: improve show_transfersmoneromooo-monero1-4/+27
More information is now saved and displayed
2015-11-21wallet: use incoming blocks to keep track of payments toomoneromooo-monero1-1/+2
2015-11-15wallet: track outgoing payments and add a show_transfers commandmoneromooo-monero1-3/+30
It's a user friendly display of incoming and outgoing transfers, listed by height, within an optional height range.
2015-10-30simplewallet: add a set default-mixin commandmoneromooo-monero1-2/+5
The default default mixin is 4. It can now be changed per wallet.
2015-10-27Fix a possibly-unused warning, and rationalize typesmoneromooo-monero1-4/+4
2015-10-25Fix leak on real output when using a very recent outputmoneromooo-monero1-1/+0
The wallet and the daemon applied different height considerations when selecting outputs to use. This can leak information on which input in a ring signature is the real one. Found and originally fixed by smooth on Aeon.
2015-10-11from hard fork 2, all outputs must be decomposedmoneromooo-monero1-32/+23
The wallet decomposes fully as of now too.
2015-08-24wallet: only return tx keys via RPC if requestedmoneromooo-monero1-3/+6
To get the tx keys returned via RPC, set the "get_tx_key" or "get_tx_keys" request field to true (defaults to false).
2015-08-24Merge pull request #381Riccardo Spagni1-0/+12
f197599 wallet: encrypt the cache file (moneromooo-monero) 98c76a3 chacha8: add a key generation variant that take a pointer and size (moneromooo-monero)
2015-08-22wallet: encrypt the cache filemoneromooo-monero1-0/+12
It contains private data, such as a record of transactions. The key is derived from the view and spend secret keys. The encryption currently is one shot, so may require a lot of memory for large wallet caches.
2015-08-19make tx keys available to the usermoneromooo-monero1-3/+11
They are also stored in the cache file, to be retrieved using a new get_tx_key command.
2015-08-11wallet: new rescan_spent command to update outputs' spent statusmoneromooo-monero1-0/+1
This obsoletes the need for a lengthy blockchain rescan when a transaction doesn't end up in the chain after being accepted by the daemon, or any other reason why the wallet's idea of spent and unspent outputs gets out of sync from the blockchain's.