aboutsummaryrefslogtreecommitdiff
path: root/src/simplewallet (follow)
AgeCommit message (Collapse)AuthorFilesLines
2018-05-20simplewallet: use correct unit for fee commandstoffu1-1/+1
2018-04-28Merge pull request #3666Riccardo Spagni1-2/+2
5ef4bf05 simplewallet: fix help message of sign_transfer (stoffu)
2018-04-19simplewallet: fix help message of sign_transferstoffu1-2/+2
2018-04-13simplewallet: add version commandmoneromooo-monero2-0/+12
2018-04-12Merge pull request #3535Riccardo Spagni1-0/+20
4c6ff21c wallet: warn if not using the default ring size (moneromooo-monero)
2018-03-31wallet: warn if not using the default ring sizemoneromooo-monero1-0/+20
2018-03-31simplewallet: warn about key reuse on startupmoneromooo-monero1-1/+1
2018-03-28Automatic height setup when creating/restoring hw device.cslashm1-2/+18
When creating/restoring wallet, if --restore-height option is not used the current estimate height is used for starting the scan. In other words it is assume we are creating a new account.
2018-03-21wallet: catch exceptions dealing with ringdb and warnmoneromooo-monero1-0/+3
2018-03-18Merge pull request #3426Riccardo Spagni2-2/+10
8ea3c4d5 simplewallet: new --use-english-language-names flag (moneromooo-monero)
2018-03-17simplewallet: new --use-english-language-names flagmoneromooo-monero2-2/+10
On some Windows systems, displaying language names in their own languages freezes the display.
2018-03-17wallet: make the segregation height settablemoneromooo-monero2-1/+24
via user setting first, then DNS TXT record, hardcoded fallback
2018-03-16Add command line option allowing to restrict the default sub-address ↵stoffu2-1/+83
lookahead in order to avoid so looooong time of set-up when creating a HW based wallet.
2018-03-16Merge pull request #3416Riccardo Spagni1-0/+5
6f54c910 simplewallet: fix restore height prompt that got disabled by #3175 (stoffu)
2018-03-16Merge pull request #3376Riccardo Spagni1-2/+6
833f9fcf show '<Not set>' for empty wallet description (cryptochangements34)
2018-03-16Merge pull request #3336Riccardo Spagni1-1/+1
57c0b1ed Fix typos in various files (Dimitris Apostolou)
2018-03-16wallet: more user friendly print_ringmoneromooo-monero1-9/+22
It can now take a txid (to display rings for all its inputs), and will print rings in a format that set_ring understands
2018-03-16wallet: add a set_ring commandmoneromooo-monero2-1/+81
This is so one can set rings for spent key images in case the attackers don't merge the ring matching patch set.
2018-03-16wallet: make ringdb an object with database statemoneromooo-monero1-2/+2
2018-03-16wallet: add an output blackball list to avoid using those in ringsmoneromooo-monero2-0/+144
2018-03-16wallet: key reuse mitigation optionsmoneromooo-monero2-1/+37
If a pre-fork output is spent on both Monero and attack chain, any post-fork output can be deduced to be a fake output, thereby decreasing the effective ring size. The segregate-per-fork-outputs option, on by default, allows selecting only pre-fork outputs in this case, so that the same ring can be used when spending it on the other side, which does not decrease the effective ring size. This is intended to be SET when intending to spend Monero on the attack fork, and to be UNSET if not intending to spend Monero on the attack fork (since it leaks the fact that the output being spent is pre-fork). If the user is not certain yet whether they will spend pre-fork outputs on a key reusing fork, the key-reuse-mitigation2 option should be SET instead. If you use this option and intend to spend Monero on both forks, then spend real Monero first.
2018-03-16wallet: add shared ring databasemoneromooo-monero2-0/+62
This maps key images to rings, so that different forks can reuse the rings by key image. This avoids revealing the real inputs like would happen if two forks spent the same outputs with different rings. This database is meant to be shared with all Monero forks which don't bother making a new chain, putting users' privacy at risk in the process. It is placed in a shared data directory by default ($HOME/.shared-ringdb on UNIX like systems). You may use --shared-ringdb-dir to override this location, and should then do so for all Monero forks for them to share the database.
2018-03-15show '<Not set>' for empty wallet descriptioncryptochangements341-2/+6
2018-03-16simplewallet: fix restore height prompt that got disabled by #3175stoffu1-0/+5
2018-03-15Fix typos in various filesDimitris Apostolou1-1/+1
2018-03-15Merge pull request #3410Riccardo Spagni1-7/+19
c5024c5b simplewallet: add a warning when getting a daemon error in transfer (moneromooo-monero)
2018-03-15simplewallet: add a warning when getting a daemon error in transfermoneromooo-monero1-7/+19
A malicious daemon (or MITM) could attempt to add spurious errors so the wallet tries again, sending another set of fake outs.
2018-03-15wallet2+cli+rpc: eliminate redundant m_http_client from cli/rpc and delegate ↵stoffu2-7/+5
calls to wallet2
2018-03-14Merge pull request #3384Riccardo Spagni1-2/+1
b63ea060 simplewallet: do not call a RPC when displaying the prompt (moneromooo-monero)
2018-03-14device: untangle cyclic depenencystoffu1-1/+0
When #3303 was merged, a cyclic dependency chain was generated: libdevice <- libcncrypto <- libringct <- libdevice This was because libdevice needs access to a set of basic crypto operations implemented in libringct such as scalarmultBase(), while libringct also needs access to abstracted crypto operations implemented in libdevice such as ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct into libringct_basic and libringct, where the basic crypto ops previously in libringct are moved into libringct_basic. The cyclic dependency is now resolved thanks to this separation: libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct This eliminates the need for crypto_device.cpp and rctOps_device.cpp. Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and get_subaddress_secret_key() were previously implemented in libcryptonote_basic (cryptonote_format_utils.cpp) and were then called from hw::core::device_default, which is odd because libdevice is supposed to be independent of libcryptonote_basic. Therefore, those functions were moved to device_default.cpp.
2018-03-14Merge pull request #3369Riccardo Spagni1-1/+11
1979d53d wallet: fixes and tweaks to the save_watch_only command (moneromooo-monero)
2018-03-14Merge pull request #3315Riccardo Spagni1-4/+12
649a1b7a wallet2 / simplewallet: Must opt-in to create '.address.txt' files for new wallets (Leon Klingele)
2018-03-11simplewallet: do not call a RPC when displaying the promptmoneromooo-monero1-2/+1
Speeds up refresh when you have a lot of in/out transactions
2018-03-10wallet2 / simplewallet: Must opt-in to create '.address.txt' files for new ↵Leon Klingele1-4/+12
wallets Previously, a file containing the unencrypted Monero address was created by default in the wallet's directory. This file might pose as a privacy risk. The creation of this file is now opt-in and can be enabled by providing --create-address-file
2018-03-07wallet: fixes and tweaks to the save_watch_only commandmoneromooo-monero1-1/+11
- save the new keys file as FOO-watchonly.keys, not FOO.keys-watchonly - catch any exception (eg, I/O errors) and error out - print the new keys filename in simplewallet
2018-03-07Bump min ring size from 5 to 7 from v7moneromooo-monero1-2/+2
2018-03-05Merge pull request #3298Riccardo Spagni1-9/+3
f2bb8085 Fix #3297 use the password_prompter helper (Howard Chu)
2018-03-05Merge pull request #3312Riccardo Spagni1-1/+1
399120dd simplewallet: set seed language when restoring from english-old seed (stoffu)
2018-03-05Merge pull request #3313Riccardo Spagni2-0/+37
43026822 Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windows (rbrunner7)
2018-03-05Merge pull request #3332Riccardo Spagni1-3/+14
6b40ea93 simplewallet: fix print_ring_members printing wrong heights (moneromooo-monero)
2018-03-05Merge pull request #3277Riccardo Spagni1-39/+50
0e7ad2e2 Wallet API: generalize 'bool testnet' to 'NetworkType nettype' (stoffu) af773211 Stagenet (stoffu) cc9a0bee command_line: allow args to depend on more than one args (stoffu) 55f8d917 command_line::get_arg: remove 'required' for dependent args as they're always optional (stoffu) 450306a0 command line: allow has_arg to handle arg_descriptor<bool,false,true> #3318 (stoffu) 9f9e095a Use `genesis_tx` parameter in `generate_genesis_block`. #3261 (Jean Pierre Dudey)
2018-03-05Correct spelling mistakes.Edward Betts1-1/+1
2018-03-05Stagenetstoffu1-39/+50
2018-03-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm2-5/+163
The basic approach it to delegate all sensitive data (master key, secret ephemeral key, key derivation, ....) and related operations to the device. As device has low memory, it does not keep itself the values (except for view/spend keys) but once computed there are encrypted (with AES are equivalent) and return back to monero-wallet-cli. When they need to be manipulated by the device, they are decrypted on receive. Moreover, using the client for storing the value in encrypted form limits the modification in the client code. Those values are transfered from one C-structure to another one as previously. The code modification has been done with the wishes to be open to any other hardware wallet. To achieve that a C++ class hw::Device has been introduced. Two initial implementations are provided: the "default", which remaps all calls to initial Monero code, and the "Ledger", which delegates all calls to Ledger device.
2018-03-02simplewallet: fix print_ring_members printing wrong heightsmoneromooo-monero1-3/+14
And also use uint64_t instead of int for heights where appropriate
2018-02-25Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windowsrbrunner72-0/+37
2018-02-25simplewallet: set seed language when restoring from english-old seedstoffu1-1/+1
2018-02-20Merge pull request #3294Riccardo Spagni1-1/+1
fd57e13a simplewallet: typo in generate-from-multisig-keys (stoffu)
2018-02-20Merge pull request #3263Riccardo Spagni1-1/+1
d4e728c9 simplewallet: reword donate command message for clarity (Serhack)
2018-02-20Merge pull request #3257Riccardo Spagni1-8/+0
da25757b simplewallet: do nothing in on_skip_transaction (wallet2 already logs warnings) (stoffu)
2018-02-20Fix #3297 use the password_prompter helperHoward Chu1-9/+3
2018-02-19simplewallet: typo in generate-from-multisig-keysstoffu1-1/+1
2018-02-17Merge pull request #3249Riccardo Spagni1-0/+7
a4b50a6f handle ^D and ^C while password prompting (Jethro Grassie)
2018-02-16Merge pull request #3226Riccardo Spagni1-1/+5
e4646379 keccak: fix mdlen bounds sanity checking (moneromooo-monero) 2e3e90ac pass large parameters by const ref, not value (moneromooo-monero) 61defd89 blockchain: sanity check number of precomputed hash of hash blocks (moneromooo-monero) 9af6b2d1 ringct: fix infinite loop in unused h2b function (moneromooo-monero) 8cea8d0c simplewallet: double check a new multisig wallet is multisig (moneromooo-monero) 9b98a6ac threadpool: catch exceptions in dtor, to avoid terminate (moneromooo-monero) 24803ed9 blockchain_export: fix buffer overflow in exporter (moneromooo-monero) f3f7da62 perf_timer: rewrite to make it clear there is no division by zero (moneromooo-monero) c6ea3df0 performance_tests: remove add_arg call stray extra param (moneromooo-monero) fa6b4566 fuzz_tests: fix an uninitialized var in setup (moneromooo-monero) 03887f11 keccak: fix sanity check bounds test (moneromooo-monero) ad11db91 blockchain_db: initialize m_open in base class ctor (moneromooo-monero) bece67f9 miner: restore std::cout precision after modification (moneromooo-monero) 1aabd14c db_lmdb: check hard fork info drop succeeded (moneromooo-monero)
2018-02-16Merge pull request #3214Riccardo Spagni1-0/+1
214d251c wallet: suggest the use of sweep_unmixable when not_enough_outs_to_mix is thrown (stoffu)
2018-02-16Merge pull request #3175Riccardo Spagni1-1/+1
3be98036 wallet-cli: Do not ask for scan_from_height if it explicitly is set to zero. (Maximilian Lupke)
2018-02-16Merge pull request #3094Riccardo Spagni1-10/+10
a85dbb3f Fixed typos and wording tweaks (Maxithi)
2018-02-15simplewallet: do nothing in on_skip_transaction (wallet2 already logs warnings)stoffu1-8/+0
2018-02-14simplewallet: reword donate command message for claritySerhack1-1/+1
2018-02-10handle ^D and ^C while password promptingJethro Grassie1-0/+7
2018-02-08wallet: suggest the use of sweep_unmixable when not_enough_outs_to_mix is thrownstoffu1-0/+1
2018-02-02simplewallet: double check a new multisig wallet is multisigmoneromooo-monero1-1/+5
Coverity 182493
2018-01-29Fixed typos and wording tweaksMaxithi1-10/+10
2018-01-27Merge pull request #3188Riccardo Spagni1-0/+1
fbc0a6dd Bugfix : Missing i18n import in simplewallet (Neozaru)
2018-01-28wallet: automatically use low priority if safe (no backlog & recent blocks ↵stoffu2-12/+28
not full)
2018-01-28simplewallet: bug fix for backlog estimatestoffu1-4/+1
2018-01-27Merge pull request #3141Riccardo Spagni1-2/+2
3160a930 wallet2: remove {set|get}_default_decimal_point and use the same funcs under cryptonote:: instead (stoffu) 7d1088d3 wallet2: make scan_output const and omit keys arg (stoffu) bc1ee2c2 wallet2: make member functions const when possible (stoffu)
2018-01-27Merge pull request #3118Riccardo Spagni2-0/+39
ca336c62 simplewallet: check file overwrite when exporting stuff (stoffu)
2018-01-27Merge pull request #3102Riccardo Spagni1-3/+3
3050a4f0 simplewallet: fix typo get_tx_proof_out to get_tx_proof (stoffu)
2018-01-26Update 2018 copyrightxmr-eric3-3/+3
2018-01-26Bugfix : Missing i18n import in simplewalletNeozaru1-0/+1
2018-01-26wallet2: remove {set|get}_default_decimal_point and use the same funcs under ↵stoffu1-2/+2
cryptonote:: instead
2018-01-26simplewallet: fix typo get_tx_proof_out to get_tx_proofstoffu1-3/+3
2018-01-26simplewallet: check file overwrite when exporting stuffstoffu2-0/+39
2018-01-25Merge pull request #3130Riccardo Spagni1-2/+14
5ae617d5 simplewallet: single out 0 amount destinations as dummy ones (moneromooo-monero) c1d19f3c wallet2: fix sweep_all sending an atomic unit (moneromooo-monero)
2018-01-25Merge pull request #3093Riccardo Spagni1-1/+1
d188840c Improved terminology from create to generate (Maxithi)
2018-01-25Merge pull request #3072Riccardo Spagni1-3/+3
0811b924 fix some confirmation dialog, add missing symbols (AJIekceu4)
2018-01-25Merge pull request #3057Riccardo Spagni2-4/+4
9ffa97fe Factor the monero donation address (Maxithi)
2018-01-25Merge pull request #3027Riccardo Spagni2-0/+116
6d40a920 Reserve proof (stoffu)
2018-01-25Merge pull request #3011Riccardo Spagni1-1/+2
619bb723 daemon+simplewallet: given an unknown command, show it (stoffu)
2018-01-25Merge pull request #3008Riccardo Spagni1-3/+3
50786ac7 simplewallet: Correct 3 multisig command usage help texts, e.g. for 'export_multisig_info' (rbrunner7)
2018-01-24wallet-cli: Do not ask for scan_from_height if it explicitly is set to zero.Maximilian Lupke1-1/+1
Fixes #3080
2018-01-16simplewallet: single out 0 amount destinations as dummy onesmoneromooo-monero1-2/+14
Avoids surprising the user with "sending 0 to..."
2018-01-11Keep readline optionalJethro Grassie1-1/+1
2018-01-10Reserve proofstoffu2-0/+116
2018-01-10Merge pull request #2981Riccardo Spagni1-0/+7
b63afbaa simplewallet: detect typo for incoming_transfers options (stoffu)
2018-01-10Merge pull request #2976Riccardo Spagni1-0/+6
c765f951 simplewallet: disable donations on testnet (Matt Smith)
2018-01-10Merge pull request #2972Riccardo Spagni1-0/+4
586ee642 simplewallet: lock idle scope in {im,ex}port_{key_images,outputs} (moneromooo-monero)
2018-01-09Improved terminology from create to generateMaxithi1-1/+1
2018-01-06fix some confirmation dialog, add missing symbolsAJIekceu41-3/+3
Change some confirmation dialog to look like other ones (add symbol ":" and space) So, it will look like: (Y/Yes/N/No): y Now it look: (Y/Yes/N/No)y
2018-01-05Factor the monero donation addressMaxithi2-4/+4
Signed-off-by: Maxithi <34792056+Maxithi@users.noreply.github.com>
2018-01-02Merge pull request #2960Riccardo Spagni2-45/+150
5cbcf0aa wallet: support for multisig seeds (moneromooo-monero)
2017-12-28Merge pull request #2949Riccardo Spagni1-5/+5
e20e489a Better definite article use (xmr-eric)
2017-12-28Merge pull request #2942Riccardo Spagni1-82/+1
4f45f9da simplewallet: factor out tx exceptions (moneromooo-monero)
2017-12-28simplewallet: detect typo for incoming_transfers optionsstoffu1-0/+7
2017-12-27daemon+simplewallet: given an unknown command, show itstoffu1-1/+2
2017-12-26simplewallet: Correct 3 multisig command usage help texts, e.g. for ↵rbrunner71-3/+3
'export_multisig_info'
2017-12-25Merge pull request #2926Riccardo Spagni2-4/+134
6b5bd129 Account tagging (stoffu)
2017-12-25Merge pull request #2920Riccardo Spagni1-4/+4
bd5cce07 network_throttle: fix ineffective locking (moneromooo-monero) e0a61299 network_throttle: remove unused xxx static member (moneromooo-monero) 24f584d9 cryptonote_core: remove unused functions with off by one bugs (moneromooo-monero) b1634aa3 blockchain: don't leave dangling pointers in this (moneromooo-monero) 8e60b81c cryptonote_core: fix db leak on error (moneromooo-monero) 213e326c abstract_tcp_server2: log init_server errors as fatal (moneromooo-monero) b51dc566 use const refs in for loops for non tiny types (moneromooo-monero) f0568ca6 net_parse_helpers: fix regex error checking (moneromooo-monero) b49ddc76 check accessing an element past the end of a container (moneromooo-monero) 2305bf26 check return value for generate_key_derivation and derive_public_key (moneromooo-monero) a4240d9f catch const exceptions (moneromooo-monero) 45a1c4c0 add empty container sanity checks when using front() and back() (moneromooo-monero) 56fa6ce1 tests: fix a buffer overread in a unit test (moneromooo-monero) b4524892 rpc: guard against json parsing a non object (moneromooo-monero) c2ed8618 easylogging++: avoid buffer underflow (moneromooo-monero) 187a6ab2 epee: trap failure to parse URI from request (moneromooo-monero) 061789b5 checkpoints: trap failure to load JSON checkpoints (moneromooo-monero) ba2fefb9 checkpoints: pass std::string by const ref, not const value (moneromooo-monero) 38c8f4e0 mlog: terminate a string at last char, just in case (moneromooo-monero) d753d716 fix a few leaks by throwing objects, not newed pointers to objects (moneromooo-monero) fe568db8 p2p: use size_t for arbitrary counters instead of uint8_t (moneromooo-monero) 46d6fa35 cryptonote_protocol: sanity check chain hashes from peer (moneromooo-monero) 25584f86 cryptonote_protocol: print peer versions when unexpected (moneromooo-monero) 490a5d41 rpc: do not try to use an invalid txid in relay_tx (moneromooo-monero)
2017-12-25Merge pull request #2918Riccardo Spagni1-1/+1
f5bc7f18 simplewallet: fix default unspent_outputs output with subaddresses (moneromooo-monero)
2017-12-20simplewallet: disable donations on testnetMatt Smith1-0/+6
2017-12-20simplewallet: lock idle scope in {im,ex}port_{key_images,outputs}moneromooo-monero1-0/+4
This ensures we can't get races
2017-12-20wallet: support for multisig seedsmoneromooo-monero2-45/+150
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 taggingstoffu2-4/+134
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-monero2-0/+74
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-monero2-11/+71
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-monero2-117/+538
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-monero2-2/+144
Scheme by luigi1111
2017-12-16Wallets now do not depend on the daemon rpc libmoneromooo-monero1-1/+1
The shared RPC code is now moved off into a separate lib
2017-12-16Merge pull request #2873Riccardo Spagni1-2/+2
1c838552 Simplewallet.cpp: Fewer pleases in seed NOTE (xmr-eric) 3f18c642 Fix password capitalization mismatch (xmr-eric)
2017-12-16Merge pull request #2860Riccardo Spagni1-4/+4
3dffe71b new wipeable_string class to replace std::string passphrases (moneromooo-monero) 7a2a5741 utils: initialize easylogging++ in on_startup (moneromooo-monero) 54950829 use memwipe in a few relevant places (moneromooo-monero) 000666ff add a memwipe function (moneromooo-monero)
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 Hoffmann2-2/+44
2017-12-02Merge pull request #2833Riccardo Spagni1-0/+10
b0426d4c Fixes #759 Add sanity check on restore height (Cifrado)
2017-12-02Merge pull request #2853Riccardo Spagni1-0/+10
c0ae52c0 simplewallet: prevent (wrong) integrated adresses on accounts > 0 (moneromooo-monero)
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 descriptionsCifrado2-58/+270
2017-11-25Merge pull request #2825Riccardo Spagni1-1/+1
ac5cd865 simplewallet: fix typo in incoming monero message (moneromooo-monero)
2017-11-25Merge pull request #2822Riccardo Spagni1-1/+1
93c33985 simplewallet: translate ring size 0 to mixin 0 (default values) (moneromooo-monero)
2017-11-25Merge pull request #2796Riccardo Spagni1-5/+7
b42ee213 Wallet: update ring size in outdated error msgs with set_default_ring_size (binaryFate)
2017-11-25Merge pull request #2368Riccardo Spagni2-0/+89
b0b7e0f0 Spend proof without txkey (stoffu)
2017-11-22simplewallet: prevent (wrong) integrated adresses on accounts > 0moneromooo-monero1-0/+10
2017-11-21Spend proof without txkeystoffu2-0/+89
2017-11-21fix for tx proof: use exception instead of error_str when signature gen failedstoffu1-13/+5
2017-11-18Tx proof (revised):stoffu2-356/+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 commandstoffu2-0/+271
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-14Merge pull request #2765Riccardo Spagni1-3/+3
fc85d7a9 simplewallet: fix in show_transfer passing wrong arg to wallet2::get_payments etc (stoffu)
2017-11-14Merge pull request #2736Riccardo Spagni2-30/+73
0d9c0db9 Do not build against epee_readline if it was not built (Howard Chu) 178014c9 split off readline code into epee_readline (moneromooo-monero) a9e14a19 link against readline only for monerod and wallet-wallet-{rpc,cli} (moneromooo-monero) 437421ce wallet: move some scoped_message_writer calls from the libs (moneromooo-monero) e89994e9 wallet: rejig to avoid prompting in wallet2 (moneromooo-monero) ec5135e5 move input_line from command_line to simplewallet (moneromooo-monero) 082db75f move cryptonote command line options to cryptonote_core (moneromooo-monero)
2017-11-14Merge pull request #2636Riccardo Spagni1-338/+101
ad03f778 simplewallet: factor transfer related exception handling (moneromooo-monero)
2017-11-14Merge pull request #2629Riccardo Spagni1-2/+2
383ff4f6 remove "using namespace std" from headers (moneromooo-monero)
2017-11-14Do not build against epee_readline if it was not builtHoward Chu1-1/+1
2017-11-14split off readline code into epee_readlinemoneromooo-monero1-0/+2
2017-11-14link against readline only for monerod and wallet-wallet-{rpc,cli}moneromooo-monero1-0/+1
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-14Merge pull request #2750Riccardo Spagni1-6/+6
424852a6 Fix 'sweep_all' command when called with no args (Leon Klingele)
2017-11-14Merge pull request #2747Riccardo Spagni1-2/+3
37e1fd94 simplewallet: mark the active account in print_accounts (moneromooo-monero)
2017-11-14Merge pull request #2745Riccardo Spagni2-2/+0
6cf33446 Remove wallet dependency on p2p (moneromooo-monero)
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-14Merge pull request #2683Riccardo Spagni1-26/+79
105425b7 simplewallet: reject invalid argument for boolean parameter (stoffu)
2017-11-14Merge pull request #2682Riccardo Spagni1-2/+2
8ddcf1e7 simplewallet: remove XMR mentions (moneromooo-monero)
2017-11-14Merge pull request #2633Riccardo Spagni2-3/+27
ad96c478 wallet-cli: added --generate-from-spend-key option (stoffu)
2017-11-14simplewallet: reject invalid argument for boolean parameterstoffu1-26/+79
2017-11-14wallet-cli: added --generate-from-spend-key optionstoffu2-3/+27
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-06Merge pull request #2605Riccardo Spagni2-0/+38
b370ef54 Wallet: Descriptions through new commands 'set_description', 'get_description' (rbrunner7)
2017-11-06Merge pull request #2595Riccardo Spagni1-15/+23
8041b4e9 wallet-cli: allow priority argument for sweep_all and donate (stoffu)
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-monero2-2/+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'rbrunner72-0/+38
2017-10-16Distinguish "not enough money" and "not enough unlocked money"binaryFate1-4/+32
Fix #1530
2017-10-15Merge pull request #2606Riccardo Spagni2-1/+21
4090e8c6 simplewallet: add get/set for refresh-from-height (moneromooo-monero)
2017-10-15Merge pull request #2586Riccardo Spagni2-32/+46
7b8d3ec6 wallet-cli: add --do-not-relay option (stoffu)
2017-10-15Merge pull request #2569Riccardo Spagni1-2/+0
b5b4abb8 simplewallet: fix setting default-ring-size to 0 (moneromooo-monero)
2017-10-15Merge pull request #2554Riccardo Spagni1-1/+18
d74336d5 wallet: encrypt (un)signed tx, also optionally save unencrypted raw tx hexstr (stoffu)
2017-10-15Merge pull request #2550Riccardo Spagni1-3/+3
735fafec simplewallet: allow 1/yes/y as well as true for start_mining options (moneromooo-monero)
2017-10-15Merge pull request #2549Riccardo Spagni1-1/+2
bf2d9113 simplewallet: fix --restore-from-height being ignored (moneromooo-monero)
2017-10-08simplewallet: add get/set for refresh-from-heightmoneromooo-monero2-1/+21
2017-10-07Subaddresseskenshi842-203/+637
2017-10-07wallet-cli: add --do-not-relay optionstoffu2-32/+46
2017-10-07wallet: encrypt (un)signed tx, also optionally save unencrypted raw tx hexstrstoffu1-1/+18
2017-10-06Merge pull request #2468Riccardo Spagni2-2/+23
986d03d4 simplewallet: allow to set threshold before warning about tx backlog (selsta)
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-02Merge pull request #2515Riccardo Spagni1-0/+3
c34093db simplewallet: add privacy warning when using an untrusted demon (moneromooo-monero)
2017-10-02Merge pull request #2512Riccardo Spagni1-3/+5
792ba4f0 Log categories can now be added to and removed from (moneromooo-monero) 48f92eb6 easylogging++: add categories getter (moneromooo-monero) f35afe62 epee: factor log level/categories setting (moneromooo-monero)
2017-10-02simplewallet: allow to set threshold before warning about tx backlogselsta2-2/+23
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-25Merge pull request #2452Riccardo Spagni1-0/+3
0aaaca29 tx_pool: set the "invalid input" bit when check_tx_inputs fails (moneromooo-monero) 9236823b simplewallet: print tx rejection reason where it was missing (moneromooo-monero) 3dee3301 core_rpc_server: print tx rejection reason at L0 too (moneromooo-monero)
2017-09-25Merge pull request #2424Riccardo Spagni1-3/+12
28b72b6e tx_pool: pre-init tvc.m_verifivation_failed before processing (moneromooo-monero) 50a629b2 core_tests: catch (impossible in practice) tx extra api failure (moneromooo-monero) fee15ef1 wallet2: catch failure to parse address (moneromooo-monero) 1399e26d net_peerlist: remove dead code (moneromooo-monero) 50e09698 tx_pool: guard against failure getting tx hash (moneromooo-monero) 54cc209a wallet_rpc_server: catch failure to create directory (moneromooo-monero) 3e55099c wallet_rpc_server: init m_vm to NULL in ctor (moneromooo-monero) 7d0dde5e wallet_args: remove redundant default value for --log-file (moneromooo-monero) ed4a3350 wallet2: catch failure to save keys file (moneromooo-monero) 44434c8a wallet2_api: check whether dynamic_cast returns NULL (moneromooo-monero) 92f2f687 core: check return value from parse_hexstr_to_binbuff (moneromooo-monero) 5475692e wallet2_api: remove an unused, uninitialized, field (moneromooo-monero) a7ba3de1 libwallet_api_tests: initialize newblock_triggered on reset (moneromooo-monero) b2763ace wallet2_api: init error code to "no error" in the ctor (moneromooo-monero) b5faac53 get_blockchain_top now returns void (moneromooo-monero) 2e44d8f2 wallet_rpc_server: guard against exceptions (moneromooo-monero) 4230876b simplewallet: guard against I/O exceptions (moneromooo-monero) 06c1e057 daemon: initialize decode_as_json in RPC request (moneromooo-monero) 11f71af5 http_base: init size_t in http_request_info ctor (moneromooo-monero)
2017-09-25Merge pull request #2442Riccardo Spagni1-2/+1
e29282d2 build: auto update version info without manually deleting version.h (stoffu)
2017-09-25simplewallet: guard against I/O exceptionsmoneromooo-monero1-3/+12
CID 175308