summaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1098Riccardo Spagni2016-09-181-2/+4
|\ | | | | | | 1dd5b0b wallet: keep change dest separate from other dests (moneromooo-monero)
| * wallet: keep change dest separate from other destsmoneromooo-monero2016-09-181-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.
* | wallet: fix empty tx in corner case sending nothingmoneromooo-monero2016-09-181-0/+6
|/
* wallet: change priority/fee to ArticMine's recommendationmoneromooo-monero2016-09-161-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.
* Merge pull request #1074Riccardo Spagni2016-09-151-13/+18
|\ | | | | | | cd01bae Decrease minimum fee from 0.01/kB to 0.002/kB (moneromooo-monero)
| * Decrease minimum fee from 0.01/kB to 0.002/kBmoneromooo-monero2016-09-151-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.
* | wallet: fix misdetection of duplicatesmoneromooo-monero2016-09-141-11/+3
|/
* Re-add s to rangesigsluigi11112016-09-011-2/+2
| | | | Whoops.
* Fix some rct tx size calculationsluigi11112016-09-011-9/+6
| | | | Some variance is still expected
* Merge pull request #1027Riccardo Spagni2016-09-011-0/+2
|\ | | | | | | 85dc0ce wallet: sanity check on histogram response (moneromooo-monero)
| * wallet: sanity check on histogram responsemoneromooo-monero2016-09-011-0/+2
| |
* | wallet: interpret 0 fee multiplier as default for sweep_all toomoneromooo-monero2016-08-301-1/+3
|/
* wallet: fix not finding enough rct fake outputsmoneromooo-monero2016-08-291-3/+8
| | | | | If picking coinbase outputs, those are locked for a longer time than other outputs, so we ask for more of those
* wallet: fix some "may be used uninitialized" warningsmoneromooo-monero2016-08-281-16/+15
| | | | | The compiler can't always work out the _found booleans are set iff the value is initialized.
* wallet: do not generate 0 changemoneromooo-monero2016-08-281-3/+6
|
* wallet: do not ask for duplicate histogramsmoneromooo-monero2016-08-281-0/+3
|
* wallet: transfer_selected_rct now also selects fake outsmoneromooo-monero2016-08-281-171/+88
|
* New "Halfway RingCT" outputs for coinbase transactionsmoneromooo-monero2016-08-281-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.
* rct amount key modified as per luigi1111's recommendationsmoneromooo-monero2016-08-281-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.
* rct: change the simple flag to a typemoneromooo-monero2016-08-281-2/+8
| | | | for future expansion
* wallet: do not store signatures in the wallet cachemoneromooo-monero2016-08-281-18/+39
| | | | | Saves some substantial space. Also avoid calculating tx hashes we don't need.
* wallet2: factor m_spent changesmoneromooo-monero2016-08-281-26/+29
| | | | Makes it easier to track what is going on.
* wallet: use the prefered rct case only when enough rct outs existmoneromooo-monero2016-08-281-1/+25
|
* wallet: do not try to use rct txes a few blocks before the forkmoneromooo-monero2016-08-281-18/+27
|
* change fork settings to allow pre-rct txes for one more fork cyclemoneromooo-monero2016-08-281-2/+2
|
* rct: make the amount key derivable by a third party with the tx keymoneromooo-monero2016-08-281-14/+33
| | | | Scheme design from luigi1114.
* rct: do not serialize public keys in outPkmoneromooo-monero2016-08-281-3/+3
| | | | They can be reconstructed from vout
* rpc: send global indices along with blocks/transacions on refreshmoneromooo-monero2016-08-281-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.
* wallet: better tx input selectionmoneromooo-monero2016-08-281-29/+74
| | | | We try to avoid related inputs, when possible
* wallet: handle 0 change properlymoneromooo-monero2016-08-281-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.
* port get_tx_key/check_tx_key to rctmoneromooo-monero2016-08-281-4/+17
|
* integrate simple rct apimoneromooo-monero2016-08-281-6/+24
|
* wallet: rct specific output selectionmoneromooo-monero2016-08-281-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).
* wallet: make sweep_all work with rct txes toomoneromooo-monero2016-08-281-7/+21
|
* wallet: factor transfer_rct code with transfer codemoneromooo-monero2016-08-281-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.
* ringct: do not serialize what can be reconstructedmoneromooo-monero2016-08-281-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.
* wallet: update spent status when an accepted tx disappearsmoneromooo-monero2016-08-281-0/+19
|
* wallet: reset output spent status on blockchain reorgmoneromooo-monero2016-08-281-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).
* add rct to the protocolmoneromooo-monero2016-08-281-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.
* Merge pull request #970Riccardo Spagni2016-08-221-0/+3
|\ | | | | | | 25f529a wallet: store key images after importing them (moneromooo-monero)
| * wallet: store key images after importing themmoneromooo-monero2016-08-171-0/+3
| | | | | | | | It avoids rescan_spent resetting spent status, for example.
* | wallet: fix build on Mac and Windows (missing include)moneromooo-monero2016-08-171-0/+1
|/ | | | Reported by RaskaRuby, tested by iDunk5400.
* Merge pull request #948Riccardo Spagni2016-08-111-47/+173
|\ | | | | | | | | 11dc091 Fake outs set is now decided by the wallet (moneromooo-monero) 1593553 new unlocked parameter to output_histogram (moneromooo-monero)
| * Fake outs set is now decided by the walletmoneromooo-monero2016-08-111-43/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * new unlocked parameter to output_histogrammoneromooo-monero2016-08-011-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).
* | wallet2: if importing key images fails, print failure indexmoneromooo-monero2016-08-041-1/+2
|/
* wallet: new {ex,im}port_key_images commands and RPC callsmoneromooo-monero2016-07-241-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.
* wallet: add unconfirmed incoming txes from the txpoolmoneromooo-monero2016-07-201-46/+175
| | | | | Shown in show_transfers simplewallet command, and get_transfers RPC command, if req.pool is true.
* Merge pull request #902Riccardo Spagni2016-07-201-8/+25
|\ | | | | | | 014f3a0 Add a daemon RPC version, and make simplewallet check it (moneromooo-monero)
| * Add a daemon RPC version, and make simplewallet check itmoneromooo-monero2016-07-101-8/+25
| | | | | | | | | | If the version is different, simplewallet will refuse to use that daemon, unless --allow-mismatched-daemon-version is used.