aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.cpp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-02-27wallet: invalidate node proxy cache when reconnectingmoneromooo-monero1-0/+1
2017-02-24add rpc timeouts to calls that might timeoutRiccardo Spagni1-4/+4
2017-02-23wallet2: fix wrong status on daemon shutdown/startupJaquee1-1/+5
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-21Merge pull request #1749Riccardo Spagni1-5/+5
5a3b1e98 wallet2: fix failure to send (relatedness check in wrong case) (moneromooo-monero)
2017-02-19wallet2: fix failure to send (relatedness check in wrong case)moneromooo-monero1-5/+5
A relatedness check was meant to be done in the case of adding an extra output if just one was enough. This was mistakenly added to the "preferred output" case.
2017-02-14simplewallet: validate hex input sizemoneromooo-monero1-3/+3
2017-02-11Merge pull request #1689Riccardo Spagni1-3/+18
ce7fcbb4 Add server auth to monerod, and client auth to wallet-cli and wallet-rpc (Lee Clagett)
2017-02-11Merge pull request #1686Riccardo Spagni1-10/+10
bceaf4b7 wallet2: fix transactions not considering rct inputs (moneromooo-monero)
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi841-2/+2
2017-02-06wallet2: fix transactions not considering rct inputsmoneromooo-monero1-10/+10
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-3/+18
2017-02-04wallet2::init() - disconnect before init if connectedJaquee1-0/+2
Makes it possible for GUI to reinit with new daemon without closing and reopening wallet.
2017-02-04Merge pull request #1640Riccardo Spagni1-0/+6
f97526e6 simplewallet: option to always ask password for any crytical operations (kenshi84)
2017-02-03simplewallet: option to always ask password for any crytical operationskenshi841-0/+6
2017-02-02Merge pull request #1652Riccardo Spagni1-1/+1
fba9332d Changed console output for transaction from L0 to L1 (NanoAkron)
2017-02-02Merge pull request #1647Riccardo Spagni1-1/+2
2bf029be wallet2: fix corner case failing to send a second output (moneromooo-monero)
2017-02-02Merge pull request #1634Riccardo Spagni1-3/+3
99f58437 Fix invalid + of std::string and int (Timothy D. Prime)
2017-02-02Merge pull request #1629Riccardo Spagni1-27/+20
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-30Changed console output for transaction from L0 to L1NanoAkron1-1/+1
2017-01-28wallet2: fix corner case failing to send a second outputmoneromooo-monero1-1/+2
If a rct transaction can be made with just one input, a second output will be added. This output will be the smallest amount output available. However, if this output is a non rct output with less available fake outs than requested, the transaction will be rejected. We now check the histogram to only consider outputs with enough available fake outs in the first place.
2017-01-26Fix invalid + of std::string and intTimothy D. Prime1-3/+3
These warnings were emitted by clang++, and they are real bugs. src/rpc/core_rpc_server.cpp:208:58: warning: adding 'uint64_t' (aka 'unsigned long') to a string does not append to the string [-Wstring-plus-int] res.status = "Error retrieving block at height " + height; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ The obvious intent is achieved by using std::to_string().
2017-01-25Updates to epee HTTP client codeLee Clagett1-27/+20
- 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-23/+23
2017-01-22wallet2: fix sending a rct tx with a single output availablemoneromooo-monero1-3/+50
This would have tried to send a second output to make the tx look like the 2/2 ideal, but it would not fail to find one because picking an output from preferred_inputs priority list did not remove it from the unused tranfer/dust outputs, so it would try to send the same output twice. While there, I also added a check to avoid sending a second input if it's related to the first. Better 1/2 than linking inputs, I think.
2017-01-16wallet: add a node RPC cache layer for simple RPC callsmoneromooo-monero1-77/+42
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-21/+45
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/+86
16b8b66a specify restore height by YYYY-MM-DD format (kenshi84)
2017-01-16specify restore height by YYYY-MM-DD formatkenshi841-0/+86
2017-01-16Change logging to easylogging++moneromooo-monero1-3/+6
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 #1561Riccardo Spagni1-3/+3
d561f4ad enable clang checks that were disabled (Chris Vickio) 0aefb2f6 remove std::move from return statements (pessimizing-move warning) (Chris Vickio) 629d5b76 change counter from bool to int (deprecated-increment-bool warning) (Chris Vickio) fb76d439 add extra braces around subobjects (missing-braces warning) (Chris Vickio) 3b6d5f25 make struct/class declarations consistent (mismatched-tags warning) (Chris Vickio) fcf66925 remove unused fields from network_throttle (unused-private-field warning) (Chris Vickio) 296f8c16 inline unused function (for unused-function warning) (Chris Vickio)
2017-01-15Merge pull request #1574Riccardo Spagni1-7/+34
d276a165 wallet2: use at least two rct inputs if possible (moneromooo-monero)
2017-01-15Merge pull request #1573Riccardo Spagni1-2/+2
dea53962 fix timeout in check_connection (Jaquee)
2017-01-15remove std::move from return statements (pessimizing-move warning)Chris Vickio1-2/+2
2017-01-15change counter from bool to int (deprecated-increment-bool warning)Chris Vickio1-1/+1
2017-01-14wallet2: use at least two rct inputs if possiblemoneromooo-monero1-7/+34
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-2/+2
2017-01-13wallet2: fix tx reroll not updating fee is going up a kB stepmoneromooo-monero1-7/+13
2017-01-13Merge pull request #1562Riccardo Spagni1-1/+88
a081b39c Move key image export/import functions to wallet2 (Jaquee)
2017-01-13Merge pull request #1559Riccardo Spagni1-1/+4
db56a03f Wallet2 + API: Callbacks for unconfirmed transfers (Jaquee)
2017-01-13Merge pull request #1541Riccardo Spagni1-2/+15
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-1/+42
79b4e1f9 Cold signing: make sure short payment id isnt encrypted twice (Jaquee)
2017-01-13Move key image export/import functions to wallet2Jaquee1-1/+88
2017-01-12Wallet2 + API: Callbacks for unconfirmed transfersJaquee1-1/+4
2017-01-10GUI cold signingJaquee1-2/+15
fix conflict
2017-01-09wallet cli: print originating block heights of mixin keys when making transferkenshi841-0/+6
2017-01-08Merge pull request #1515Riccardo Spagni1-18/+42
ada7c7da portable serializer: tests added (kenshi84) f390a0e2 portable serializer: make signerd/unsigned tx portable, ignore archive version checking (kenshi84)
2017-01-08Merge pull request #1508Riccardo Spagni1-1/+6
4585ada4 Wallet2: faster exit while refreshing (Jaquee)
2017-01-08Merge pull request #1504Riccardo Spagni1-1/+1
5f4ac6b9 wallet2 bugfix: store watch_only flag properly with rewrite() (kenshi84)
2017-01-08Merge pull request #1501Riccardo Spagni1-0/+17
cebae0c5 wallet2: check the node returned the real output when requested (moneromooo-monero)
2017-01-08Merge pull request #1497Riccardo Spagni1-1/+1
50511677 wallet2: fix large reorgs failing (moneromooo-monero)
2017-01-08Cold signing: make sure short payment id isnt encrypted twiceJaquee1-1/+42
2017-01-02portable serializer: make signerd/unsigned tx portable, ignore archive ↵kenshi841-18/+42
version checking
2016-12-27Wallet2: faster exit while refreshingJaquee1-1/+6
2016-12-27wallet2: check the node returned the real output when requestedmoneromooo-monero1-0/+17
2016-12-26wallet2 bugfix: store watch_only flag properly with rewrite()kenshi841-1/+1
2016-12-24wallet2: fix large reorgs failingmoneromooo-monero1-1/+1
If a reorg was large enough that a full 1000 block chunk from the daemon was all known blocks, refresh would stop, and no reorg would happen.
2016-12-21make openalias also available for solo miner; introduce namespace ↵kenshi841-68/+0
tools::dns_utils; support integrated address with dns lookup
2016-12-20Merge pull request #1474Riccardo Spagni1-1/+1
fc40b3e7 Lower connection timeout in check_connection() (Jaquee)
2016-12-20Merge pull request #1472Riccardo Spagni1-16/+17
2bddb8eb Refactored password prompting for wallets (Lee Clagett)
2016-12-20also use portable serializer for boost_serialization_helper.h and ↵kenshi841-2/+2
net_node.inl, completely adandon boost/archive/binary_oarchive.hpp
2016-12-19Refactored password prompting for walletsLee Clagett1-16/+17
2016-12-19Lower connection timeout in check_connection()Jaquee1-1/+1
2016-12-16added experimental boost::archive::portable_binary_{i|o}archivekenshi841-7/+27
2016-12-14AddressBook: use unsigned type for row ID'sanonimal1-2/+2
Fixes build warnings and may also prevent future headaches.
2016-12-12addressbook updatesJaquee1-4/+11
2016-12-12Merge pull request #1434Riccardo Spagni1-0/+17
5df92877 GUI address book (Jaquee)
2016-12-12GUI address bookJaquee1-0/+17
2016-12-10wallet: bring forward use of the dynamic feemoneromooo-monero1-1/+1
It was 14 days after v4, it is now one day after it. luigi1111's suggestion
2016-12-10Merge pull request #1422Riccardo Spagni1-1/+1
9b00d80f wallet2: pass by const ref where possible (moneromooo-monero)
2016-12-10Merge pull request #1419Riccardo Spagni1-2/+7
f4a3ce15 Fix sending outputs from a tx with more than one pubkey (moneromooo-monero)
2016-12-10wallet2: pass by const ref where possiblemoneromooo-monero1-1/+1
Reported by kenshi84
2016-12-09Fix sending outputs from a tx with more than one pubkeymoneromooo-monero1-2/+7
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-08Merge pull request #1415Riccardo Spagni1-3/+13
6c44f5c6 wallet: send 0 change to a random address where necessary with rct (moneromooo-monero)
2016-12-07wallet: send 0 change to a random address where necessary with rctmoneromooo-monero1-3/+13
If a rct transaction would cause no change to be generated, a zero change output is added, and sent to a randomly generated address. This ensures that no transaction will be sent with just one output, which could cause the receiver to be able to determine which of the inputs in the sent rings is the real one. This is very rare, since it requires the sum of outputs to be equal to the sum of outputs plus the fee, which is now a function of the last few blocks.
2016-12-05Remove infinite loop in refresh codeJaquee1-69/+43
This reverts commit fd181b03bb58a8b0628d2af8637cf6bb968fc437.
2016-12-04Merge pull request #1399Riccardo Spagni1-2/+1
73ac3b8e wallet2: avoid possible undefined behavior on empty string (moneromooo-monero)
2016-12-04Merge pull request #1398Riccardo Spagni1-4/+4
f4772bae Fix a few minor typos (Pierre Boyer)
2016-12-04Merge pull request #1385Riccardo Spagni1-0/+142
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/+5
657a70e0 wallet: add a getter for the filename path (moneromooo-monero)
2016-12-04wallet2: avoid possible undefined behavior on empty stringmoneromooo-monero1-2/+1
2016-12-04Fix a few minor typosPierre Boyer1-4/+4
2016-11-28wallet: add API and RPC to create/parse monero: URIsmoneromooo-monero1-0/+142
2016-11-26wallet: add a getter for the filename pathmoneromooo-monero1-0/+5
2016-11-26Improve daemon RPC version handlingmoneromooo-monero1-4/+4
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-2/+4
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-24Merge pull request #1361Riccardo Spagni1-3/+3
1d9e223 rpc: do not include output indices for pool txes (moneromooo-monero) e227d6e rpc: bump version after RPC changes (moneromooo-monero) 2c0173c Add a get_outs (fully text based) version of get_outs.bin (moneromooo-monero) e05907b rpc: add output indices to gettransactions (moneromooo-monero)
2016-11-24Merge pull request #1358Riccardo Spagni1-7/+51
7abfc54 wallet: fix exporting outputs and key images with txes with two pubkeys (moneromooo-monero)
2016-11-24Merge pull request #1352Riccardo Spagni1-1/+1
d01f5c7 wallet2: fix illegal memory access removing newlines from password (moneromooo-monero)
2016-11-24Merge pull request #1351Riccardo Spagni1-4/+5
e6264a2 wallet2: fix decrypting a bit too much in authenticated mode (moneromooo-monero)
2016-11-23wallet2: fix wrong change being recorded for cold signed txesmoneromooo-monero1-2/+4
2016-11-22Add a get_outs (fully text based) version of get_outs.binmoneromooo-monero1-3/+3
2016-11-19wallet: fix exporting outputs and key images with txes with two pubkeysmoneromooo-monero1-7/+51
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-18Clamp refresh from height to blockchain height.Dion Ahmetaj1-43/+69
2016-11-17wallet2: fix illegal memory access removing newlines from passwordmoneromooo-monero1-1/+1
2016-11-17wallet2: fix decrypting a bit too much in authenticated modemoneromooo-monero1-4/+5
2016-11-17Merge pull request #1318Riccardo Spagni1-0/+28
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/+32
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-16wallet2: fill key image and pubkey maps when importing outputsmoneromooo-monero1-0/+2
2016-11-16wallet: cast indices to string in logs to be nice to CLANGmoneromooo-monero1-4/+4
2016-11-16wallet2: try all tx keys when scanning a new transactionmoneromooo-monero1-2/+7
The vast majority of transactions will have just one tx pubkey, but a bug with cold wallet signing caused two such keys to be there, with the second one being the real one.
2016-11-15wallet2: fill in key image map when importing key imagesmoneromooo-monero1-0/+1
2016-11-13Wallet2: calculate approximate blockchain height on offline creationJacob Brydolf1-0/+28
Wallet API: add approximateBlockChainHeight()
2016-11-11Merge pull request #1316Riccardo Spagni1-1/+343
358e068 Created monero-wallet-rpc, moving functionality from monero-wallet-cli (Lee Clagett)
2016-11-10Created monero-wallet-rpc, moving functionality from monero-wallet-cliLee Clagett1-1/+343
2016-11-09wallet: fix corner case of no recent outputs availablemoneromooo-monero1-6/+9
Also clarify related logs
2016-11-09Merge pull request #1305Riccardo Spagni1-18/+24
c80f4d4 wallet: fix output collision detection for view wallets (moneromooo-monero)
2016-11-08Merge pull request #1306Riccardo Spagni1-0/+55
8aba0d4 wallet: encrypt outputs and key images files with the view key (moneromooo-monero)
2016-11-08Merge pull request #1285Riccardo Spagni1-16/+13
a970a4e refresh speedup (luigi1111)
2016-11-08Merge pull request #1276Riccardo Spagni1-4/+40
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/+55
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-18/+24
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-0/+12
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-16/+13
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 #1283Riccardo Spagni1-2/+2
4869db7 adding static_assert to pod functions in string tools (Lee Clagett)
2016-11-01Merge pull request #1281Riccardo Spagni1-1/+49
bb560dd wallet: new import_outputs/export_outputs commands (moneromooo-monero)
2016-10-31adding static_assert to pod functions in string toolsLee Clagett1-2/+2
2016-10-31wallet: use the dynamic per kB feemoneromooo-monero1-4/+40
2016-10-30wallet: new import_outputs/export_outputs commandsmoneromooo-monero1-1/+49
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-4/+18
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/+7
This is on the potentially compromised wallet, but still guards against stupid mistakes.
2016-10-26simplewallet: log transactions to submit in submit_transfermoneromooo-monero1-1/+2
Not as trustworthy as this is in the view wallet, the one that's considered compromised.
2016-10-25wallet: fix pre-rct cold wallet signing not splitting changemoneromooo-monero1-14/+13
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-23Merge pull request #1246Riccardo Spagni1-0/+7
372f338 wallet: sanity check on selected transfer indices in signed ptx (moneromooo-monero)
2016-10-22Merge pull request #1225Riccardo Spagni1-6/+5
04da979 Always confirm transfers defaults to ON/YES (NanoAkron)
2016-10-22Merge pull request #1224Riccardo Spagni1-1/+7
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 #1223Riccardo Spagni1-5/+7
0950be9 wallet: speed up output selection, and fix bug with relatedness calculation (moneromooo-monero) 0eba133 wallet: fix mixup between mixin 2 and 4 before/after v5 (moneromooo-monero)
2016-10-22Merge pull request #1220Riccardo Spagni1-2/+8
e76dcdd wallet: improve error messages when not enough money for transfer (moneromooo-monero)
2016-10-22wallet: sanity check on selected transfer indices in signed ptxmoneromooo-monero1-0/+7
2016-10-15Always confirm transfers defaults to ON/YESNanoAkron1-6/+5
2016-10-15simplewallet: fix sweep_all misreporting sweeped amount for rct outputsmoneromooo-monero1-0/+6
RingCT outputs will be 0 in the vin, so we need to get the actual amount from elsewhere.
2016-10-15wallet: force 0 mixin transactions to use pre-rct txesmoneromooo-monero1-1/+1
rct transactions does not support 0 mixin, and those are now typically dust sweep transactions, for which a lower fee is a must.
2016-10-15wallet: select part of the fake outs from recent outputsmoneromooo-monero1-8/+40
25% of the outputs are selected from the last 5 days (if possible), in order to avoid the common case of sending recently received outputs again. 25% and 5 days are subject to review later, since it's just a wallet level change.
2016-10-15wallet: speed up output selection, and fix bug with relatedness calculationmoneromooo-monero1-3/+5
2016-10-15wallet: fix mixup between mixin 2 and 4 before/after v5moneromooo-monero1-2/+2
2016-10-15wallet: improve error messages when not enough money for transfermoneromooo-monero1-2/+8
2016-10-09Merge pull request #1191Riccardo Spagni1-4/+7
9f31e2d wallet: do not announce pool txes as money spent/received (yet) (moneromooo-monero)
2016-10-07wallet: do not announce pool txes as money spent/received (yet)moneromooo-monero1-4/+7
2016-10-04wallet: better implementation of sweep_unmixablemoneromooo-monero1-220/+30
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/+32
65ea836 wallet2_api: added Wallet::daemonBlockChainTargetHeight() libwallet_api: Wallet::blockChainTargetHeight (Jacob Brydolf)
2016-10-04Merge pull request #1160Riccardo Spagni1-0/+6
80b4da3 wallet: wallet option to confirm transfers with no payment id (moneromooo-monero)
2016-10-04Merge pull request #1125Riccardo Spagni1-2/+4
7b09e9f wallet: update min mixin for sweep_unmixable on v4 (moneromooo-monero)
2016-10-04Merge pull request #1140Riccardo Spagni1-80/+253
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/+32
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-0/+6
set confirm-missing-payment-id 0|1 Defaults to true.
2016-09-28wallet2: wallet2::get_daemon_blockchain_height() clean error message onIlya Kitaev1-0/+4
success
2016-09-27wallet: cold wallet transaction signingmoneromooo-monero1-78/+251
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-26wallet: fix log confusion between bytes and kilobytesmoneromooo-monero1-2/+2
2016-09-26formatting: 2-spaces indentationIlya Kitaev1-20/+20
2016-09-26formatting: 2-spaces indentationIlya Kitaev1-1/+1
2016-09-26wallet2_api: added Wallet::daemonBlockChainHeight()Ilya Kitaev1-1/+29
2016-09-24wallet: update min mixin for sweep_unmixable on v4moneromooo-monero1-2/+4
2016-09-18Merge pull request #1098Riccardo Spagni1-2/+4
1dd5b0b wallet: keep change dest separate from other dests (moneromooo-monero)
2016-09-18wallet: keep change dest separate from other destsmoneromooo-monero1-2/+4
This fixes misreporting of amount/fee in rct txes, as the rct tx construction code was lumping all dests (whether change or not) in the same dests vector, while the pre-rct code was keeping it separate.
2016-09-18wallet: fix empty tx in corner case sending nothingmoneromooo-monero1-0/+6
2016-09-16wallet: change priority/fee to ArticMine's recommendationmoneromooo-monero1-24/+45
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-15Merge pull request #1074Riccardo Spagni1-13/+18
cd01bae Decrease minimum fee from 0.01/kB to 0.002/kB (moneromooo-monero)
2016-09-15Decrease minimum fee from 0.01/kB to 0.002/kBmoneromooo-monero1-13/+18
The wallet will start using that fee about two weeks after hard fork 3, when most people will likely have updated their daemons.
2016-09-14wallet: fix misdetection of duplicatesmoneromooo-monero1-11/+3
2016-09-01Re-add s to rangesigsluigi11111-2/+2
Whoops.
2016-09-01Fix some rct tx size calculationsluigi11111-9/+6
Some variance is still expected
2016-09-01Merge pull request #1027Riccardo Spagni1-0/+2
85dc0ce wallet: sanity check on histogram response (moneromooo-monero)
2016-09-01wallet: sanity check on histogram responsemoneromooo-monero1-0/+2
2016-08-30wallet: interpret 0 fee multiplier as default for sweep_all toomoneromooo-monero1-1/+3
2016-08-29wallet: fix not finding enough rct fake outputsmoneromooo-monero1-3/+8
If picking coinbase outputs, those are locked for a longer time than other outputs, so we ask for more of those
2016-08-28wallet: fix some "may be used uninitialized" warningsmoneromooo-monero1-16/+15
The compiler can't always work out the _found booleans are set iff the value is initialized.
2016-08-28wallet: do not generate 0 changemoneromooo-monero1-3/+6
2016-08-28wallet: do not ask for duplicate histogramsmoneromooo-monero1-0/+3
2016-08-28wallet: transfer_selected_rct now also selects fake outsmoneromooo-monero1-171/+88
2016-08-28New "Halfway RingCT" outputs for coinbase transactionsmoneromooo-monero1-0/+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-20/+19
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-28rct: change the simple flag to a typemoneromooo-monero1-2/+8
for future expansion
2016-08-28wallet: do not store signatures in the wallet cachemoneromooo-monero1-18/+39
Saves some substantial space. Also avoid calculating tx hashes we don't need.
2016-08-28wallet2: factor m_spent changesmoneromooo-monero1-26/+29
Makes it easier to track what is going on.
2016-08-28wallet: use the prefered rct case only when enough rct outs existmoneromooo-monero1-1/+25
2016-08-28wallet: do not try to use rct txes a few blocks before the forkmoneromooo-monero1-18/+27
2016-08-28change fork settings to allow pre-rct txes for one more fork cyclemoneromooo-monero1-2/+2
2016-08-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero1-14/+33
Scheme design from luigi1114.
2016-08-28rct: do not serialize public keys in outPkmoneromooo-monero1-3/+3
They can be reconstructed from vout
2016-08-28rpc: send global indices along with blocks/transacions on refreshmoneromooo-monero1-30/+37
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-29/+74
We try to avoid related inputs, when possible
2016-08-28wallet: handle 0 change properlymoneromooo-monero1-7/+8
With RCT, we allow 0 size outputs, to try and encourage txes with two inputs and two outputs. Consolidation would then have two non zero inputs, one zero output, and one larger output.
2016-08-28port get_tx_key/check_tx_key to rctmoneromooo-monero1-4/+17
2016-08-28integrate simple rct apimoneromooo-monero1-6/+24
2016-08-28wallet: rct specific output selectionmoneromooo-monero1-3/+123
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: make sweep_all work with rct txes toomoneromooo-monero1-7/+21
2016-08-28wallet: factor transfer_rct code with transfer codemoneromooo-monero1-253/+40
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-28ringct: do not serialize what can be reconstructedmoneromooo-monero1-5/+8
The mixRing (output keys and commitments) and II fields (key images) can be reconstructed from vin data. This saves some modest amount of space in the tx.
2016-08-28wallet: update spent status when an accepted tx disappearsmoneromooo-monero1-0/+19
2016-08-28wallet: reset output spent status on blockchain reorgmoneromooo-monero1-5/+41
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-40/+610
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-22Merge pull request #970Riccardo Spagni1-0/+3
25f529a wallet: store key images after importing them (moneromooo-monero)
2016-08-17wallet: store key images after importing themmoneromooo-monero1-0/+3
It avoids rescan_spent resetting spent status, for example.
2016-08-17wallet: fix build on Mac and Windows (missing include)moneromooo-monero1-0/+1
Reported by RaskaRuby, tested by iDunk5400.
2016-08-11Merge pull request #948Riccardo Spagni1-49/+175
11dc091 Fake outs set is now decided by the wallet (moneromooo-monero) 1593553 new unlocked parameter to output_histogram (moneromooo-monero)
2016-08-11Fake outs set is now decided by the walletmoneromooo-monero1-45/+170
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-04wallet2: if importing key images fails, print failure indexmoneromooo-monero1-1/+2
2016-08-01new unlocked parameter to output_histogrammoneromooo-monero1-4/+5
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-0/+116
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-47/+176
Shown in show_transfers simplewallet command, and get_transfers RPC command, if req.pool is true.