summaryrefslogtreecommitdiff
path: root/src
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 #8988luigi11112023-09-144-2/+3
|\ | | | | | | 64ed938 build: prepare v0.18.3.0 (selsta)
| * build: prepare v0.18.3.0selsta2023-09-104-2/+3
| |
* | Merge pull request #8941luigi11112023-09-143-6/+14
|\ \ | | | | | | | | | 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-173-5/+9
| | |
| * | wallet_rpc_server: add --no-initial-sync flag for quicker network bindingmoneromooo-monero2023-08-171-1/+5
| |/
* / wallet2: fix `store_to()` and `change_password()`jeffro2562023-08-232-34/+90
|/ | | | | | | | 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-174-25/+59
|\ \ | | | | | | | | | 78348bc wallet-rpc: restore from multisig seed (jeffro256)
| * | wallet-rpc: restore from multisig seedjeffro2562023-08-104-25/+59
| |/
* | Merge pull request #8891luigi11112023-08-172-2/+7
|\ \ | | | | | | | | | 842478c core_rpc_server: return ID of submitted block (jeffro256)
| * | core_rpc_server: return ID of submitted blockjeffro2562023-06-302-2/+7
| | |
* | | Enforce restricted # pool txs served via RPC + optimize chunked reqs ↵j-berman2023-07-0912-168/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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-099-203/+757
| |/ |/| | | | | [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 #8916luigi11112023-07-061-0/+10
|\ \ | | | | | | | | | 1924c17 protocol: drop peers sending duplicate txes (moneromooo-monero)
| * | protocol: drop peers sending duplicate txesmoneromooo-monero2023-06-271-0/+10
| |/
* | Merge pull request #8908luigi11112023-07-062-0/+29
|\ \ | | | | | | | | | c6530d2 Add CLSAG serialization to ZMQ code (Lee Clagett)
| * | Add CLSAG serialization to ZMQ codeLee Clagett2023-06-162-0/+29
| |/
* | Merge pull request #8905luigi11112023-07-062-2/+40
|\ \ | | | | | | | | | dc24312 wallet: respect frozen key images in multisig wallets [RELEASE] (jeffro256)
| * | wallet: respect frozen key images in multisig wallets [RELEASE]jeffro2562023-06-122-2/+40
| |/ | | | | | | | | | | | | 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 #8895luigi11112023-07-061-1/+1
|\ \ | | | | | | | | | 26025cb Speed up perf_timer init on x86 (SChernykh)
| * | Speed up perf_timer init on x86SChernykh2023-06-081-1/+1
| |/ | | | | | | All Monero binaries have 1 second startup delay because of this code. This is especially noticeable and affects UX in Monero GUI wallet with local node where it often starts another monerod instance to run commands and query node status.
* | Merge pull request #8892luigi11112023-07-061-157/+59
|\ \ | | | | | | | | | aa139f0 wallet_rpc_server: dedup transfer RPC responses [RELEASE] (jeffro256)
| * | wallet_rpc_server: dedup transfer RPC responses [RELEASE]jeffro2562023-06-021-157/+59
| |/
* | Merge pull request #8878luigi11112023-06-271-20/+15
|\ \ | | | | | | | | | 8dc4abd common: do not use DNS to determine if address is local (tobtoht)
| * | common: do not use DNS to determine if address is localtobtoht2023-05-251-20/+15
| |/ | | | | | | Co-authored-by: j-berman <justinberman@protonmail.com>
* | Merge pull request #8851luigi11112023-06-271-1/+1
|\ \ | | | | | | | | | 1fad8cc blockchain: ensure base fee cannot reach 0 (Crypto City)
| * | blockchain: ensure base fee cannot reach 0Crypto City2023-05-111-1/+1
| | | | | | | | | | | | reported by sech1
* | | Merge pull request #8845luigi11112023-06-271-1/+1
|\ \ \ | | | | | | | | | | | | cfc6227 cryptonote_basic: fix amount overflow detection on 32-bit systems [RELEASE] (jeffro256)
| * | | cryptonote_basic: fix amount overflow detection on 32-bit systems [RELEASE]jeffro2562023-06-021-1/+1
| | |/ | |/|
* | | Merge pull request #8831luigi11112023-06-271-1/+8
|\ \ \ | | | | | | | | | | | | 1d1d5fb Fixed RandomX initialization when mining from scratch (SChernykh)
| * | | Fixed RandomX initialization when mining from scratchSChernykh2023-04-271-1/+8
| | |/ | |/|
* | | Merge pull request #8566luigi11112023-06-278-60/+406
|\ \ \ | |_|/ |/| | | | | 65e13db wallet2: fix rescanning tx via scan_tx (j-berman)
| * | wallet2: fix rescanning tx via scan_txj-berman2023-03-138-60/+406
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
* | | fix missing <cstdint> includestobtoht2023-05-082-0/+2
| |/ |/|
* | Merge pull request #8766luigi11112023-04-251-0/+13
|\ \ | | | | | | | | | ad80f1b Handle case where a command line flag is not allowed in the config file (almalh)
| * | Handle case where a command line flag is not allowed in the config filealmalh2023-03-061-0/+13
| |/
* | Merge pull request #8805v0.18.2.2luigi11112023-04-024-2/+3
|\ \ | | | | | | | | | 4f1262b build: prepare v0.18.2.2 (selsta)
| * | build: prepare v0.18.2.2selsta2023-03-274-2/+3
| | |
* | | Merge pull request #8813luigi11112023-04-024-3/+10
|\ \ \ | | | | | | | | | | | | 059b975 cryptonote core/protocol: don't drop peers for soft offenses (jeffro256)
| * | | cryptonote core/protocol: don't drop peers for soft offensesjeffro2562023-03-294-3/+10
| |/ / | | | | | | | | | | | | | | | Also: txs with tx_extra which is too large will not get published to ZMQ Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
* / / Fixed deadlock and crash when syncing with full dataset on WindowsSChernykh2023-03-292-5/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | It's not allowed to use WaitForSingleObject with _beginthread, because the thread closes its own handle before exiting. So the wait function will either wait on an invalid handle, or on a different handle used by something else. Or, if it starts waiting before the thread exits, the behavior is undefined according to MS: "If this handle is closed while the wait is still pending, the function's behavior is undefined." In my test sync I observed threads getting stuck infinitely on WaitForSingleObject, and then rx_set_main_seedhash spamming new threads when RandomX seed changes again. Eventually the system ran out of resources, and monerod aborted with "Couldn't start RandomX seed thread" message. This PR fixes it by using `_beginthreadex` instead and explicitly closing the handle when it's safe.
* | wallet2: fix infinite loop in fake out selectionCrypto City2023-03-252-3/+4
| | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #8785luigi11112023-03-244-2/+3
|\ \ | | | | | | | | | cdeb286 build: prepare v0.18.2.1 (selsta)