aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Establish Monzero Phase 0 and inactive assets baselinemonzero-phase0-assets-prototype-20260815Monzero Build System5 hours1-3/+3
|
* wallet2: avoid linear scans in pool state updatesselsta2026-06-281-70/+47
|
* Merge pull request #10776tobtoht2026-06-211-5/+8
|\ | | | | | | | | | | ef7a86c wallet2: guard optimized coinbase refresh against empty vout (selsta) ACKs: tobtoht, SChernykh
| * wallet2: guard optimized coinbase refresh against empty voutselsta2026-06-151-5/+8
| |
* | Merge pull request #10773tobtoht2026-06-211-0/+2
|\ \ | | | | | | | | | | | | | | | b99d15f wallet2: reject non-monotonic rct output distributions (selsta) ACKs: jeffro256, vtnerd
| * | wallet2: reject non-monotonic rct output distributionsselsta2026-06-151-0/+2
| |/
* / wallet2: store multisig nonce erasure before returning signed txsetselsta2026-06-091-25/+46
|/
* wallet2: fix double unlock of a lockSChernykh2026-06-031-1/+0
|
* wallet2: clear m_additional_tx_keys during bg syncselsta2026-05-211-0/+1
|
* Merge pull request #10580tobtoht2026-05-131-7/+16
|\ | | | | | | afb9a1f use latest hard fork block for get_approximate_blockchain_height & update approximate_rolled_back_blocks (SNeedlewoods)
| * use latest hard fork block for get_approximate_blockchain_height & update ↵SNeedlewoods2026-05-111-7/+16
| | | | | | | | approximate_rolled_back_blocks
* | wallet2: reject duplicate outputs in reserve proofsselsta2026-04-291-0/+9
| |
* | Merge pull request #10481tobtoht2026-04-291-4/+10
|\ \ | | | | | | | | | f855ffe wallet2: throw if reserve proof can't be parsed (tobtoht)
| * | wallet2: throw if reserve proof can't be parsedtobtoht2026-04-281-4/+10
| | |
* | | Merge pull request #10471tobtoht2026-04-291-18/+4
|\ \ \ | | | | | | | | | | | | 1154314 wallet2: use decodeRct for reserve proof amount validation (selsta)
| * | | wallet2: use decodeRct for reserve proof amount validationselsta2026-04-271-18/+4
| |/ / | | | | | | | | | also update check_tx_key_helper for consistency
* / / wallet2: ensure daemon returns correct tx for spend proofselsta2026-04-281-0/+2
|/ /
* | Merge pull request #10455tobtoht2026-04-251-52/+13
|\ \ | | | | | | | | | 54abe12 wallet2: remove deprecated txs_as_hex (selsta)
| * | wallet2: remove deprecated txs_as_hexselsta2026-04-241-52/+13
| | | | | | | | | | | | also add missing underflow check
* | | Merge pull request #10439tobtoht2026-04-221-1/+1
|\ \ \ | | | | | | | | | | | | 874c771 cryptonote_basic: pruned hash return bool (j-berman)
| * | | cryptonote_basic: pruned hash return boolj-berman2026-04-211-1/+1
| | | |
* | | | Merge pull request #10427tobtoht2026-04-221-0/+2
|\ \ \ \ | |/ / / |/| | | | | | | 2094d38 wallet2: add parse multisig tx sanity checks (selsta)
| * | | wallet2: add parse multisig tx sanity checksselsta2026-04-201-0/+2
| |/ /
* / / Add Socks v5 support to daemon and walletLee *!* Clagett2026-04-161-1/+1
|/ / | | | | | | (cherry picked from commit 23e29a5074f01cbb781f7e76b0c17ad2b6797af0)
* | Merge pull request #10405tobtoht2026-04-081-1/+1
|\ \ | | | | | | | | | e7b121a wallet2: fix background wallet detection in verify_password() (selsta)
| * | wallet2: fix background wallet detection in verify_password()selsta2026-04-061-1/+1
| |/
* / multisig: add flag to skip refresh after multisig importwoodser2026-04-081-3/+3
|/
* wallet2: fix edge case where tx's ki's remain marked unspentj-berman2025-12-121-17/+34
| | | | | | | | | | | | | If a tx is marked as failed (because it never shows up in the daemon's pool), its key images get reset back to unspent so they can be used in future txs. If the tx re-enters the daemon's pool (e.g. it's removed from the pool and then relayed back), then the wallet incorrectly maintains that the tx's key images are unspent. This change ensures the wallet re-marks the tx's key images as spent if the tx re-appears in the node's pool.
* Merge pull request #10153tobtoht2025-10-271-17/+43
|\ | | | | | | 9239d36 wallet: identify spends in pool when scanning (j-berman)
| * wallet: identify spends in pool when scanningj-berman2025-10-071-17/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make sure to mark identified spends in the pool as spends. The wallet might not know these have been spent if it wasn't the wallet that relayed the tx to the daemon, or the wallet was cleared via rescan_bc. - Make sure to add spends to m_unconfirmed_txs if not present. - Make sure to process the entire pool again if refreshing for the first time. The wallet fetches pool and blocks at the same time. The wallet scans blocks first, then pool. If the wallet identifies received outputs in the chain, then it may have spent those received outputs in the pool. So we make sure to re-process the entire pool again after scanning the chain for the first time. - Multisig wallets that know about spent key images can now detect spend txs in the pool. Update tests for that.
* | wallet2: warn instead of throw when RingDB doesn't include spendj-berman2025-10-061-2/+5
|/ | | | | | | | | | A reorg can end up causing an output's position in the chain to move. Since the wallet doesn't update the RingDB on reorg, it may refer to the output's stale position in the chain. This seems a reasonable solution rather than introducing complex logic to update the stale ring member's value on rerog, since RingDB can be deprecated with FCMP++.
* wallet: deprecate wallet2::find_and_save_rings()jeffro2562025-07-291-69/+4
| | | | | | | Rings for outgoing transactions are stored within the scanning code since the last hardfork, so this code is largely unneccessary now. Co-authored-by: j-berman <justinberman@protonmail.com>
* wallet: refactor subaddress expansion & add to transfer testjeffro2562025-07-071-53/+49
|
* wallet: improve lookahead logic & make rpc persistentJustin Berman2025-07-071-18/+33
|
* wallet: ensure subaddress keys table is at least size of requested lookaheadbenevanoff2025-07-031-0/+19
|
* fix: multisig stale data after failed refreshSNeedlewoods2025-04-241-36/+27
|
* Correct Max / Min Block Waiting Periodstzadiko2025-03-251-11/+10
|
* Merge pull request #8617tobtoht2025-02-131-82/+946
|\ | | | | | | e44e8b164 wallet: background sync with just the view key (j-berman)
| * wallet: background sync with just the view keyj-berman2024-05-241-83/+947
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - When background syncing, the wallet wipes the spend key from memory and processes all new transactions. The wallet saves all receives, spends, and "plausible" spends of receives the wallet does not know key images for. - When background sync disabled, the wallet processes all background synced txs and then clears the background sync cache. - Adding "plausible" spends to the background sync cache ensures that the wallet does not need to query the daemon to see if any received outputs were spent while background sync was enabled. This would harm privacy especially for users of 3rd party daemons. - To enable the feature in the CLI wallet, the user can set background-sync to reuse-wallet-password or custom-background-password and the wallet automatically syncs in the background when the wallet locks, then processes all background synced txs when the wallet is unlocked. - The custom-background-password option enables the user to open a distinct background wallet that only has a view key saved and can be opened/closed/synced separately from the main wallet. When the main wallet opens, it processes the background wallet's cache. - To enable the feature in the RPC wallet, there is a new `/setup_background_sync` endpoint. - HW, multsig and view-only wallets cannot background sync.
* | Merge pull request #9602luigi11112025-01-061-0/+2
|\ \ | | | | | | | | | 34c7d31 wallet: shortchain history should include base block (0xFFFC0000)
| * | wallet: shortchain history should include base block0xFFFC00002024-12-041-0/+2
| | |
* | | Merge pull request #9590luigi11112024-12-231-2/+11
|\ \ \ | | | | | | | | | | | | cd1c060 Daemon-specific proxy for the wallet-rpc. 1. Daemon-specific proxy is exclusive with global proxy (--proxy). 2. If you set global proxy (--proxy) you cannot set daemon-specific proxy. 3. If you don't set global proxy, you can set proxy (or not set) proxy for each daemon connection with the proxy field in jsonrpc to the wallet-rpc. (0xFFFC0000)
| * | | Daemon-specific proxy for the wallet-rpc.0xFFFC00002024-11-231-2/+11
| |/ / | | | | | | | | | | | | | | | | | | 1. Daemon-specific proxy is exclusive with global proxy (--proxy). 2. If you set global proxy (--proxy) you cannot set daemon-specific proxy. 3. If you don't set global proxy, you can set proxy (or not set) proxy for each daemon connection with the proxy field in jsonrpc to the wallet-rpc.
* | | Merge pull request #9506luigi11112024-12-231-1/+1
|\ \ \ | |/ / |/| | | | | a928cbc wallet2: fix error throw if unable to load cache (tobtoht)
| * | wallet2: fix error throw if unable to load cachetobtoht2024-10-071-1/+1
| | |
* | | build: fix build with Boost 1.85 and remove instances of viewkey logging ↵jeffro2562024-09-101-9/+9
|/ / | | | | | | | | | | | | | | | | | | | | [RELEASE] 1. Use std::is_standard_layout and std::is_trivially_copyable instead of std::is_pod for KV byte-wise serialization, which fixes compile issue for Boost UUIDs 2. Removed reimplementation of std::hash for boost::uuids::uuid 3. Removed << operator overload for crypto::secret_key 4. Removed instances in code where private view key was dumped to the log in plaintext Release version of #9450, containing C++14 modified assertions
* | Make wallet2::estimate_fee staticLee Clagett2024-08-071-1/+1
| |
* | wallet: fetch pool txs in pruned form [RELEASE]jeffro2562024-06-211-0/+1
|/
* Merge pull request #9311luigi11112024-05-201-31/+28
|\ | | | | | | dd47d03 Enforce Tx unlock_time is Zero by Relay Rule [RELEASE] (jeffro256)
| * Enforce Tx unlock_time is Zero by Relay Rule [RELEASE]jeffro2562024-04-291-31/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to https://github.com/monero-project/research-lab/issues/78 Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions. UIs changed: * Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli` APIs changed: * Removed `unlock_time` parameters from `wallet2` transfer methods * Wallet RPC transfer endpoints send error codes when requested unlock time is not 0 * Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions @tobtoht: undo rebase changes tx.dsts -> tx_dsts