summaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.cpp
Commit message (Collapse)AuthorAgeFilesLines
* wallet: store watch-only wallet correctly when `change_password()` is calledjeff2023-09-221-2/+2
| | | | | | | | | | The Monero GUI code was calling `Monero::wallet::setPassword()` on every open/close for some reason, and the old `store_to()` code called `store_keys()` with `watch_only=false`, even for watch-only wallets. This caused a bug where the watch-only keys file got saved with with the JSON field `watch_only` set to 0, and after saving a watch-only wallet once, a user could never open it back up against because `load()` errored out. This never got brought up before this because you would have to change the file location of the watch-only wallet to see this bug, and I guess that didn't happen often, but calling the new `store_to()` function with the new `force_rewrite` parameter set to `true` triggers key restoring and the bug appeared.
* Merge pull request #8941luigi11112023-09-141-2/+2
|\ | | | | | | 356e687 wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing (moneromooo-monero) 633e1b7 wallet_rpc_server: add --no-initial-sync flag for quicker network binding (moneromooo-monero)
| * wallet_rpc_server: chunk refresh to keep responding to RPC while refreshingmoneromooo-monero2023-08-171-2/+2
| |
* | wallet2: fix `store_to()` and `change_password()`jeffro2562023-08-231-28/+74
|/ | | | | | | | Resolves #8932 and: 2. Not storing cache when new path is different from old in `store_to()` and 3. Detecting same path when new path contains entire string of old path in `store_to()` and 4. Changing your password / decrypting your keys (in this method or others) and providing a bad original password and getting no error and 5. Changing your password and storing to a new file
* Merge pull request #8957luigi11112023-08-171-4/+9
|\ | | | | | | b51f4a9 scan_tx: fix custom comparator for == case; fixes #8951 (j-berman)
| * scan_tx: fix custom comparator for == case; fixes #8951j-berman2023-07-191-4/+9
| | | | | | | | Co-authored-by: woodser <woodser@protonmail.com>
* | Merge pull request #8953luigi11112023-08-171-4/+4
|\ \ | | | | | | | | | ed05ac6 wallet2: when checking frozen multisig tx set, don't assume order (jeffro256)
| * | wallet2: when checking frozen multisig tx set, don't assume orderjeffro2562023-07-171-4/+4
| |/
* | Merge pull request #8942luigi11112023-08-171-21/+26
|\ \ | | | | | | | | | 78348bc wallet-rpc: restore from multisig seed (jeffro256)
| * | wallet-rpc: restore from multisig seedjeffro2562023-08-101-21/+26
| |/
* | Enforce restricted # pool txs served via RPC + optimize chunked reqs ↵j-berman2023-07-091-92/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [release-v0.18] - `/getblocks.bin` respects the `RESTRICTED_TX_COUNT` (=100) when returning pool txs via a restricted RPC daemon. - A restricted RPC daemon includes a max of `RESTRICTED_TX_COUNT` txs in the `added_pool_txs` field, and returns any remaining pool hashes in the `remaining_added_pool_txids` field. The client then requests the remaining txs via `/gettransactions` in chunks. - `/gettransactions` no longer does expensive no-ops for ALL pool txs if the client requests a subset of pool txs. Instead it searches for the txs the client explicitly requests. - Reset `m_pool_info_query_time` when a user: (1) rescans the chain (so the wallet re-requests the whole pool) (2) changes the daemon their wallets points to (a new daemon would have a different view of the pool) - `/getblocks.bin` respects the `req.prune` field when returning pool txs. - Pool extension fields in response to `/getblocks.bin` are optional with default 0'd values.
* | wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 call ↵rbrunner72023-07-091-119/+312
|/ | | | [release-v0.18]
* Merge pull request #8917luigi11112023-07-061-0/+2
|\ | | | | | | | | 835896e wallet2: do not lose exception in current thread on refresh (Crypto City) 62bb95b wallet2: fix missing exceptions from failing wallet refresh (Crypto City)
| * wallet2: do not lose exception in current thread on refreshCrypto City2023-06-271-0/+1
| |
| * wallet2: fix missing exceptions from failing wallet refreshCrypto City2023-06-271-0/+1
| |
* | Merge pull request #8905luigi11112023-07-061-2/+39
|\ \ | | | | | | | | | dc24312 wallet: respect frozen key images in multisig wallets [RELEASE] (jeffro256)
| * | wallet: respect frozen key images in multisig wallets [RELEASE]jeffro2562023-06-121-2/+39
| |/ | | | | | | | | | | | | Before this change, if a multisig peer asked you to sign a transaction with a frozen enote, the wallet will do it without any error or warning. This change makes it so that wallets will refuse to sign multisig transactions with frozen enotes. Disclaimer: This PR was generously funded by @LocalMonero.
* | Merge pull request #8566luigi11112023-06-271-51/+315
|\ \ | |/ |/| | | 65e13db wallet2: fix rescanning tx via scan_tx (j-berman)
| * wallet2: fix rescanning tx via scan_txj-berman2023-03-131-51/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Detach & re-process txs >= lowest scan height - ensures that if a user calls scan_tx(tx1) after scanning tx2, the wallet correctly processes tx1 and tx2 - if a user provides a tx with a height higher than the wallet's last scanned height, the wallet will scan starting from that tx's height - scan_tx requires trusted daemon iff need to re-process existing txs: in addition to querying a daemon for txids, if a user provides a txid of a tx with height *lower* than any *already* scanned txs in the wallet, then the wallet will also query the daemon for all the *higher* txs as well. This is likely unexpected behavior to a caller, and so to protect a caller from revealing txid's to an untrusted daemon in an unexpected way, require the daemon be trusted.
* | wallet2: fix infinite loop in fake out selectionCrypto City2023-03-251-3/+3
|/ | | | | | | | | | The gamma picker and the caller code did not quite agree on the number of rct outputs available for use - by one block - which caused an infinite loop if the picker could never pick outputs from that block but already had picked all other outputs from previous blocks. Also change the range to select from using code from UkoeHB.
* wallet2: fix create view-only wallet from existing walletj-berman2022-10-181-6/+2
|
* Merge pull request #8585luigi11112022-09-261-0/+1
|\ | | | | | | 5ffa31c wallet2: fail to establish daemon cxn == 'Disconnected' cxn status (j-berman)
| * wallet2: fail to establish daemon cxn == "Disconnected" cxn statusj-berman2022-09-211-0/+1
| |
* | Merge pull request #8582luigi11112022-09-261-11/+20
|\ \ | | | | | | | | | 1cd21bf add an option to force-update multisig key exchange under some circumstances (koe)
| * | add an option to force-update multisig key exchange under some circumstanceskoe2022-09-211-11/+20
| |/
* / Second thread pool for IOSChernykh2022-09-201-3/+3
|/
* Merge pull request #8545v0.18.1.1luigi11112022-09-151-7/+5
|\ | | | | | | | | | | | | 12e7c41 Merge pull request #5 from j-berman/restore-msig-encrypted-seed (Justin Berman) 848a0c0 Fix segfault restoring encrypted multisig seed (j-berman) 401f5d9 Require user ack multisig is experimental to restore (j-berman) fc8a5d6 multisig: fix #8537 seed restore (suggestions by @UkoeHB) (j-berman)
| * multisig: fix #8537 seed restore (suggestions by @UkoeHB)j-berman2022-09-011-7/+5
| | | | | | | | | | | | | | | | - spend secret key is no longer the sum of multisig key shares; no need to check that is the case upon restore. - restoring a multisig wallet from multisig info means that the wallet must have already completed all setup rounds. Upon restore, set the number of rounds completed accordingly.
* | wallet2: check wallet compatibility with daemon's hard fork versionj-berman2022-09-121-12/+141
| |
* | Merge pull request #8555luigi11112022-09-091-32/+83
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | e29b2e9 wallet2: ensure imported outputs subaddresses are created (moneromooo-monero) 1d3657a wallet2: better test on whether to allow output import (moneromooo-monero) 0cbf557 allow exporting outputs in chunks (moneromooo-monero) b03d709 wallet2: fixes for export/import output flow (j-berman) 4b7eb57 wallet2: do not assume imported outputs must be non empty (moneromooo-monero) 5b98beb wallet2: prevent importing outputs in a hot wallet (moneromooo-monero) 0de1571 wallet2: fix missing subaddress indices in 'light' exported outputs (moneromooo-monero)
| * | wallet2: ensure imported outputs subaddresses are createdmoneromooo-monero2022-09-071-0/+4
| | | | | | | | | | | | reported by j-berman
| * | wallet2: better test on whether to allow output importmoneromooo-monero2022-09-071-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | Being offline is not a good enough heuristic, so we keep track of whether the wallet ever refreshed from a daemon, which is a lot better, and probably the best we can do without manual user designation (which would break existing cold wallet setups till the user designates those wallets)
| * | allow exporting outputs in chunksmoneromooo-monero2022-09-071-30/+64
| | | | | | | | | | | | | | | this will make it easier huge wallets to do so without hitting random limits (eg, max string size in node).
| * | wallet2: fixes for export/import output flowj-berman2022-09-061-2/+6
| | | | | | | | | | | | | | | | | | - only allow offline wallets to import outputs - don't import empty outputs - export subaddress indexes when exporting outputs
| * | wallet2: do not assume imported outputs must be non emptymoneromooo-monero2022-09-061-2/+2
| | |
| * | wallet2: prevent importing outputs in a hot walletmoneromooo-monero2022-09-061-0/+2
| | |
| * | wallet2: fix missing subaddress indices in "light" exported outputsmoneromooo-monero2022-09-061-1/+3
| |/
* / Fix missing semi-colon in error messagej-berman2022-09-061-1/+1
|/ | | | Co-authored-by: woodser <woodser@protonmail.com>
* Merge pull request #8433luigi11112022-07-141-9/+14
|\ | | | | | | db8181a wallet2: force using output distribution for ringct outs (tobtoht)
| * wallet2: force using output distribution for ringct outstobtoht2022-06-251-9/+14
| | | | | | | | Co-authored-by: j-berman <justinberman@protonmail.com>
* | derive multisig tx secret keys from an entropy source plus the tx inputs' ↵koe2022-07-131-0/+4
| | | | | | | | key images
* | Merge pull request #8149luigi11112022-07-131-88/+210
|\ \ | | | | | | | | | c7b2944 multisig: fix critical vulnerabilities in signing (anon)
| * | multisig: fix critical vulnerabilities in signinganon2022-06-301-88/+210
| |/
* | Merge pull request #8408luigi11112022-07-061-37/+0
|\ \ | | | | | | | | | 09a597b wallet2: don't use DNS to obtain segregation heights (tobtoht)
| * | wallet2: don't use DNS to obtain segregation heightstobtoht2022-06-281-37/+0
| |/
* | Merge pull request #8404luigi11112022-07-061-26/+1
|\ \ | | | | | | | | | 50ccc7e wallet2: remove obsolete rpc version check (tobtoht)
| * | wallet2: remove obsolete rpc version checktobtoht2022-06-241-26/+1
| |/
* | Merge pull request #8394luigi11112022-07-061-1/+2
|\ \ | | | | | | | | | 4278a3a cryptonote_basic: catch crypto api errors (moneromooo-monero)
| * | cryptonote_basic: catch crypto api errorsmoneromooo-monero2022-06-201-1/+2
| |/
* | Merge pull request #8388luigi11112022-07-051-7/+11
|\ \ | | | | | | | | | 04c0da2 Chunk /gettransactions to avoid hitting restricted RPC limit (tobtoht)