aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-04-18Add view tags to outputs to reduce wallet scanning timej-berman1-8/+42
Implements view tags as proposed by @UkoeHB in MRL issue https://github.com/monero-project/research-lab/issues/73 At tx construction, the sender adds a 1-byte view tag to each output. The view tag is derived from the sender-receiver shared secret. When scanning for outputs, the receiver can check the view tag for a match, in order to reduce scanning time. When the view tag does not match, the wallet avoids the more expensive EC operations when deriving the output public key using the shared secret.
2022-04-10Fee changes from ArticMinemoneromooo-monero1-1/+2
https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf with a change to use 1.7 instead of 2.0 for the max long term increase rate
2022-04-06Merge pull request #8197luigi11111-1/+1
da9aa1f Copyright: Update to 2022 (mj-xmr)
2022-04-06Merge pull request #8179luigi11111-3/+42
ae0a840 wallet2: decrease the amount of data exchanged for output export (moneromooo-monero)
2022-04-05Merge pull request #7170luigi11111-1/+1
bd27deb Bulletproofs+ (SarangNoether) b7713cc Precompute initial transcript hash (SarangNoether) b535d66 Updates from security audit (SarangNoether) a0d80b1 plug bulletproofs plus into consensus (moneromooo-monero) 75bd004 ringct: a few minor optimizations from review (moneromooo-monero) a345060 ringct: port some of vtnerd's review changes from BP+ to BP (moneromooo-monero) 4c94cfe store outPk/8 in the tx for speed (moneromooo-monero) 5acdd0e bulletproofs+: some minor cleanup from vtnerd's review (moneromooo-monero)
2022-04-05plug bulletproofs plus into consensusmoneromooo-monero1-1/+1
2022-03-29wallet2: decrease the amount of data exchanged for output exportmoneromooo-monero1-3/+42
2022-03-10Make the wallet name optional when locked.Norman Moeschter1-0/+3
2022-03-04Copyright: Update to 2022mj-xmr1-1/+1
2022-03-02Merge pull request #7877luigi11111-39/+7
e08abaa multisig key exchange update and refactor (koe)
2022-02-22multisig key exchange update and refactorkoe1-39/+7
2021-10-19wallet2: fix key encryption when changing ask-password from 0/1 to 2moneromooo-monero1-3/+1
we reuse the wallet_keys_unlocker object, which does the right thing in conjunction with other users of decrypt/encrypt (ie, refresh).
2021-04-23wallet2: Fix rescan_bc keep_ki optionNathan Dorfman1-1/+1
2021-04-06Merge pull request #7321luigi11111-5/+5
f9b5b52 fix serialization being different on mac (moneromooo-monero)
2021-03-29Merge pull request #7358luigi11111-1/+1
f346e3e wallet_rpc_payments: implement multithreading (gdmojo)
2021-03-05fix serialization being different on macmoneromooo-monero1-5/+5
On Mac, size_t is a distinct type from uint64_t, and some types (in wallet cache as well as cold/hot wallet transfer data) use pairs/containers with size_t as fields. Mac would save those as full size, while other platforms would save them as varints. Might apply to other platforms where the types are distinct. There's a nasty hack for backward compatibility, which can go after a couple forks.
2021-02-20wallet_rpc_payments: implement multithreadinggdmojo1-1/+1
2021-02-18Merge pull request #7312luigi11111-0/+2
186271e monero-wallet-cli: Added command scan_tx (Horia Mihai David)
2021-02-17monero-wallet-cli: Added command scan_txHoria Mihai David1-0/+2
To implement this feature, the wallet2::scan_tx API was implemented.
2020-12-10simplewallet: don't complain about connecting to the daemon when offlinemoneromooo-monero1-0/+1
2020-12-01Merge pull request #6890Alexander Blair1-0/+4
ec14e4b8c wallet2: skip reorgs exceeding max-reorg-depth wallet setting (xiphon)
2020-10-13wallet2: skip reorgs exceeding max-reorg-depth wallet settingxiphon1-0/+4
2020-10-12wallet2: fix missing m_state field in wallet serializationmoneromooo-monero1-1/+3
2020-09-15wallet2: adapt to deterministic unlock timeTheCharlatan1-8/+10
2020-09-12wallet2: fix tx sanity check triggering on pre-rct outputsmoneromooo-monero1-1/+1
2020-08-28Bind signature to full address and signing modeSarang Noether1-1/+1
2020-08-28wallet: allow signing a message with spend or view keymoneromooo-monero1-2/+4
2020-08-27Integrate CLSAGs into moneromoneromooo-monero1-1/+1
They are allowed from v12, and MLSAGs are rejected from v13.
2020-08-27Merge pull request #6767Alexander Blair1-0/+3
07442a605 Fix build with Boost 1.74 (moneromooo-monero)
2020-08-27Merge pull request #6752Alexander Blair1-1/+1
85899230d simplewallet: allow setting tx keys when sending to a subaddress (moneromooo-monero) e916201f1 wallet2: fix setting tx keys when another is already set (moneromooo-monero)
2020-08-27Merge pull request #6690Alexander Blair1-33/+170
7175dcb10 replace most boost serialization with existing monero serialization (moneromooo-monero)
2020-08-17Revert "Use domain-separated ChaCha20 for in-memory key encryption"luigi11111-11/+0
This reverts commit 921dd8dde5d381052d0aa2936304a3541a230c55.
2020-08-17replace most boost serialization with existing monero serializationmoneromooo-monero1-33/+170
This reduces the attack surface for data that can come from malicious sources (exported output and key images, multisig transactions...) since the monero serialization is already exposed to the outside, and the boost lib we were using had a few known crashers. For interoperability, a new load-deprecated-formats wallet setting is added (off by default). This allows loading boost format data if there is no alternative. It will likely go at some point, along with the ability to load those. Notably, the peer lists file still uses the boost serialization code, as the data it stores is define in epee, while the new serialization code is in monero, and migrating it was fairly hairy. Since this file is local and not obtained from anyone else, the marginal risk is minimal, but it could be migrated later if needed. Some tests and tools also do, this will stay as is for now.
2020-08-16Merge pull request #6716Alexander Blair1-3/+4
76c16822d wallet2_api: implement runtime proxy configuration (xiphon)
2020-08-16Fix build with Boost 1.74moneromooo-monero1-0/+3
Thanks iDunk for testing
2020-08-10simplewallet: allow setting tx keys when sending to a subaddressmoneromooo-monero1-1/+1
The tx key derivation is different then
2020-08-09Use domain-separated ChaCha20 for in-memory key encryptionSarang Noether1-0/+11
2020-07-20wallet2_api: implement runtime proxy configurationxiphon1-3/+4
2020-07-19Merge pull request #6512Alexander Blair1-1/+1
5ef0607da Update copyright year to 2020 (SomaticFanatic)
2020-05-13simplewallet: don't complain about incoming payment ids on changemoneromooo-monero1-1/+2
2020-05-06Update copyright year to 2020SomaticFanatic1-1/+1
Update copyright year to 2020
2020-05-06Merge pull request #6485luigi11111-0/+2
7a8c1ee wallet2: fix subaddress expansion when receiving monero (moneromooo-monero)
2020-05-05Merge pull request #6467luigi11111-3/+3
8b655de simplewallet: report timestamp based expected unlock time on balance (moneromooo-monero)
2020-05-01Merge pull request #6446luigi11111-3/+3
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
2020-04-27wallet2: fix subaddress expansion when receiving moneromoneromooo-monero1-0/+2
2020-04-27trezor: adapt to new passphrase mechanismDusan Klinec1-3/+3
- choice where to enter passphrase is now made on the host - use wipeable string in the comm stack - wipe passphrase memory - protocol optimizations, prepare for new firmware version - minor fixes and improvements - tests fixes, HF12 support
2020-04-22simplewallet: report timestamp based expected unlock time on balancemoneromooo-monero1-3/+3
2020-04-15Allow wallet2.h to run in WebAssemblywoodser1-10/+30
- Add abstract_http_client.h which http_client.h extends. - Replace simple_http_client with abstract_http_client in wallet2, message_store, message_transporter, and node_rpc_proxy. - Import and export wallet data in wallet2. - Use #if defined __EMSCRIPTEN__ directives to skip incompatible code.
2020-04-10Merge pull request #6394luigi11111-0/+1
69b5992 simplewallet: new 'address one-off <major> <minor>' command (moneromooo-monero)
2020-04-07simplewallet: new "address one-off <major> <minor>" commandmoneromooo-monero1-0/+1
2020-03-31Merge pull request #6302luigi11111-0/+1
dab604e wallet2_api: implement estimateTransactionFee (xiphon)
2020-03-27Merge pull request #6299Alexander Blair1-0/+5
9c1f970b wallet2: remember daemon address overrides when loading a new wallet (moneromooo-monero)
2020-03-27Merge pull request #6289Alexander Blair1-0/+1
ffe7165e wallet: reroll fake outs selection on local tx_sanity_check failure (xiphon)
2020-03-12Merge pull request #6268Alexander Blair1-2/+2
a6c24412 wallet: fix exceptions getting the hash of a pruned tx (moneromooo-monero)
2020-03-07wallet2: remember daemon address overrides when loading a new walletmoneromooo-monero1-0/+5
2020-02-28Merge pull request #6238Alexander Blair1-0/+2
f717d593 wallet2: guard against race with multiple decrypt_keys users (moneromooo-monero)
2020-02-19Merge pull request #6190luigi11111-1/+6
096a9db Wallet: Distingush amounts for a single subaddress (tmoravec)
2020-02-06Merge pull request #6069Alexander Blair1-1/+1
d64e5aa7 wallet: allow message sign/verify for subaddresses (moneromooo-monero)
2020-01-26wallet: do not split integrated addresses in address book apimoneromooo-monero1-5/+30
2020-01-25wallet2_api: implement estimateTransactionFeexiphon1-0/+1
2020-01-14wallet: reroll fake outs selection on local tx_sanity_check failurexiphon1-0/+1
2020-01-11Merge pull request #6105Alexander Blair1-0/+2
0de8a0d3 wallet_rpc_server: new estimate_tx_size_and_weight RPC (moneromooo-monero)
2020-01-11Wallet: Distingush amounts for a single subaddressTadeas Moravec1-1/+6
Adding a new `amounts` field ot the output of `get_transfers` RPC method. This field specifies individual payments made to a single subaddress in a single transaction, e.g., made by this command: transfer <addr1> <amount1> <addr1> <amount2>
2019-12-31wallet: allow message sign/verify for subaddressesmoneromooo-monero1-1/+1
2019-12-30wallet: fix exceptions getting the hash of a pruned txmoneromooo-monero1-2/+2
2019-12-17wallet2: guard against race with multiple decrypt_keys usersmoneromooo-monero1-0/+2
If more than one thread wants to make sure of the spend secret key, then we decrypt on the first caller and reencrypt on the last caller, otherwise we could use an invalid secret key.
2019-12-12Merge pull request #6057luigi11111-0/+2
3b8dcc2 wallet2: make keys unlocker reentrant (moneromooo-monero)
2019-11-06wallet_rpc_server: new estimate_tx_size_and_weight RPCmoneromooo-monero1-0/+2
2019-11-01wallet: fix another facet of "did I get some monero" information leakmoneromooo-monero1-1/+2
We get new pool txes before processing any tx, pool or not. This ensures that if we're asked for a password, this does not cause a measurable delay in the txpool query after the last block query.
2019-11-01wallet2: do not send an unnecessary last getblocks.bin call on refreshmoneromooo-monero1-2/+2
The "everything refreshed" state was detected when a refresh call did not return any new blocks. This can be detected without that extra "empty" call by comparing the claimed node height to the height of the last block retrieved. Doing this avoids that last call, saves some bandwidth, and makes the common refresh case use only one call rather than two. As a side effect, it prevents an information leak reported by Tramèr et al: if the wallet retrieves a set of blocks which includes an output sent to the refreshing wallet, the wallet will prompt the user for the password to decode the amount and calculate the key image for the new output, and this will delay subsequent calls to getblocks.bin, allowing a passive adversary to note the delay and deduce when the wallet receives at least one output. This can still happen if the wallet downloads more than 1000 blocks, since this will be split in several calls, but then the most the adversary can tell is which 1000 block section the user received some monero (the adversary can estimate the heights of the blocks by calculating how many "large" transfers are done, which will be sections of blocks, the last of which will usually be below 1000, but the size of the data should allow the actual number of blocks sent to be determined fairly accurately). This timing trick still be used via the subsequent scan for incoming txes in the txpool, which will be fixed later.
2019-10-29wallet2: make keys unlocker reentrantmoneromooo-monero1-0/+2
protects against having your keys mangled
2019-10-25simplewallet: add public_nodes commandmoneromooo-monero1-0/+2
Lists nodes exposing their RPC port for public use
2019-10-25daemon, wallet: new pay for RPC use systemmoneromooo-monero1-17/+66
Daemons intended for public use can be set up to require payment in the form of hashes in exchange for RPC service. This enables public daemons to receive payment for their work over a large number of calls. This system behaves similarly to a pool, so payment takes the form of valid blocks every so often, yielding a large one off payment, rather than constant micropayments. This system can also be used by third parties as a "paywall" layer, where users of a service can pay for use by mining Monero to the service provider's address. An example of this for web site access is Primo, a Monero mining based website "paywall": https://github.com/selene-kovri/primo This has some advantages: - incentive to run a node providing RPC services, thereby promoting the availability of third party nodes for those who can't run their own - incentive to run your own node instead of using a third party's, thereby promoting decentralization - decentralized: payment is done between a client and server, with no third party needed - private: since the system is "pay as you go", you don't need to identify yourself to claim a long lived balance - no payment occurs on the blockchain, so there is no extra transactional load - one may mine with a beefy server, and use those credits from a phone, by reusing the client ID (at the cost of some privacy) - no barrier to entry: anyone may run a RPC node, and your expected revenue depends on how much work you do - Sybil resistant: if you run 1000 idle RPC nodes, you don't magically get more revenue - no large credit balance maintained on servers, so they have no incentive to exit scam - you can use any/many node(s), since there's little cost in switching servers - market based prices: competition between servers to lower costs - incentive for a distributed third party node system: if some public nodes are overused/slow, traffic can move to others - increases network security - helps counteract mining pools' share of the network hash rate - zero incentive for a payer to "double spend" since a reorg does not give any money back to the miner And some disadvantages: - low power clients will have difficulty mining (but one can optionally mine in advance and/or with a faster machine) - payment is "random", so a server might go a long time without a block before getting one - a public node's overall expected payment may be small Public nodes are expected to compete to find a suitable level for cost of service. The daemon can be set up this way to require payment for RPC services: monerod --rpc-payment-address 4xxxxxx \ --rpc-payment-credits 250 --rpc-payment-difficulty 1000 These values are an example only. The --rpc-payment-difficulty switch selects how hard each "share" should be, similar to a mining pool. The higher the difficulty, the fewer shares a client will find. The --rpc-payment-credits switch selects how many credits are awarded for each share a client finds. Considering both options, clients will be awarded credits/difficulty credits for every hash they calculate. For example, in the command line above, 0.25 credits per hash. A client mining at 100 H/s will therefore get an average of 25 credits per second. For reference, in the current implementation, a credit is enough to sync 20 blocks, so a 100 H/s client that's just starting to use Monero and uses this daemon will be able to sync 500 blocks per second. The wallet can be set to automatically mine if connected to a daemon which requires payment for RPC usage. It will try to keep a balance of 50000 credits, stopping mining when it's at this level, and starting again as credits are spent. With the example above, a new client will mine this much credits in about half an hour, and this target is enough to sync 500000 blocks (currently about a third of the monero blockchain). There are three new settings in the wallet: - credits-target: this is the amount of credits a wallet will try to reach before stopping mining. The default of 0 means 50000 credits. - auto-mine-for-rpc-payment-threshold: this controls the minimum credit rate which the wallet considers worth mining for. If the daemon credits less than this ratio, the wallet will consider mining to be not worth it. In the example above, the rate is 0.25 - persistent-rpc-client-id: if set, this allows the wallet to reuse a client id across runs. This means a public node can tell a wallet that's connecting is the same as one that connected previously, but allows a wallet to keep their credit balance from one run to the other. Since the wallet only mines to keep a small credit balance, this is not normally worth doing. However, someone may want to mine on a fast server, and use that credit balance on a low power device such as a phone. If left unset, a new client ID is generated at each wallet start, for privacy reasons. To mine and use a credit balance on two different devices, you can use the --rpc-client-secret-key switch. A wallet's client secret key can be found using the new rpc_payments command in the wallet. Note: anyone knowing your RPC client secret key is able to use your credit balance. The wallet has a few new commands too: - start_mining_for_rpc: start mining to acquire more credits, regardless of the auto mining settings - stop_mining_for_rpc: stop mining to acquire more credits - rpc_payments: display information about current credits with the currently selected daemon The node has an extra command: - rpc_payments: display information about clients and their balances The node will forget about any balance for clients which have been inactive for 6 months. Balances carry over on node restart.
2019-10-16Merge pull request #5952luigi11111-0/+6
93d5cf2 wallet2: add ignore-outputs-{above/below} option (stoffu)
2019-10-14wallet: remove long payment ID sending supportmoneromooo-monero1-3/+0
2019-10-14wallet2: ignore received unencrypted payment IDs (but warn hard)moneromooo-monero1-1/+1
2019-10-02wallet2: add ignore-outputs-{above/below} optionstoffu1-0/+6
https://github.com/aeonix/aeon/pull/131
2019-09-17wallet: add edit_address_book RPCmoneromooo-monero1-0/+1
2019-09-08Merge pull request #5855luigi11111-7/+9
2ec455d wallet: fix mismatch between two concepts of 'balance' (moneromooo-monero)
2019-09-05wallet: fix mismatch between two concepts of "balance"moneromooo-monero1-7/+9
One considers the blockchain, while the other considers the blockchain and some recent actions, such as a recently created transaction which spend some outputs, but isn't yet mined. Typically, the "balance" command wants the latter, to reflect the recent action, but things like proving ownership wants the former. This fixes a crash in get_reserve_proof, where a preliminary check and the main code used two concepts of "balance".
2019-08-28simplewallet: lock console on inactivitymoneromooo-monero1-0/+3
2019-08-22Wallet: Option to export data to ASCIITadeas Moravec1-0/+12
New CLI wallet variable: export-format with options "binary" (the default), or "ascii". "Binary" behaves as before, "ascii" forces the wallet to convert data to ASCII using base64. Reading files from the disk tries to auto detect what format has been used (using a magic string added when exporting the data). Implements https://github.com/monero-project/monero/issues/2859
2019-08-21Merge pull request #5722luigi11111-1/+1
8be5fea simplewallet: optional all flag to export_outputs/export_key_images (moneromooo-monero)
2019-07-24Merge pull request #5600luigi11111-0/+1
dd58057 Remember RPC version on initial connect (hyc)
2019-07-24Merge pull request #5594luigi11111-0/+2
f074b6b device: show address on device display (ph4r05)
2019-07-24Merge pull request #5513luigi11111-1/+1
bc94ba4 wallet: distinguish between empty and absent attributes (moneromooo-monero)
2019-07-02simplewallet: optional all flag to export_outputs/export_key_imagesmoneromooo-monero1-1/+1
2019-06-17device: show address on device displayDusan Klinec1-0/+2
- Trezor: support for device address display (subaddress, integrated address) - Wallet::API support added - Simplewallet: - address device [<index>] - address new <label> // shows address on device also - integrated_address [device] <payment_id|address> // new optional "device" arg to display also on the device
2019-06-02Remember RPC version on initial connectHoward Chu1-0/+1
Don't keep asking for it on an intact connection Wallet is too chatty over the wire
2019-05-16wallet: add unlock_time details to show_transfersmoneromooo-monero1-1/+1
also add a note when receiving the tx, because the user might not notice the "XXX blocks to unlock" in the balance.
2019-05-02wallet: distinguish between empty and absent attributesmoneromooo-monero1-1/+1
2019-04-18wallet2: "output lineup" fake out selectionmoneromooo-monero1-0/+25
Based on python code by sarang: https://github.com/SarangNoether/skunkworks/blob/outputs/outputs/simulate.py
2019-04-16Merge pull request #5445Riccardo Spagni1-4/+9
b18f0b10 wallet: new --offline option (moneromooo-monero)
2019-04-16Merge pull request #5418Riccardo Spagni1-2/+2
374f388d wallet_rpc_server: add a all flag to export_outputs (moneromooo-monero)
2019-04-15wallet: new --offline optionmoneromooo-monero1-4/+9
It will avoid connecting to a daemon (so useful for cold signing using a RPC wallet), and not perform DNS queries.
2019-04-15Merge pull request #5396Riccardo Spagni1-0/+2
b40392fb wallet2: add --no-dns flag (moneromooo-monero)
2019-04-15Merge pull request #5355Riccardo Spagni1-0/+3
c68fe787 device/trezor: add button pressed request (Dusan Klinec) 827f52ad wallet: API changes to enable passphrase entry (Dusan Klinec)
2019-04-11Merge pull request #5388Riccardo Spagni1-0/+2
0be5b2ee simplewallet: new unset_ring command (moneromooo-monero)
2019-04-11Merge pull request #5382Riccardo Spagni1-3/+3
c12b43cb wallet: add number of blocks required for the balance to fully unlock (moneromooo-monero) 3f1e9e84 wallet2: set confirmations to 0 for pool txes in proofs (moneromooo-monero) 36c037ec wallet_rpc_server: error out on getting the spend key from a hot wallet (moneromooo-monero) cd1eaff2 wallet_rpc_server: always fill out subaddr_indices in get_transfers (moneromooo-monero)
2019-04-11Merge pull request #5374Riccardo Spagni1-0/+9
a2561653 wallet: new option to start background mining (moneromooo-monero)
2019-04-11simplewallet: new net_stats commandmoneromooo-monero1-0/+3
displays total sent and received bytes
2019-04-10wallet_rpc_server: add a all flag to export_outputsmoneromooo-monero1-2/+2
if we don't want to export new outputs only
2019-04-07device/trezor: add button pressed requestDusan Klinec1-0/+3
2019-04-07Pass SSL arguments via one class and use shared_ptr instead of referenceLee Clagett1-8/+2
2019-04-06Change SSL certificate file list to OpenSSL builtin load_verify_locationLee Clagett1-2/+2
Specifying SSL certificates for peer verification does an exact match, making it a not-so-obvious alias for the fingerprints option. This changes the checks to OpenSSL which loads concatenated certificate(s) from a single file and does a certificate-authority (chain of trust) check instead. There is no drop in security - a compromised exact match fingerprint has the same worse case failure. There is increased security in allowing separate long-term CA key and short-term SSL server keys. This also removes loading of the system-default CA files if a custom CA file or certificate fingerprint is specified.
2019-04-06Merge pull request #5350Riccardo Spagni1-0/+1
050bb337 wallet2: factor the watchonly/multisig/etc fields on creation (moneromooo-monero)
2019-04-06Merge pull request #5347Riccardo Spagni1-0/+3
d45b85e1 wallet2: skip derivation precalc for blocks we know we'll skip (moneromooo-monero)
2019-04-04wallet: new option to start background miningmoneromooo-monero1-0/+9
The setup-background-mining option can be used to select background mining when a wallet loads. The user will be asked the first time the wallet is created.
2019-04-04wallet2: add --no-dns flagmoneromooo-monero1-0/+2
2019-04-02simplewallet: new unset_ring commandmoneromooo-monero1-0/+2
Useful when debugging, though not much for users
2019-04-01wallet: add number of blocks required for the balance to fully unlockmoneromooo-monero1-3/+3
2019-04-01Merge pull request #5319Riccardo Spagni1-0/+6
f825055d wallet_rpc_server: error out on getting the spend key from a hot wallet (moneromooo-monero) 67aa4adc wallet_rpc_server: add a set_daemon RPC (moneromooo-monero) 705acbac wallet2: init some variables to default values if loading old wallets (moneromooo-monero) f82bc29e wallet_rpc_server: always fill out subaddr_indices in get_transfers (moneromooo-monero) 01efdc6a wallet_rpc_server: set confirmations to 0 for pending/pool txes (moneromooo-monero)
2019-04-01wallet_rpc_server: add a set_daemon RPCmoneromooo-monero1-0/+6
2019-04-01Merge pull request #5333Riccardo Spagni1-1/+25
18faa6da wallet: add freeze/thaw/frozen commands (moneromooo-monero)
2019-04-01Merge pull request #5303Riccardo Spagni1-1/+1
0a6cb30d wallet: flush output cache upon reorg (moneromooo-monero)
2019-04-01Merge pull request #5298Riccardo Spagni1-2/+3
8fd7452b wallet: move light wallet RPC out of core RPC (moneromooo-monero)
2019-03-27wallet2: factor the watchonly/multisig/etc fields on creationmoneromooo-monero1-0/+1
There's half a dozen calls, and it's easy to miss some when adding a new field.
2019-03-25wallet2: skip derivation precalc for blocks we know we'll skipmoneromooo-monero1-0/+3
2019-03-25Added socks proxy (tor/i2pd/kovri) support to walletLee Clagett1-1/+3
2019-03-24Merge pull request #5277Riccardo Spagni1-4/+20
adf6d773 wallet: fix offline signing calling a daemon RPC (moneromooo-monero)
2019-03-22wallet: add freeze/thaw/frozen commandsmoneromooo-monero1-1/+25
These commands let one freeze outputs by key image, so they do not appear in balance, nor are considered when creating a transaction, etc This is helpful when receiving an output from a suspected spy, who might try to track your other outputs by seeing with what other outputs it gets spent. The frozen command may be used without parameters to list all currently frozen outputs.
2019-03-21wallet: fix offline signing calling a daemon RPCmoneromooo-monero1-4/+20
2019-03-21wallet2: sanity check new tx before sendingmoneromooo-monero1-0/+4
We generate and check tx proofs and verify the amounts in those match what the original amounts were.
2019-03-21Merge pull request #5211Riccardo Spagni1-11/+16
c9b13fbb tests/trezor: HF9 and HF10 tests (Dusan Klinec) a1fd1d49 device/trezor: HF10 support added, wallet::API (Dusan Klinec) d74d26f2 crypto: hmac_keccak added (Dusan Klinec)
2019-03-20device/trezor: HF10 support added, wallet::APIDusan Klinec1-11/+16
- import only key images generated by cold signing process - wallet_api: trezor methods added - wallet: button request code added - const added to methods - wallet2::get_tx_key_device() tries to decrypt stored tx private keys using the device. - simplewallet supports get_tx_key and get_tx_proof on hw device using the get_tx_key feature - live refresh enables refresh with trezor i.e. computing key images on the fly. More convenient and efficient for users. - device: has_ki_live_refresh added - a thread is watching whether live refresh is being computed, if not for 30 seconds, it terminates the live refresh process - switches Trezor state
2019-03-19Merge pull request #5203Riccardo Spagni1-0/+1
8b514645 add multisig tx sets to describe_transfer rpc endpoint (spoke0)
2019-03-19Merge pull request #4889Riccardo Spagni1-1/+5
f42263eb wallet: adds rescan_bc option with preserving key images (Dusan Klinec)
2019-03-17Merge pull request #5061Riccardo Spagni1-1/+1
1f2930ce Update 2019 copyright (binaryFate)
2019-03-17wallet: flush output cache upon reorgmoneromooo-monero1-1/+1
Fixes output usage tracking
2019-03-15wallet: move light wallet RPC out of core RPCmoneromooo-monero1-2/+3
It's not nothing to do with it
2019-03-15wallet: adds rescan_bc option with preserving key imagesDusan Klinec1-1/+5
- enables to perform rescan_spent / ki sync with untrusted daemon. Spent check status involves RPC calls which require trusted daemon status as it leaks information. The new call performs soft reset while preserving key images thus a sequence: refresh, ki sync / import, rescan_bc keep_ki will correctly perform spent checking without need for trusted daemon. - useful to detect spent outputs with untrusted daemon on watch_only / multisig / hw-cold wallets after expensive key image sync. - cli: rescan_bc keep_ki
2019-03-14Merge pull request #4977Riccardo Spagni1-0/+2
5ea17909 device/trezor: debugging features, trezor tests (Dusan Klinec)
2019-03-05Update 2019 copyrightbinaryFate1-1/+1
2019-03-05add multisig tx sets to describe_transfer rpc endpointspoke01-0/+1
2019-03-05epee: add SSL supportMartijn Otto1-1/+2
RPC connections now have optional tranparent SSL. An optional private key and certificate file can be passed, using the --{rpc,daemon}-ssl-private-key and --{rpc,daemon}-ssl-certificate options. Those have as argument a path to a PEM format private private key and certificate, respectively. If not given, a temporary self signed certificate will be used. SSL can be enabled or disabled using --{rpc}-ssl, which accepts autodetect (default), disabled or enabled. Access can be restricted to particular certificates using the --rpc-ssl-allowed-certificates, which takes a list of paths to PEM encoded certificates. This can allow a wallet to connect to only the daemon they think they're connected to, by forcing SSL and listing the paths to the known good certificates. To generate long term certificates: openssl genrsa -out /tmp/KEY 4096 openssl req -new -key /tmp/KEY -out /tmp/REQ openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT /tmp/KEY is the private key, and /tmp/CERT is the certificate, both in PEM format. /tmp/REQ can be removed. Adjust the last command to set expiration date, etc, as needed. It doesn't make a whole lot of sense for monero anyway, since most servers will run with one time temporary self signed certificates anyway. SSL support is transparent, so all communication is done on the existing ports, with SSL autodetection. This means you can start using an SSL daemon now, but you should not enforce SSL yet or nothing will talk to you.
2019-03-05device/trezor: debugging features, trezor testsDusan Klinec1-0/+2
2019-03-04Merge pull request #4054Riccardo Spagni1-2/+6
24569454 epee: add SSL support (moneromooo-monero)
2019-03-03wallet2: fix mishandling rct outputs in coinbase txmoneromooo-monero1-1/+1
Reported by cutcoin
2019-02-02epee: add SSL supportmoneromooo-monero1-2/+6
RPC connections now have optional tranparent SSL. An optional private key and certificate file can be passed, using the --{rpc,daemon}-ssl-private-key and --{rpc,daemon}-ssl-certificate options. Those have as argument a path to a PEM format private private key and certificate, respectively. If not given, a temporary self signed certificate will be used. SSL can be enabled or disabled using --{rpc}-ssl, which accepts autodetect (default), disabled or enabled. Access can be restricted to particular certificates using the --rpc-ssl-allowed-certificates, which takes a list of paths to PEM encoded certificates. This can allow a wallet to connect to only the daemon they think they're connected to, by forcing SSL and listing the paths to the known good certificates. To generate long term certificates: openssl genrsa -out /tmp/KEY 4096 openssl req -new -key /tmp/KEY -out /tmp/REQ openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT /tmp/KEY is the private key, and /tmp/CERT is the certificate, both in PEM format. /tmp/REQ can be removed. Adjust the last command to set expiration date, etc, as needed. It doesn't make a whole lot of sense for monero anyway, since most servers will run with one time temporary self signed certificates anyway. SSL support is transparent, so all communication is done on the existing ports, with SSL autodetection. This means you can start using an SSL daemon now, but you should not enforce SSL yet or nothing will talk to you.
2019-01-28Merge pull request #5056Riccardo Spagni1-2/+2
8258a9e7 wallet: do not check txpool in background mode (moneromooo-monero)
2019-01-22add a bulletproof version, new bulletproof type, and rct configmoneromooo-monero1-1/+1
This makes it easier to modify the bulletproof format
2019-01-16wallet2: remember which output keys map to which key imagesmoneromooo-monero1-6/+14
This allows filling in transfer_details when a cold signed tx gets seen in a block next
2019-01-16Merge pull request #5027Riccardo Spagni1-0/+3
9092fc4b wallet: do not display daemon controlled text if untrusted (moneromooo-monero)
2019-01-16Merge pull request #5012Riccardo Spagni1-1/+1
d7354c78 wallet_rpc_server: add all field to export_key_images (moneromooo-monero)
2019-01-09wallet: do not check txpool in background modemoneromooo-monero1-2/+2
This avoids the constant message about needed to run refresh to enter a password. Also mention the txpool when asking for the password if the reason is a pool tx.
2018-12-31wallet2: speedup output trackingmoneromooo-monero1-3/+4
It can get heavy for large wallets
2018-12-31wallet: optionally keep track of owned outputs usesmoneromooo-monero1-1/+9
2018-12-30wallet: do not display daemon controlled text if untrustedmoneromooo-monero1-0/+3
2018-12-24wallet_rpc_server: add all field to export_key_imagesmoneromooo-monero1-1/+1
To use if you want all key images, not just the ones for recently imported outputs
2018-12-12MMS (Multisig Messaging System): Initial versionrbrunner71-1/+13
2018-12-12Merge pull request #4839Riccardo Spagni1-1/+32
d71f89e2 device/trezor: device/trezor: correct device initialization, status check (Dusan Klinec) 65b9bca7 device/trezor: python2 compatibility - bundle dependencies (Dusan Klinec) 9cf636af device/trezor: ask for KI sync on first refresh (Dusan Klinec) d21dad70 device: enable to use multiple independent device wallets (Dusan Klinec) 318cc784 device/trezor: passphrase entry on host (Dusan Klinec)
2018-12-04device/trezor: ask for KI sync on first refreshDusan Klinec1-1/+6
When doing a first refresh on HW-token based wallet KI sync is required if money were received. Received money may indicate wallet was already used before the restore I.e., some transaction could have been already sent from the wallet. The spent UTXO would not be detected as spent which could lead to double spending errors on submitting a new transaction. Thus if the wallet is HW-token based with the cold signing protocol and the first refresh detected received money the user is asked to perform the key image sync.
2018-12-04device: enable to use multiple independent device walletsDusan Klinec1-0/+4
- adds a new option `--hw-device-deriv-path` to the simple wallet. Enables to specify wallet derivation path / wallet code (path avoided so it can be misinterpreted as a file path). - devices can use different derivation mechanisms. Trezor uses standard SLIP-10 mechanism with fixed SLIP-44 prefix for Monero - Trezor: when empty, the default derivation mechanism is used with 44'/128'/0'. When entered the derivation path is 44'/128'/PATH. - Trezor: the path is always taken as elements are hardened (1<<31 bit turned on)
2018-12-04Merge pull request #4894Riccardo Spagni1-2/+2
aee7a4e3 wallet_rpc_server: do not use RPC data if the call failed (moneromooo-monero) 1a0733e5 windows_service: fix memory leak (moneromooo-monero) 0dac3c64 unit_tests: do not rethrow a copy of an exception (moneromooo-monero) 5d9915ab cryptonote: fix get_unit for non default settings (moneromooo-monero) d4f50cb1 remove some unused code (moneromooo-monero) 61163971 a few minor (but easy) performance tweaks (moneromooo-monero) 30023074 tests: slow_memmem now returns size_t (moneromooo-monero)
2018-12-04Merge pull request #4854Riccardo Spagni1-0/+2
bd98e99c Removed a lot of unnecessary includes (Martijn Otto)
2018-12-04Merge pull request #4845Riccardo Spagni1-2/+2
6732fc7f Fix issue 4793 - M/N multisig transaction signature (naughtyfox)
2018-11-29device/trezor: passphrase entry on hostDusan Klinec1-0/+22
- simple device callback object added. Device can request passphrase/PIN entry via the callback or notify user some action is required - callback is routed to wallet2, which routes the callback to i_wallet_callback so CLI or GUI wallets can support passphrase entry for HW tokens - wallet: device open needs wallet callback first - passphrase protected device needs wallet callback so user can enter passphrase
2018-11-23a few minor (but easy) performance tweaksmoneromooo-monero1-2/+2
Found by codacy.com
2018-11-20Fix issue 4793 - M/N multisig transaction signaturenaughtyfox1-2/+2
2018-11-15Removed a lot of unnecessary includesMartijn Otto1-0/+2
2018-11-14Merge pull request #4753Riccardo Spagni1-1/+1
157054b8 hardfork: initialize current_fork_index in ctor (moneromooo-monero) 2362baf7 network_throttle: initialize m_last_sample_time in ctor (moneromooo-monero) d9400f69 serializtion: add missing mainnet and stagenet fields for 0mq (moneromooo-monero) cbe0122b wallet2: initialize amount to 0 in tx_scan_info_t ctor (moneromooo-monero)
2018-11-06Merge pull request #4731Riccardo Spagni1-1/+1
f26ce08c wallet: add a non destructive blockchain rescan (moneromooo-monero)
2018-11-06Merge pull request #4728Riccardo Spagni1-1/+2
1f35de23 simplewallet: display locked/unlocked state in show_transfers (moneromooo-monero)
2018-11-04wallet2: only export necessary outputs and key imagesmoneromooo-monero1-6/+18
and disable annoying test that requires ridiculous amounts of skullduggery every time some format changes
2018-11-03wallet: add a non destructive blockchain rescanmoneromooo-monero1-1/+1
2018-11-02device/trezor: trezor support addedDusan Klinec1-2/+20
2018-10-29wallet2: initialize amount to 0 in tx_scan_info_t ctormoneromooo-monero1-1/+1
It seems the more prudent thing to do here. It will not catch attempts to use that value before it is initialized when using ASAN or valgrind, but in a case where it does, it will have smaller repercussions. So it seems appropriate in this particular case. Coverity 182498
2018-10-25simplewallet: display locked/unlocked state in show_transfersmoneromooo-monero1-1/+2
it doesn't display the details, which are already displayed in show_transfer
2018-10-07Merge pull request #4036Riccardo Spagni1-0/+17
9acf42d3 Multisig M/N functionality core tests added (naughtyfox) 9f3963e8 Arbitrary M/N multisig schemes: * support in wallet2 * support in monero-wallet-cli * support in monero-wallet-rpc * support in wallet api * support in monero-gen-trusted-multisig * unit tests for multisig wallets creation (naughtyfox)
2018-10-01Arbitrary M/N multisig schemes:naughtyfox1-0/+17
* support in wallet2 * support in monero-wallet-cli * support in monero-wallet-rpc * support in wallet api * support in monero-gen-trusted-multisig * unit tests for multisig wallets creation
2018-10-01wallet: fix --generate-from-json using wrong passwordmoneromooo-monero1-1/+1
2018-09-29Merge pull request #4333Riccardo Spagni1-0/+5
73403004 add --block-notify to monerod and --tx-notify to monero-wallet-{cli,rpc} (moneromooo-monero)
2018-09-29Merge pull request #4458Riccardo Spagni1-1/+1
921b0fb1 use default create_address_file argument (m2049r)
2018-09-21Merge pull request #4401Riccardo Spagni1-3/+3
66901901 README: harmonize command formatting inside README.md (Andrea) 8cd98408 disable AES on s390x architecture (Tuan M. Hoang) 4ed30bab wallet: implement coin splitting for sweep_* 'outputs' option (whythat) 24f52396 wallet: add 'outputs' option for sweep_* commands (whythat) 52e19d69 README: Compile boost with cxxflags=-fPIC cflags=-fPIC (Italocoin Project) 0c77523d README: fill in libsodium package name for Arch (phloatingman)
2018-09-19query backing devicem2049r1-2/+4
2018-09-18Merge pull request #4302Riccardo Spagni1-2/+2
ba8dd347 api/wallet: properly disable key encryption (stoffu)
2018-09-18wallet: add 'outputs' option for sweep_* commandswhythat1-3/+3
'outputs' option allows to specify the number of separate outputs of smaller denomination that will be created by sweep operation. rebased by moneromooo
2018-09-17api/wallet: properly disable key encryptionstoffu1-2/+2
2018-09-14hw_device: support for multiple devices added [for review]Dusan Klinec1-0/+5
- device name is a new wallet property - full device name is now a bit more structured so we can address particular device vendor + device path. Example: 'Ledger', 'Trezor:udp', 'Trezor:udp:127.0.0.1:21324', 'Trezor:bridge:usb01'. The part before ':' identifies HW device implementation, the optional part after ':' is device path to look for. - new --hw-device parameter added to the wallet, can name the hardware device - device reconnect added
2018-09-14Merge pull request #4324Riccardo Spagni1-10/+16
44259e56 wallet: ask-password can now ask without encrypting the secret spend key (moneromooo-monero)
2018-09-14wallet: ask-password can now ask without encrypting the secret spend keymoneromooo-monero1-10/+16
2018-09-14Merge pull request #4332Riccardo Spagni1-1/+5
20171746 wallet2: factor the creation of a new wallet keys file (moneromooo-monero) be6acfd5 wallet2: factor new blockchain setup (moneromooo-monero)
2018-09-14Merge pull request #4253Riccardo Spagni1-201/+0
be001326 remove obsolete daemon selection of fake outs and old tx construction (moneromooo-monero)
2018-09-14remove obsolete daemon selection of fake outs and old tx constructionmoneromooo-monero1-201/+0
2018-09-14Merge pull request #4260Riccardo Spagni1-4/+4
a54dbaee blockchain_blackball: add --force-chain-reaction-pass flag (moneromooo-monero) 44439c32 record blackballs as amount/offset, and add export ability (moneromooo-monero) 4bce935b blockchain_blackball: more optimizations (moneromooo-monero) b66ba783 blockchain_blackball: do not process duplicate blockchains parts (moneromooo-monero) 639a3c01 blockchain_blackball: make it clear secondary passes are not incremental (moneromooo-monero) eb8a51be blockchain_blackball: detect spent outputs by partial ring reuse (moneromooo-monero) d6d276c6 blockchain_blackball: fix chain reaction phase in incremental mode (moneromooo-monero) 2b2a681b blockchain_blackball: avoid false positives for different amounts (moneromooo-monero) 80e4fef3 blockchain_blackball: set transaction looping txn to read only (moneromooo-monero) 4801d6b5 blockchain_blackball: add stats (moneromooo-monero) 846190fd blockchain_blackball: support pre-v2 databases (moneromooo-monero) daa6cc7d blockchain_blackball: use LMDB for the cache (moneromooo-monero) 50cb370d ringdb: allow blackballing many outputs at once (moneromooo-monero)
2018-09-11v8: per byte fee, pad bulletproofs, fixed 11 ring sizemoneromooo-monero1-13/+11
2018-09-11bulletproofs: add multi output bulletproofs to rctmoneromooo-monero1-2/+2
2018-09-10record blackballs as amount/offset, and add export abilitymoneromooo-monero1-4/+4
2018-09-03wallet2: factor the creation of a new wallet keys filemoneromooo-monero1-1/+3
2018-09-03wallet2: factor new blockchain setupmoneromooo-monero1-0/+2
2018-08-23wallet: store trusted-daemon flag in wallet2stoffu1-20/+24
2018-08-16store secret keys encrypted where possiblemoneromooo-monero1-18/+39
The secret spend key is kept encrypted in memory, and decrypted on the fly when needed. Both spend and view secret keys are kept encrypted in a JSON field in the keys file. This avoids leaving the keys in memory due to being manipulated by the JSON I/O API.
2018-08-16wallet: wipe seed from memory where appropriatemoneromooo-monero1-4/+7
2018-08-16wallet2: make --restricted-rpc available for wallet RPC onlystoffu1-3/+1
2018-08-15Merge pull request #4188luigi11111-0/+1
a3fe1c5 simplewallet: add set_tx_key for importing tx keys from 3rd party wallets (stoffu)
2018-08-15Merge pull request #4170luigi11111-0/+1
1c6cfd3 wallet-rpc: add get_address_index command (stoffu)
2018-08-15Merge pull request #4153luigi11111-2/+10
37f0799 wallet: distinguish coinbase from other txes in show_transfers (moneromooo-monero)
2018-08-15Merge pull request #4103luigi11111-2/+3
bcab579 wallet: allow adjusting number of rounds for the key derivation function (stoffu)
2018-08-15Merge pull request #3528luigi11111-1/+1
34d4b79 wallet2: use a gamma distribution to pick fake outs (moneromooo-monero)
2018-08-08wallet: allow adjusting number of rounds for the key derivation functionstoffu1-2/+3