aboutsummaryrefslogtreecommitdiff
path: root/src/simplewallet/simplewallet.cpp (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2018-01-05Factor the monero donation addressMaxithi1-4/+2
Signed-off-by: Maxithi <34792056+Maxithi@users.noreply.github.com>
2017-12-20wallet: support for multisig seedsmoneromooo-monero1-45/+147
They are hex rather than words, because they are a lot longer than "normal" seeds, as they have to embed a lot more information
2017-12-18simplewallet: factor out tx exceptionsmoneromooo-monero1-82/+1
2017-12-18catch const exceptionsmoneromooo-monero1-2/+2
2017-12-18add empty container sanity checks when using front() and back()moneromooo-monero1-2/+2
2017-12-18Account taggingstoffu1-4/+133
2017-12-17Better definite article usexmr-eric1-5/+5
2017-12-17wallet: factor multisig info parsingmoneromooo-monero1-52/+5
2017-12-17wallet: use raw encrypted data in multisig import/export RPCmoneromooo-monero1-76/+4
2017-12-17Match surae's recommendation to derive multisig keysmoneromooo-monero1-2/+3
2017-12-17simplewallet: add export_raw_multisig commandmoneromooo-monero1-0/+73
It exports raw transactions, so they may be used by other tools, for instance to be relayed to the network externally.
2017-12-17simplewallet: add multisig to wallet type in wallet_info outputmoneromooo-monero1-1/+11
2017-12-17wallet: guard against partly initialized multisig walletmoneromooo-monero1-8/+39
2017-12-17add multisig core test and factor multisig building blocksmoneromooo-monero1-14/+1
2017-12-17N-1/N multisigmoneromooo-monero1-11/+70
2017-12-17gen_multisig: generates multisig wallets if participants trust each othermoneromooo-monero1-0/+1
2017-12-17Add N/N multisig tx generation and signingmoneromooo-monero1-117/+533
Scheme by luigi1111: Multisig for RingCT on Monero 2 of 2 User A (coordinator): Spendkey b,B Viewkey a,A (shared) User B: Spendkey c,C Viewkey a,A (shared) Public Address: C+B, A Both have their own watch only wallet via C+B, a A will coordinate spending process (though B could easily as well, coordinator is more needed for more participants) A and B watch for incoming outputs B creates "half" key images for discovered output D: I2_D = (Hs(aR)+c) * Hp(D) B also creates 1.5 random keypairs (one scalar and 2 pubkeys; one on base G and one on base Hp(D)) for each output, storing the scalar(k) (linked to D), and sending the pubkeys with I2_D. A also creates "half" key images: I1_D = (Hs(aR)+b) * Hp(D) Then I_D = I1_D + I2_D Having I_D allows A to check spent status of course, but more importantly allows A to actually build a transaction prefix (and thus transaction). A builds the transaction until most of the way through MLSAG_Gen, adding the 2 pubkeys (per input) provided with I2_D to his own generated ones where they are needed (secret row L, R). At this point, A has a mostly completed transaction (but with an invalid/incomplete signature). A sends over the tx and includes r, which allows B (with the recipient's address) to verify the destination and amount (by reconstructing the stealth address and decoding ecdhInfo). B then finishes the signature by computing ss[secret_index][0] = ss[secret_index][0] + k - cc[secret_index]*c (secret indices need to be passed as well). B can then broadcast the tx, or send it back to A for broadcasting. Once B has completed the signing (and verified the tx to be valid), he can add the full I_D to his cache, allowing him to verify spent status as well. NOTE: A and B *must* present key A and B to each other with a valid signature proving they know a and b respectively. Otherwise, trickery like the following becomes possible: A creates viewkey a,A, spendkey b,B, and sends a,A,B to B. B creates a fake key C = zG - B. B sends C back to A. The combined spendkey C+B then equals zG, allowing B to spend funds at any time! The signature fixes this, because B does not know a c corresponding to C (and thus can't produce a signature). 2 of 3 User A (coordinator) Shared viewkey a,A "spendkey" j,J User B "spendkey" k,K User C "spendkey" m,M A collects K and M from B and C B collects J and M from A and C C collects J and K from A and B A computes N = nG, n = Hs(jK) A computes O = oG, o = Hs(jM) B anc C compute P = pG, p = Hs(kM) || Hs(mK) B and C can also compute N and O respectively if they wish to be able to coordinate Address: N+O+P, A The rest follows as above. The coordinator possesses 2 of 3 needed keys; he can get the other needed part of the signature/key images from either of the other two. Alternatively, if secure communication exists between parties: A gives j to B B gives k to C C gives m to A Address: J+K+M, A 3 of 3 Identical to 2 of 2, except the coordinator must collect the key images from both of the others. The transaction must also be passed an additional hop: A -> B -> C (or A -> C -> B), who can then broadcast it or send it back to A. N-1 of N Generally the same as 2 of 3, except participants need to be arranged in a ring to pass their keys around (using either the secure or insecure method). For example (ignoring viewkey so letters line up): [4 of 5] User: spendkey A: a B: b C: c D: d E: e a -> B, b -> C, c -> D, d -> E, e -> A Order of signing does not matter, it just must reach n-1 users. A "remaining keys" list must be passed around with the transaction so the signers know if they should use 1 or both keys. Collecting key image parts becomes a little messy, but basically every wallet sends over both of their parts with a tag for each. Thia way the coordinating wallet can keep track of which images have been added and which wallet they come from. Reasoning: 1. The key images must be added only once (coordinator will get key images for key a from both A and B, he must add only one to get the proper key actual key image) 2. The coordinator must keep track of which helper pubkeys came from which wallet (discussed in 2 of 2 section). The coordinator must choose only one set to use, then include his choice in the "remaining keys" list so the other wallets know which of their keys to use. You can generalize it further to N-2 of N or even M of N, but I'm not sure there's legitimate demand to justify the complexity. It might also be straightforward enough to support with minimal changes from N-1 format. You basically just give each user additional keys for each additional "-1" you desire. N-2 would be 3 keys per user, N-3 4 keys, etc. The process is somewhat cumbersome: To create a N/N multisig wallet: - each participant creates a normal wallet - each participant runs "prepare_multisig", and sends the resulting string to every other participant - each participant runs "make_multisig N A B C D...", with N being the threshold and A B C D... being the strings received from other participants (the threshold must currently equal N) As txes are received, participants' wallets will need to synchronize so that those new outputs may be spent: - each participant runs "export_multisig FILENAME", and sends the FILENAME file to every other participant - each participant runs "import_multisig A B C D...", with A B C D... being the filenames received from other participants Then, a transaction may be initiated: - one of the participants runs "transfer ADDRESS AMOUNT" - this partly signed transaction will be written to the "multisig_monero_tx" file - the initiator sends this file to another participant - that other participant runs "sign_multisig multisig_monero_tx" - the resulting transaction is written to the "multisig_monero_tx" file again - if the threshold was not reached, the file must be sent to another participant, until enough have signed - the last participant to sign runs "submit_multisig multisig_monero_tx" to relay the transaction to the Monero network
2017-12-17wallet: add multisig key generationmoneromooo-monero1-2/+142
Scheme by luigi1111
2017-12-13simplewallet: fix default unspent_outputs output with subaddressesmoneromooo-monero1-1/+1
If no subaddress index is given, consider all of them
2017-12-06set_node command, allows setting node without restartTobias Hoffmann1-1/+42
2017-11-28Simplewallet.cpp: Fewer pleases in seed NOTExmr-eric1-2/+2
Monero.ts: Fewer pleases in seed NOTE Monero_it.ts: Fewer pleases in seed NOTE Monero_fr.ts: Fewer pleases in seed NOTE
2017-11-27new wipeable_string class to replace std::string passphrasesmoneromooo-monero1-4/+4
2017-11-26Added command descriptionsCifrado1-58/+269
2017-11-22simplewallet: prevent (wrong) integrated adresses on accounts > 0moneromooo-monero1-0/+10
2017-11-21Spend proof without txkeystoffu1-0/+87
2017-11-21fix for tx proof: use exception instead of error_str when signature gen failedstoffu1-13/+5
2017-11-18Tx proof (revised):stoffu1-355/+101
- refactoring: proof generation/checking code was moved from simplewallet.cpp to wallet2.cpp - allow an arbitrary message to be signed together with txid - introduce two types (outbound & inbound) of tx proofs; with the same syntax, inbound is selected when <address> belongs to this wallet, outbound otherwise. see GitHub thread for more discussion - wallet RPC: added get_tx_key, check_tx_key, get_tx_proof, check_tx_proof - wallet API: moved WalletManagerImpl::checkPayment to Wallet::checkTxKey, added Wallet::getTxProof/checkTxProof - get_tx_key/check_tx_key: handle additional tx keys by concatenating them into a single string
2017-11-17Fixes #759 Add sanity check on restore heightCifrado1-0/+10
2017-11-15simplewallet: fix typo in incoming monero messagemoneromooo-monero1-1/+1
2017-11-15simplewallet: translate ring size 0 to mixin 0 (default values)moneromooo-monero1-1/+1
Avoids turning it to a huge number
2017-11-15simplewallet: wrong ns for input_line in sweep_single (fix #2634)stoffu1-2/+2
2017-11-15wallet: add sweep_single commandstoffu1-0/+270
2017-11-14Fix 383ff4f68943c5d998fba8caa20aee481583f214Howard Chu1-1/+1
Missed a crypto::null_pkey in PR#2629
2017-11-14Fix e89994e98f85be95d68c7bf471fcadf9aabbc93aHoward Chu1-1/+1
Missed an input_line() change
2017-11-14wallet: move some scoped_message_writer calls from the libsmoneromooo-monero1-1/+10
2017-11-14wallet: rejig to avoid prompting in wallet2moneromooo-monero1-30/+48
wallet2 is a library, and should not prompt for stdin. Instead, pass a function so simplewallet can prompt on stdin, and a GUI might display a window, etc.
2017-11-14move input_line from command_line to simplewalletmoneromooo-monero1-0/+13
It was only used there, and this removes one part of the common dependency on libreadline
2017-11-14simplewallet: factor transfer related exception handlingmoneromooo-monero1-338/+101
This ensures they don't go out of sync when adding/changing them, and makes the code easier to deal with.
2017-11-14remove "using namespace std" from headersmoneromooo-monero1-2/+2
It's nasty, and actually breaks on Solaris, where if.h fails to build due to: struct map *if_memmap;
2017-11-15simplewallet: fix in show_transfer passing wrong arg to ↵stoffu1-3/+3
wallet2::get_payments etc
2017-11-14simplewallet: forbid 0 ring sizemoneromooo-monero1-0/+10
It'd be interpreted as a huge one (~0 fake outs)
2017-11-14simplewallet: reject attempts to use too low mixin earlymoneromooo-monero1-0/+12
This yields a clear error message rather then some possibly confusing more technical errors down the line
2017-11-14simplewallet: reject invalid argument for boolean parameterstoffu1-26/+79
2017-11-14wallet-cli: added --generate-from-spend-key optionstoffu1-3/+26
2017-11-13Wallet: update ring size in outdated error msgs with set_default_ring_sizebinaryFate1-5/+7
2017-11-06track double spending in the txpoolmoneromooo-monero1-7/+12
Transactions in the txpool are marked when another transaction is seen double spending one or more of its inputs. This is then exposed wherever appropriate. Note that being marked with this "double spend seen" flag does NOT mean this transaction IS a double spend and will never be mined: it just means that the network has seen at least another transaction spending at least one of the same inputs, so care should be taken to wait for a few confirmations before acting upon that transaction (ie, mostly of use for merchants wanting to accept unconfirmed transactions).
2017-11-04wallet-cli: allow priority argument for sweep_all and donatestoffu1-15/+23
2017-11-03Fix 'sweep_all' command when called with no argsLeon Klingele1-6/+6
Executing 'sweep_all' with no arguments segfaulted before.
2017-11-02simplewallet: mark the active account in print_accountsmoneromooo-monero1-2/+3
2017-11-02Remove wallet dependency on p2pmoneromooo-monero1-1/+0
2017-10-19simplewallet: remove XMR mentionsmoneromooo-monero1-2/+2
They are actually wrong if the wallet is setup in a different denomination, and it's incursion of extrinsic lingo where monero fits perfectly in the first place.
2017-10-16Wallet: Descriptions through new commands 'set_description', 'get_description'rbrunner71-0/+36
2017-10-16Distinguish "not enough money" and "not enough unlocked money"binaryFate1-4/+32
Fix #1530
2017-10-08simplewallet: add get/set for refresh-from-heightmoneromooo-monero1-1/+20
2017-10-07Subaddresseskenshi841-197/+628
2017-10-07wallet-cli: add --do-not-relay optionstoffu1-32/+39
2017-10-07wallet: encrypt (un)signed tx, also optionally save unencrypted raw tx hexstrstoffu1-1/+18
2017-10-03simplewallet: fix setting default-ring-size to 0moneromooo-monero1-2/+0
It'd be set to the current wallet default instead
2017-10-02simplewallet: allow to set threshold before warning about tx backlogselsta1-2/+22
2017-09-29simplewallet: allow 1/yes/y as well as true for start_mining optionsmoneromooo-monero1-3/+3
Also mention those options in the start_mining help line
2017-09-29simplewallet: fix --restore-from-height being ignoredmoneromooo-monero1-1/+2
2017-09-25move checkpoints in a separate librarymoneromooo-monero1-1/+1
2017-09-25simplewallet: guard against I/O exceptionsmoneromooo-monero1-3/+12
CID 175308
2017-09-22simplewallet: add privacy warning when using an untrusted demonmoneromooo-monero1-0/+3
2017-09-22Log categories can now be added to and removed frommoneromooo-monero1-3/+5
Also, set_log without parameters now prints the log categories
2017-09-16simplewallet: print tx rejection reason where it was missingmoneromooo-monero1-0/+3
2017-09-12wallet: add encrypted seed functionalitymoneromooo-monero1-2/+29
This uses luigi1111's CN_Add method. See https://xmr.llcoins.net for details.
2017-09-08Silence more stupid gcc warningsHoward Chu1-2/+2
2017-08-31monero-wallet-cli: New command 'wallet_info' improvedrbrunner71-5/+4
2017-08-31monero-wallet-cli: New command 'wallet_info'rbrunner71-0/+11
2017-08-29simplewallet: new "fee" command to display fee informationmoneromooo-monero1-3/+66
including expected transaction backlog at different priorities
2017-08-26wallet: new option to check/confirm txpool backlog when sendingmoneromooo-monero1-1/+57
2017-08-22Fix refresh counter displayHoward Chu1-0/+8
Suspend readline when refreshing
2017-08-21Silence stupid fallthru warning in gcc 7Howard Chu1-0/+1
2017-08-13simplewallet: mnemonic language command-line argEugene Otto1-1/+13
Add `--mnemonic-language` command-line arg so it's possible to generate a wallet without interacting with the CLI.
2017-08-11simplewallet: factor out message_writermoneromooo-monero1-80/+8
2017-08-11simplewallet: fix possible privacy leak in import_key_images()Jaquee1-0/+6
2017-08-07change mixin to ring size in user visible placesmoneromooo-monero1-39/+43
2017-08-06simplewallet: do not ask wallet filename twice when restoringmoneromooo-monero1-6/+11
It's annoying and pointless (especially as it's the only thing where the user is asked twice)
2017-08-06simplewallet: Be explicit about secret keysErik de Castro Lopo1-2/+2
Previously, the wallet just asked for "Spend key" and "View key" but now it specifies that these should be the secret versions of these keys.
2017-08-04simplewallet: show payment ids on sign_transfermoneromooo-monero1-12/+50
Integrated addresses are shown when an encrypted payment id is used
2017-08-02simplewallet: add (out of sync) or (no daemon) markers in the promptmoneromooo-monero1-2/+14
Should help people who don't realize why they haven't seen their monero yet.
2017-08-02wallet: return unlock_time in get_transfersmoneromooo-monero1-0/+35
also show it in simplewallet's show_transfer
2017-07-29Fix handling of strings & simplify summation of spendkeysJollyMort1-13/+7
2017-07-29Add option to join multisig wallet pieces togetherJollyMort1-3/+150
Asks user for all the data required to merge secret keys from multisig wallets into one master wallet, which then gets full control of the multisig wallet. The resulting wallet will be the same as any other regular wallet.
2017-07-27Move OpenAlias console input back from libsmoneromooo-monero1-7/+43
Library code should definitely not ask for console input unless it's clearly an input function. Delegating the user interaction part to the caller means it can now be used by a GUI, or have a decision algorithm better adapted to a particular caller.
2017-07-22Make successful transfer log message more informativeJollyMort1-1/+2
"Payment successfully sent" can be misleading if the TX isn't confirmed and drops from TX-pool.
2017-07-09Add various readline related fixesJethro Grassie1-2/+2
- Add missing unbind key - Fix colored messages - Add command completion - Preserve last command input - Fix cursor position issues - Fix trailing whitespace in commands - Synchronize set_prompt
2017-06-30simplewallet: lock idle scope when sweepingmoneromooo-monero1-0/+2
This ensures the chain and related structures can't change while we're using them
2017-06-26wallet: fix refresh_from_height setting on new walletmoneromooo-monero1-12/+0
The previous patch was based on a wrong premise (that the daemon height was 0 because the daemon calling code wasn't yet initialized). In fact, current height approximation was not setup for testnet. Fix this.
2017-06-25Fix multiline wallet cli output with readlineJethro Grassie1-0/+15
monero-wallet-cli commands which have multine output sometimes causes issues with the readline support. This patch fixes show_transfers, payments and incoming_transfers.
2017-06-23simplewallet: typo fixesGuillaume LE VAILLANT1-4/+4
2017-06-22simplewallet: removed unneeded LOCK_IDLE_SCOPE() from check_tx_key()stoffu1-2/+0
2017-06-22simplewallet: replace assert(m_wallet) with error outstoffu1-5/+25
2017-06-22Signature proving payment to destination by only revealing key derivation, ↵stoffu1-15/+217
not the actual tx secret key
2017-06-10simplewallet: new command to generate a random payment idmoneromooo-monero1-0/+14
This is trivial, but often requested, and possibly hard to do in Windows. That makes it more user friendly.
2017-06-07add simplewallet --generate-new-wallet arg checksMichael Shick1-0/+9
Add fail-fast paths that reduce frustration around the misuse of --wallet-file combined with --restore-deterministic-wallet. Flow now gives more descriptive errors and avoids having users type in their whole seed before the failure condition is noticed.
2017-05-28simplewallet: fix refresh height for new walletsmoneromooo-monero1-10/+13
With the recent change to wallet creation code, the code was calling to the daemon before the wallet's daemon address was initialized, and thus failing. This was causing all new wallets to refresh from 0 instead of just fetching early block hashes.
2017-05-09corrected typo in help regarding min-outputs-*stoffu1-1/+1
2017-04-24wallet: add sweep_below functionmoneromooo-monero1-2/+24
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-16simplewallet: allow multiline seedmoneromooo-monero1-7/+22
People are likely to enter it in three lines as it is how it is displayed at creation time
2017-04-12wallet cli: removed some inappropriate return-falsekenshi841-16/+6
2017-04-02simplewallet: fix cold signing of split transactionsmoneromooo-monero1-3/+9
They'd be rejected as suspicious as the change goes to more than one destination. However, split transactions will most likely include fake zero amount change to random addresses, so we only consider change with non zero amount for this.
2017-04-02simplewallet: allow setting confirm-missing-payment-id in watch walletsmoneromooo-monero1-6/+0
These can create transactions, even though they cannot sign them.
2017-04-01Add per transaction fee to transfer commandAntti Keränen1-4/+17
Allows priority argument default/unimportant/normal/elevated/priority to be used per transaction in CLI wallet's transfer command. Resolves #1913.
2017-03-27wallet cli: remove redundant password confirm in donate commandkenshi841-1/+0
2017-03-26simplewallet: factor the per-variable code in set_variablemoneromooo-monero1-170/+28
2017-03-25wallet: option to merge destinationsmoneromooo-monero1-1/+26
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-24Fixed typo in CLI wallet help messageDerek Zhang1-1/+1
2017-03-24wallet: try to save large outputs when using an unneeded second inputmoneromooo-monero1-1/+65
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-22Transfer helpAkademik Prokhor Zakharov1-2/+2
New pull request because I couldn't figure out how to change the previous one. 1. For clarity, I want to focus the help text for the 'transfer' command on the most typical use case (a single payment). 2. New users will prefer to use 'transfer', so the older method 'transfer_original' should refer to 'transfer' rather than the other way around.
2017-03-21wallet: fix set_log not handling 0,xxx style settingsmoneromooo-monero1-15/+1
2017-03-18simplewallet: allow setting tx priority in watch walletsmoneromooo-monero1-5/+0
Those can create unsigned transactions
2017-03-18use const references in catch blocksmoneromooo-monero1-2/+2
2017-03-18simplewallet: catch case where no transactions are mademoneromooo-monero1-1/+7
This would otherwise be a silent noop, which is confusing. This can happen if the daemon is started, but not yet ready to service all requests, and this is a safe catch all.
2017-03-15Add intervening v5 fork for increased min block sizemoneromooo-monero1-6/+6
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-05wallet: add password commandmoneromooo-monero1-3/+4
Also tweak wallet2 password code to verify password without saying it's a new wallet, because it's assuming things.
2017-03-02allow user I/O in millinero, micronero, nanonero, piconeromoneromooo-monero1-1/+45
2017-02-28wallet: fix --log-file not workingmoneromooo-monero1-1/+2
2017-02-27Add support for the wallet to refresh pruned blocksmoneromooo-monero1-7/+7
2017-02-24simplewallet: updated help message for 'set ask-password'kenshi841-1/+1
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-21Add support for smart mining through wallet.Dion Ahmetaj1-8/+7
2017-02-14simplewallet: validate hex input sizemoneromooo-monero1-9/+9
2017-02-08simplewallet: print error when address is wrongkenshi841-0/+6
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi841-1/+1
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett1-1/+1
2017-02-03simplewallet: option to always ask password for any crytical operationskenshi841-0/+42
2017-02-02simplewallet: cleanupmoneromooo-monero1-5/+0
Remove empty static function which was refactored, as well as leftover exception testing code.
2017-02-02simplewallet: fix build (unqualified type not in current scope)moneromooo-monero1-1/+1
2017-01-29Add change_password for simplewalletAshley Perpetual1-0/+27
2017-01-28Factor is_address_local code into a tools functionmoneromooo-monero1-29/+2
2017-01-25Updates to epee HTTP client codeLee Clagett1-6/+7
- 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-24moved get_account_address_from_str_or_url from libcommon to libcryptonote_corekenshi841-5/+5
2017-01-20wallet: print exception message on get_random_outs_errormoneromooo-monero1-8/+8
2017-01-18simplewallet: use MAKE_CORE_RPC_VERSION(1,4) instead of 0x10004kenshi841-1/+1
2017-01-16specify restore height by YYYY-MM-DD formatkenshi841-16/+64
2017-01-16Change logging to easylogging++moneromooo-monero1-32/+38
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-13Move key image export/import functions to wallet2Jaquee1-78/+9
2017-01-12Wallet2 + API: Callbacks for unconfirmed transfersJaquee1-0/+5
2017-01-09wallet cli: print originating block heights of mixin keys when making transferkenshi841-13/+149
2017-01-08add msg for donateluigi11111-0/+1
#1498
2017-01-08Fix monero-wallet-cli compileluigi11111-1/+1
Not 100$ sure this is the right fix, nor whether address book entries from URL should be stored as addresses or URLs (or both with a check for change on payment).
2017-01-08simplewallet: add a show_transfer <txid> commandmoneromooo-monero1-0/+123
2016-12-26wallet cli: print unspent outputs with histogramkenshi841-0/+119
2016-12-26simplewallet: remove unnecessary local_args.erase(...) in set_variable()kenshi841-24/+8
2016-12-21make openalias also available for solo miner; introduce namespace ↵kenshi841-73/+5
tools::dns_utils; support integrated address with dns lookup
2016-12-21wallet cli: viewing and editing address bookkenshi841-0/+81
2016-12-20simplewallet: bump output file format versionmoneromooo-monero1-1/+1
The serialization format changed, and while there is code to load the older serialization format, an older monerod will not be able to load a file saved by a new monerod, even though both share the same version. This is not good, and we prefer a version bump.
2016-12-20support importing unportable outputskenshi841-3/+12
2016-12-19Refactored password prompting for walletsLee Clagett1-163/+56
2016-12-17simplewallet: add pending/pool/failed in the show_transfers helpmoneromooo-monero1-1/+1
reported by nioc
2016-12-17simplewallet: add return type for donate functionanonimal1-0/+1
Resolves -Wreturn-type References #1447 #1451
2016-12-17simplewallet: hardcode Monero's donation addressanonimal1-1/+2
Closes #1447 References #1451
2016-12-16added experimental boost::archive::portable_binary_{i|o}archivekenshi841-2/+2
2016-12-15wallet cli: donate commandKenshi Takayama1-0/+40
2016-12-12monero-wallet-cli wording changes 'n' stuffluigi11111-11/+13
Possibly other pedantry. Pedants are people too.
2016-12-08simplewallet: restore automatically setting trusted local daemonmoneromooo-monero1-0/+43
2016-11-26Improve daemon RPC version handlingmoneromooo-monero1-7/+12
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-25Added command_line::is_yesLee Clagett1-17/+15
2016-11-23simplewallet: remove double confirmation when submitting signed txmoneromooo-monero1-51/+0
2016-11-16wallet: auto sync outputs and key images in cold signing filesmoneromooo-monero1-7/+21
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-13simplewallet: add a verbose flag to incoming_transfersmoneromooo-monero1-6/+18
Prints pubkey and key image as well
2016-11-13simplewallet: spell out change when signing a transfermoneromooo-monero1-2/+16
Also catch change to multiple addresses, this is unexpected
2016-11-13simplewallet: print public keys too on spendkey/viewkey commandsmoneromooo-monero1-2/+4
2016-11-13simplewallet: include amount sent in transfer confirmationmoneromooo-monero1-0/+10
2016-11-12Fixed generate-from-json bug introduced in 358e068Lee Clagett1-1/+2
2016-11-10Created monero-wallet-rpc, moving functionality from monero-wallet-cliLee Clagett1-653/+109
2016-11-07wallet: encrypt outputs and key images files with the view keymoneromooo-monero1-14/+43
This key is available to both cold and hot wallet. Authenticated encryption will guard against interception and/or modification of the file.
2016-11-02wallet: fix bad amounts/fees againmoneromooo-monero1-2/+2
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-10-30wallet: new import_outputs/export_outputs commandsmoneromooo-monero1-0/+100
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: print tx overview on submit_transfer toomoneromooo-monero1-5/+15
This is on the potentially compromised wallet, but still guards against stupid mistakes.
2016-10-30simplewallet: remove destinations with zero amount in sign_transfermoneromooo-monero1-0/+2
This will happen when sending to another address, after removing the fee.
2016-10-26simplewallet: log transactions to submit in submit_transfermoneromooo-monero1-1/+1
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-6/+16
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-23simplewallet: factor locked_transfer, and fix a few rough edgesmoneromooo-monero1-256/+43
Factor locked_transfer into transfer_main, which brings various improvements for free (multiple addresses, proper detection of multiple payment ids, obeying the prompt settings). Also fix a few things, such as using uint64_t instead of int for block heights, actually checking whether getting blockchain height succeeded, etc.
2016-10-15Rewrote add_wallet_create_if_needed for clearer flow and behaviourNanoAkron1-53/+67
2016-10-15simplewallet: fix sweep_all misreporting sweeped amount for rct outputsmoneromooo-monero1-10/+4
RingCT outputs will be 0 in the vin, so we need to get the actual amount from elsewhere.
2016-10-15wallet: improve error messages when not enough money for transfermoneromooo-monero1-7/+43
2016-10-15simplewallet: fix wrong amount in show_transfersmoneromooo-monero1-1/+1
2016-10-04simplewallet: add mixin and payment id to sweep_all helpmoneromooo-monero1-1/+1
2016-10-04Fix description for locked_transferOyvind Kvanes1-1/+1
2016-10-04Rename to lockblocks and add max valueOyvind Kvanes1-45/+30
2016-10-01Update minimum mixin in transfer_original help textTedTheFicus1-1/+1
Changed the wording from "from 0 to maximum available" to "from 2 to maximum available". May I also suggest putting in a number rather than "maximum available" and also clarifying that mixin = 0 is still allowed if the user has unmixable outputs (dust), which he wants to "undust" using sweep_unmixable (comment from dEBRUYNE-1 ).
2016-10-01wallet: wallet option to confirm transfers with no payment idmoneromooo-monero1-1/+80
set confirm-missing-payment-id 0|1 Defaults to true.
2016-09-28Fix locked_transferOyvind Kvanes1-6/+3
2016-09-28Add locked_transferOyvind Kvanes1-87/+83
2016-09-28Revert transfer_main in simplewalletOyvind Kvanes1-22/+278
2016-09-28Add motifications to test out locked_transferOyvind Kvanes1-6/+18
2016-09-28Add more information to transaction in walletOyvind Kvanes1-1/+8
2016-09-28Make a small test changeOyvind Kvanes1-1/+1
2016-09-27wallet: cold wallet transaction signingmoneromooo-monero1-26/+270
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-22Made error message consistent with other, more helpful, messageWill Skinner1-1/+1
2016-09-19Remove redundant "default" in set mixin help descJ Ryan Littlefield1-1/+1
2016-09-17simplewallet: do not expose the details of tx splitting to the usermoneromooo-monero1-10/+11
They're confusing, as people think it reports their balance.
2016-09-17simplewallet: fix wrong amount in show_transfers for pending transactionsmoneromooo-monero1-1/+1
Change was not taken into consideration
2016-09-16wallet: change priority/fee to ArticMine's recommendationmoneromooo-monero1-15/+15
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-03fix remaining bitmonero and simplewallet bitsRiccardo Spagni1-5/+5
2016-09-01simplewallet: add magic and public keys to key image export filemoneromooo-monero1-5/+30
This ensures it's hard to mix files up
2016-09-01simplewallet: make the key image export format binarymoneromooo-monero1-18/+5
Saves on space, and on some pointless hex conversions