Commit Graph

1552 Commits

Author SHA1 Message Date
tobtoht 887f2486fe Merge pull request #8758
3af06e5 wallet: remove output blackballing (tobtoht)
2026-06-11 20:20:38 +00:00
jeffro256 589dd0a973 ringct: merge decodeRct and decodeRctSimple 2026-06-05 12:37:00 -05:00
tobtoht 22f7743b1f Merge pull request #10647
10b0118 add safety for future fork heights (SNeedlewoods)
2026-06-03 19:02:00 +00:00
tobtoht ee7bff978a Merge pull request #10632
b3cd06d wallet2: clear m_additional_tx_keys during bg sync (selsta)
2026-05-28 21:29:22 +00:00
SNeedlewoods 10b0118c6a add safety for future fork heights 2026-05-27 20:23:02 +02:00
tobtoht f4bbdee14f Merge pull request #10084
b4c5449 wallet: add `wallet2_basic` library types (jeffro256)
2026-05-25 20:48:17 +00:00
selsta b3cd06df90 wallet2: clear m_additional_tx_keys during bg sync 2026-05-21 00:44:30 +02:00
koe d737072188 wallet2: refactor multisig ignore sets logic into separate functions 2026-05-19 19:36:01 -05:00
tobtoht 521a9b4c82 Merge pull request #10577
9a18697 wallet: roll back unlocker count on decrypt failure (fuyua9)
2026-05-19 19:55:47 +00:00
Thomas 2c327aa325 fix spelling in comments and docs 2026-05-13 21:20:05 +02:00
tobtoht 3af06e53d3 wallet: remove output blackballing 2026-05-11 19:50:01 +02:00
tobtoht 4766d3eb8c Merge pull request #10165
50c3c50 use latest hard fork block for get_approximate_blockchain_height & update approximate_rolled_back_blocks (SNeedlewoods)
2026-05-10 17:40:26 +00:00
fuyua9 9a18697518 wallet: roll back unlocker count on decrypt failure 2026-05-10 13:23:04 +00:00
SNeedlewoods 50c3c50ba3 use latest hard fork block for get_approximate_blockchain_height & update approximate_rolled_back_blocks 2026-05-10 11:06:44 +02:00
jeffro256 b4c54499cd wallet: add wallet2_basic library types
The `wallet2_basic` library is a minimalistic library for loading / storing historic `wallet2` files. It has several design goals:
* Enable future migration away from monolithic `wallet2` codebase without losing funds
* Simplify FCMP++/Carrot integration
* Speed-up compile-time for current codebase, but especially the FCMP++/Carrot integration, which is split over several translation units

