Commit Graph

499 Commits

Author SHA1 Message Date
selsta
9731bbfbf5 wallet_rpc_server: restrict relay_tx 2026-04-21 19:42:36 +02:00
SNeedlewoods
604bb05d81 fix: return early in sensitive methods for --restricted-rpc 2026-04-08 23:43:28 +02:00
tobtoht
be4a721f50 Merge pull request #10403
08c9aec multisig: add flag to skip refresh after multisig import (woodser)
2026-04-08 20:35:28 +00:00
tobtoht
250017d2c2 Merge pull request #10271
bc5cdf4 wallet: unrestrict `get_transfers` and `get_transfer_by_txid` (jeffro256)
2026-04-08 20:31:58 +00:00
woodser
08c9aec897 multisig: add flag to skip refresh after multisig import 2026-04-06 11:40:22 -04:00
tobtoht
12529e415f Merge pull request #10281
7a2ba64 wallet: add source info to describe_transfer RPC (jeffro256)
2026-03-28 19:42:24 +00:00
Lee *!* Clagett
44869250bd Transition asio::deadline_timer to asio::steady_timer 2026-02-17 11:28:57 -05:00
jeffro256
7a2ba648f4 wallet: add source info to describe_transfer RPC 2026-01-15 12:44:54 -06:00
root
e6581519dd wallet_rpc_server: add HTTP body size limit
Set m_max_content_length to MAX_RPC_CONTENT_LENGTH (1MB) to match
the protection already implemented in core_rpc_server. This prevents
memory exhaustion attacks via unlimited HTTP request sizes.
2026-01-15 17:14:26 +01:00
jeffro256
bc5cdf47db wallet: unrestrict get_transfers and get_transfer_by_txid 2026-01-05 14:17:10 -06:00
tobtoht
563a5b1a7d Merge pull request #10007
5e54c72 wallet: RPC method /incoming_transfers without daemon connection (jeffro256)
2025-08-21 16:20:37 +00:00
jeffro256
5e54c72629 wallet: RPC method /incoming_transfers without daemon connection
Allows calling /incoming_transfers for cold wallets especially
2025-07-24 01:51:06 -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
Justin Berman
6e26e4477e wallet: improve lookahead logic & make rpc persistent 2025-07-07 22:16:09 +00:00
benevanoff
6f36037116 wallet: create set_subaddress_lookahead wallet rpc endpoint 2025-07-07 22:15:04 +00:00
jeffro256
e9c89dc6ab wallet: kill support for deprecated ephemeral Boost messages
The commit kills support for deprecated ephemeral Boost messages: signed/unsigned transaction sets, pending transactions, reserve proofs, MMS messages, etc.
It does NOT kill support for loading very old wallets in Boost format, that should be supported indefinitely. These messages were deprecated 5 years ago. Since
then, we have had a hard fork to enable a new non-compatible transaction type (w/ view tags), and disable the old transaction type. This renders basically all
of the aforementioned messages before that HF useless, with the possible exception of reserve proofs.

This commit also cleans up dead inclusions of boost serialization headers.

This commit is part of upstreaming Carrot/FCMP++. Killing support for Boost messages now means less boilerplate Boost serialization review for Carrot/FCMP++.
2025-05-30 14:24:56 -05:00
tzadiko
d0dda0b6ee wallet:set refresh interval to default when hitting tip of chain 2025-05-27 19:19:42 -05:00
tobtoht
b6df4bb142 Merge pull request #9875
fd08594ca wallet: fix monero-wallet-rpc ignoring calls during sync (tzadiko)
2025-04-25 05:09:56 +00:00
StrawberryChocolateFudge
a57c099d07 fix: added key correspondence check
refactor: key correspondence check error handling

fixed indentation