Co-authored-by: j-berman <justinberman@protonmail.com>
Co-authored-by: selsta <selsta@sent.at>
2026-05-08 12:18:33 -05:00
tobtoht 49ea802139 Merge pull request #9899
05ab316 epee: better scope leaver (jeffro256)
2026-05-06 19:34:39 +00:00
jeffro256 05ab316853 epee: better scope leaver
1. Doesn't allocate a `boost::shared_ptr`
2. Doesn't use a vtable
3. Doesn't use `std::function` wrapper
4. Doesn't necessarily copy functional object
5. Doesn't need a factory function for simple declaration (yay CTAD)
6. Isolated to its own header
7. Name doesn't suck as much
2026-05-06 11:59:00 -05:00
tobtoht 2d48a39658 Merge pull request #10483
0617f43 fix: warning: ignored-attributes (tobtoht)
2cf3e27 fix: warning: unused-result (tobtoht)
d8f27be fix: warning: unused-function (tobtoht)
ffbb0cc fix: warning: unused-const-variable (tobtoht)
57975ab fix: warning: deprecated-declarations (tobtoht)
3294b8e fix: warning: unused-variable (tobtoht)
20f6f5f fix: warning: unused-lambda-capture (tobtoht)
37e76ec fix: warning: inconsistent-missing-override (tobtoht)
2026-05-04 16:36:28 +00:00
tobtoht fa286745d0 Merge pull request #10472
18b634a wallet2: reject duplicate outputs in reserve proofs (selsta)
2026-04-29 13:32:50 +00:00
tobtoht ca5b4e74d9 Merge pull request #10470
5835a23 wallet2: use decodeRct for reserve proof amount validation (selsta)
2026-04-29 12:30:05 +00:00
selsta 18b634a591 wallet2: reject duplicate outputs in reserve proofs 2026-04-29 14:25:46 +02:00
tobtoht 3294b8e891 fix: warning: unused-variable 2026-04-29 10:21:39 +02:00
tobtoht c7640ed37f Merge pull request #10475
172b4e1 fix: warning: variable set but not used (tobtoht)
2026-04-29 08:07:45 +00:00
tobtoht 172b4e1883 fix: warning: variable set but not used 2026-04-28 16:24:41 +02:00
selsta b7fbe95eeb wallet2: ensure daemon returns correct tx for spend proof 2026-04-28 15:27:11 +02:00
selsta 5835a2378e wallet2: use decodeRct for reserve proof amount validation
also update check_tx_key_helper for consistency
2026-04-27 22:13:36 +02:00
tobtoht e5ae017f7a Merge pull request #10454
fa740d7 wallet2: remove deprecated txs_as_hex (selsta)
2026-04-25 17:05:40 +00:00
selsta fa740d7af8 wallet2: remove deprecated txs_as_hex
also add missing underflow check
2026-04-24 23:36:06 +02:00
tobtoht 519b26375c Merge pull request #10438
94089a8 cryptonote_basic: pruned hash return bool (j-berman)
2026-04-22 18:05:34 +00:00
j-berman 94089a8788 cryptonote_basic: pruned hash return bool 2026-04-21 12:04:31 -07:00
selsta bb449fd745 wallet2: add parse multisig tx sanity checks 2026-04-20 00:24:12 +02:00
tobtoht d51665aea6 Merge pull request #10404
b19cd82 wallet2: fix background wallet detection in verify_password() (selsta)
2026-04-08 20:36:42 +00:00
selsta b19cd82177 wallet2: fix background wallet detection in verify_password() 2026-04-06 19:33:03 +02:00
woodser 08c9aec897 multisig: add flag to skip refresh after multisig import 2026-04-06 11:40:22 -04:00
tobtoht 1e3aaa4647 Merge pull request #10189
1bcca58 simplewallet: use passed decrypted payment ID from wallet2 for notifications (jeffro256)
2026-03-08 10:28:23 +00:00
Lee *!* Clagett 23e29a5074 Add Socks v5 support to daemon and wallet 2026-03-06 17:08:49 -05:00
j-berman ab9bc6499c wallet2: fix edge case where tx's ki's remain marked unspent
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.
2025-12-12 09:15:48 -08:00
jeffro256 1bcca58d82 simplewallet: use passed decrypted payment ID from wallet2 for notifications
Adds payment ID paramater to `on_money_received()` wallet callback.
2025-11-06 00:53:06 -06:00
tobtoht b4a168b5f8 Merge pull request #10083
daded36 wallet: identify spends in pool when scanning (j-berman)
2025-10-27 18:50:40 +00:00
tobtoht 0237f04617 Merge pull request #10172
5905b20 wallet: sanity check ring indices only against spendable (jeffro256)
2025-10-27 18:47:03 +00:00
jeffro256 5905b202f0 wallet: sanity check ring indices only against spendable 2025-10-15 17:00:21 -05:00
j-berman 1dbb4a7928 wallet2: warn instead of throw when RingDB doesn't include spend
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++.
2025-09-17 15:21:46 -07:00
j-berman daded36823 wallet: identify spends in pool when scanning
- 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.
2025-09-15 14:14:50 -07:00
tobtoht 8259df0d1d Merge pull request #9860
dbc8402 wallet: fix wallet_keys_unlocker (jeffro256)
2025-09-08 18:08:22 +00:00
jeffro256 dbc8402da6 wallet: fix wallet_keys_unlocker
Fix four issues with wallet_keys_unlocker:
1. It won't decrypt if there are unlockers open simulataneously on multiple `wallet2` instances
2. It won't decrypt if the first unlocker was disabled (i.e. `locked=false`), even with a second non-disabled unlocker
3. If a destructor of an earlier unlocker is triggered before the destructor of a later unlocker, it will re-encrypt too early, while the second unlocker is still in scope
4. Calling the 3-parameter constructor with `locked=true` after an unlocker already exists will "double-encrypt"  the spend key after its destructor since the local variable is `locked=false` and the field member is `locked=true`

Also, replace `wallet2::decrypt_account_for_multisig` with `wallet_keys_unlocker`.
2025-09-04 15:43:38 -05:00
jeffro256 dc350f35a5 wallet: deprecate wallet2::find_and_save_rings()
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>
2025-07-29 12:28:39 -05:00
tobtoht 08438b60c1 Merge pull request #9838
2f2a8c4 wallet: Improve Fee Priority Code for Clarity (tzadiko)
2025-07-10 12:45:39 +00:00
tobtoht 6f2efeca1e Merge pull request #9940
e9c89dc wallet: kill support for deprecated ephemeral Boost messages (jeffro256)
2025-07-10 12:29:13 +00:00
tobtoht 8b95b38fa2 Merge pull request #9953
6d06de7 wallet: refactor subaddress expansion & add to transfer test (jeffro256)
6e26e44 wallet: improve lookahead logic & make rpc persistent (Justin Berman)
6f36037 wallet: create set_subaddress_lookahead wallet rpc endpoint (benevanoff)
b987676 wallet: ensure subaddress keys table is at least size of requested lookahead (benevanoff)
2025-07-10 12:20:49 +00:00
tzadiko 2f2a8c46bb wallet: Improve Fee Priority Code for Clarity 2025-07-09 20:08:42 -05:00