removed EOL whitespace
2025-04-02 04:30:32 +02:00
tzadiko
fd08594caa wallet: fix monero-wallet-rpc ignoring calls during sync 2025-03-28 20:13:02 -05:00
tobtoht
24c90ae9a2 Merge pull request #9787
05184554a add wallet rpc call to get default fee priority (woodser)
2025-02-16 05:22:05 +00:00
woodser
05184554a6 add wallet rpc call to get default fee priority 2025-02-15 15:15:23 -05:00
Lee *!* Clagett
ec74ff4a3d Set response limits on http server connections 2025-02-13 23:55:17 -05:00
0xFFFC0000
33f6fa5f2e wallet: report exact reason for open_wallet failure. 2024-11-19 19:49:02 +00:00
jeffro256
ed955bf751 build: fix build with Boost 1.85 and remove instances of viewkey logging
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. Use `std::has_unique_object_representations` instead of `alignof(T) == 1` for epee byte spans and epee hex functions
3. Removed reimplementation of `std::hash` for `boost::uuids::uuid
4. Removed `<<` operator overload for `crypto::secret_key`
5. Removed instances in code where private view key was dumped to the log in plaintext
2024-09-06 11:46:22 -05:00
luigi1111
040bccc22f Merge pull request #9338
4a376d6 copyright: fix vector.h typo (hinto.janaiyo)
d61e8e9 workflows: delete copyright.yml (plowsof)
341771a copyright: bump to 2024 (copyCat)
2024-07-16 18:42:49 -04:00
luigi1111
d7eece3cae Merge pull request #8619
e71c8bf wallet: background sync with just the view key (j-berman)
2024-07-16 18:29:47 -04:00
j-berman
e71c8bf190 wallet: background sync with just the view key
- 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.
2024-05-24 23:11:58 -07:00
koe
ddf3af1f0c add key exchange round booster to multisig_account 2024-05-21 15:27:08 -05:00
copyCat
341771ac3e copyright: bump to 2024 2024-05-21 16:29:33 +00:00
luigi1111
b208eed32a Merge pull request #9270
267e31f Add drop_and_recreate in privatefile class. When creating a private file we need to delete the file if exist. (0xFFFC0000)
2024-05-20 23:35:48 -05:00
luigi1111
cdd7fc09b4 Merge pull request #9151
ff49444 @tobtoht: undo rebase changes tx.dsts -> tx_dsts (jeffro256)
38f354e Enforce Tx unlock_time is Zero by Relay Rule (jeffro256)
2024-05-20 23:11:09 -05:00
luigi1111
3a47cdad13 Merge pull request #7852
8d94d08 replace 'multisig()' with 'get_multisig_status()' using multisig_account_status and including '.kex_is_done' member (koe)
2024-05-20 22:35:57 -05:00
0xFFFC0000
267e31f5b7 Add drop_and_recreate in privatefile class.
When creating a private file we need to delete the file if exist.
2024-04-22 14:32:12 +00:00
jeffro256
38f354e89f Enforce Tx unlock_time is Zero by Relay Rule
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
2024-02-24 14:27:17 -06:00
luigi1111
72d87cd10a Merge pull request #9160
c50ade5 Daemon-specific proxy for the wallet-rpc. (0xFFFC0000)
2024-02-24 10:11:51 -05:00
jeffro256
b13c5f6669 wallet: feature: transfer amount with fee included
To transfer ~5 XMR to an address such that your balance drops by exactly 5 XMR, provide a `subtractfeefrom` flag to the `transfer` command. For example:

    transfer 76bDHojqFYiFCCYYtzTveJ8oFtmpNp3X1TgV2oKP7rHmZyFK1RvyE4r8vsJzf7SyNohMnbKT9wbcD3XUTgsZLX8LU5JBCfm 5 subtractfeefrom=all

If my walet balance was exactly 30 XMR before this transaction, it will be exactly 25 XMR afterwards and the destination address will receive slightly
less than 5 XMR. You can manually select which destinations fund the transaction fee and which ones do not by providing the destination index.
For example:

    transfer 75sr8AAr... 3 74M7W4eg... 4 7AbWqDZ6... 5 subtractfeefrom=0,2

This will drop your balance by exactly 12 XMR including fees and will spread the fee cost proportionally (3:5 ratio) over destinations with addresses
`75sr8AAr...` and `7AbWqDZ6...`, respectively.

Disclaimer: This feature was paid for by @LocalMonero.
2024-02-20 17:08:06 -06:00
0xFFFC0000
c50ade514f 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.
2024-02-18 18:36:52 +00:00
luigi1111
3b67d5fc5b Merge pull request #8914
45b52de wallet-rpc: restore from multisig seed (jeffro256)
2023-08-17 10:20:20 -05:00
jeffro256
45b52de28e wallet-rpc: restore from multisig seed 2023-07-28 12:17:14 -05:00
luigi1111
570fd364aa Merge pull request #8772
87e2a64 Allow option 'non-interactive' in monerod config file (almalh)
2023-06-27 11:31:27 -05:00
j-berman
e6b86af931 wallet2: fix rescanning tx via scan_tx
- 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.
2023-06-15 02:21:29 -07:00
luigi1111
1c9686cb45 Merge pull request #8724
d2a591d wallet, simplewallet: Drop support for mine-to-use RPC system (Jeffrey Ryan)
2023-04-25 12:36:11 -04:00
Jeffrey Ryan
d2a591d7c6 wallet, simplewallet: Drop support for mine-to-use RPC system
Using post-PR wallet with pre-PR node will generate error message specific to this PR and not generic "command failed" mesages.
2023-04-25 10:18:20 -05:00
luigi1111
4931462d1d Merge pull request #8730
9e09093 wallet_rpc_server: allow creating more than 64 addresses at once (moneromooo-monero)
2023-04-25 11:17:22 -04:00
luigi1111
9bf06ea75d Merge pull request #8698
5b4fea7 Copyright: Update to 2023 (mj-xmr)
2023-04-25 11:12:56 -04:00
almalh
87e2a64327 Allow option 'non-interactive' in monerod config file 2023-04-15 18:28:12 -04:00