Commit graph

455 commits

Author SHA1 Message Date
benevanoff
678f5dab31 wallet: create set_subaddress_lookahead wallet rpc endpoint 2025-07-07 22:21:39 +00:00
woodser
d14c3ca3d2 add wallet rpc call to get default fee priority 2025-02-15 15:21:27 -05:00
Lee *!* Clagett
13ff355cf6 Set response limits on http server connections 2025-02-14 00:21:05 -05:00
tobtoht
5b045d70e0
Merge pull request #8617
e44e8b164 wallet: background sync with just the view key (j-berman)
2025-02-13 17:43:24 +00:00
luigi1111
773cb9d831
Merge pull request #9614
20a1c00 wallet: report exact reason for open_wallet failure. (0xFFFC0000)
2024-12-23 11:04:04 -05:00
0xFFFC0000
20a1c00b6c wallet: report exact reason for open_wallet failure. 2024-12-13 17:35:10 +00:00
0xFFFC0000
cd1c06038c 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-11-23 14:11:25 -05:00
jeffro256
65568d3a88
build: fix build with Boost 1.85 and remove instances of viewkey logging [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
2024-09-10 16:07:36 -05:00
j-berman
e44e8b1640 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 20:42:59 -07:00
luigi1111
1ec7eae036
Merge pull request #9311
dd47d03 Enforce Tx unlock_time is Zero by Relay Rule [RELEASE] (jeffro256)
2024-05-20 23:42:54 -05:00
jeffro256
dd47d03cf2
Enforce Tx unlock_time is Zero by Relay Rule [RELEASE]
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
2024-04-29 00:08:53 -05:00
0xFFFC0000
100a7d06ee
Add drop_and_recreate in privatefile class.
When creating a private file we need to delete the file if exist.
2024-04-23 11:52:45 +03:30
jeffro256
51d7a6921c
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:42 -06:00
selsta
03d51b7cc4
wallet2: fix refresh function parameters
max_blocks is last on master branch
2023-10-01 20:56:31 +02:00
moneromooo-monero
356e6877dc
wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing 2023-08-17 15:35:00 +00:00
moneromooo-monero
633e1b7359
wallet_rpc_server: add --no-initial-sync flag for quicker network binding 2023-08-17 15:34:57 +00:00
luigi1111
9d5c5b5634
Merge pull request #8942
78348bc wallet-rpc: restore from multisig seed (jeffro256)
2023-08-17 10:24:16 -05:00
jeffro256
78348bcddd
wallet-rpc: restore from multisig seed 2023-08-10 10:13:07 -05:00
j-berman
f137a35984 Enforce restricted # pool txs served via RPC + optimize chunked reqs [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.
2023-07-09 08:38:18 +02:00
j-berman
65e13dbef1 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-03-13 12:57:43 -07:00
koe
1cd21bfba5 add an option to force-update multisig key exchange under some circumstances 2022-09-21 12:51:19 -05:00
moneromooo-monero
0cbf5571d3
allow exporting outputs in chunks
this will make it easier huge wallets to do so without hitting
random limits (eg, max string size in node).
2022-09-07 06:22:07 +00:00
moneromooo-monero
2979474221
disable multisig by default
There are vulnerabilities in multisig protocol if the parties do not
trust each other, and while there is a patch for it, it has not been
throroughly reviewed yet, so it is felt safer to disable multisig by
default for now.
If all parties in a multisig setup trust each other, then it is safe
to enable multisig.
2022-05-17 19:52:03 +00:00
luigi1111
c1625a8928
Merge pull request #8220
0d6ecb1 multisig: add post-kex verification round to check that all participants have completed the multisig address (koe)
2022-05-10 16:41:02 -05:00
koe
0d6ecb1136 multisig: add post-kex verification round to check that all participants have completed the multisig address 2022-04-29 14:04:59 -05:00
luigi1111
f096ac1349
Merge pull request #8215
d1f1947 wallet_rpc_server: support regex for get_accounts tag (reemuru)
2022-04-06 00:16:20 -04:00
luigi1111
9a124f6811
Merge pull request #8213
7dcfccb wallet_rpc_server: fix make_integrated_address with no payment id (moneromooo-monero)
2022-04-06 00:15:40 -04:00
reemuru
d1f1947995
wallet_rpc_server: support regex for get_accounts tag
This commit adds a 'regexp' boolean field to the get_accounts
request. The flag is set to false by default and maintains backwards
compatibility. When set to true the user can search tags by regular
expression filters. An additional error message was added for failed
regular expression searches. Bump minor version to 25.
2022-03-13 11:30:48 -04:00
moneromooo-monero
7dcfccbaaf
wallet_rpc_server: fix make_integrated_address with no payment id 2022-03-11 17:23:19 +00:00
mj-xmr
da9aa1f7f8
Copyright: Update to 2022 2022-03-04 06:59:20 +01:00
luigi1111
27f1d43547
Merge pull request #8145
fb5b2b3 support authentication in monero-wallet-rpc set_daemon (woodser)
2022-03-02 18:53:34 -05:00
koe
e08abaa43f multisig key exchange update and refactor 2022-02-22 16:37:42 -06:00
woodser
fb5b2b352a support authentication in monero-wallet-rpc set_daemon 2022-01-17 17:03:56 -05:00
luigi1111
9273530bff
Merge pull request #7898
f353c29 wallet_rpc_server: fix help text remaining bold (selsta)
2021-09-09 15:20:43 -04:00
luigi1111
dfa6b58d4d
Merge pull request #7823
24d3d65 monero-wallet-rpc: Prevent --password-file from being used with --wallet-dir (Kermit Alexander II)
2021-09-09 15:14:17 -04:00
selsta
f353c295f9
wallet_rpc_server: fix help text remaining bold 2021-08-27 02:59:36 +02:00
Kermit Alexander II
24d3d65d42 monero-wallet-rpc: Prevent --password-file from being used with --wallet-dir 2021-08-20 08:54:41 -05:00
Alex Opie
5fa1c90102
Fix describe_transfer for multiple txes in a txset
This ensures each list of recipients is only the recipients
for one transaction. It also adds a new field "summary"
that describes the txset as a whole.

Fixes #7344
2021-08-02 20:39:49 +02:00
woodser
e7615772fa provide key images of spent outputs in wallet rpc 2021-06-15 15:54:39 -04:00
luigi1111
7499837a6f
Merge pull request #7661
08e4497 Improve cryptonote (block and tx) binary read performance (Lee Clagett)
2021-06-10 12:00:54 -05:00
woodser
b2e1558bde support freeze, thaw, and frozen in wallet rpc 2021-05-18 20:35:48 -04:00
luigi1111
9bba3f4767
Merge pull request #7651
c8ff1d4 monero-wallet-cli: improve error message when tx amount is zero (Elliot Wirrick)
2021-04-22 01:35:20 -04:00
Elliot Wirrick
c8ff1d4d23 monero-wallet-cli: improve error message when tx amount is zero 2021-04-07 10:10:16 -04:00
luigi1111
3c69596bc9
Merge pull request #7321
f9b5b52 fix serialization being different on mac (moneromooo-monero)
2021-04-06 12:20:15 -05:00
luigi1111
e1d987aa66
Merge pull request #7430
064eeb2 wallet_rpc_server: set seed language in generate_from_keys (moneromooo-monero)
2021-03-29 22:37:19 -04:00
luigi1111
5b8d714a4b
Merge pull request #7422
d46d90c return output key for incoming transfers (benevanoff)
2021-03-20 01:57:44 -04:00
moneromooo-monero
064eeb2861
wallet_rpc_server: set seed language in generate_from_keys
Also sanity check language name
2021-03-06 10:26:15 +00:00
moneromooo-monero
f9b5b521e8
fix serialization being different on mac
On Mac, size_t is a distinct type from uint64_t, and some
types (in wallet cache as well as cold/hot wallet transfer
data) use pairs/containers with size_t as fields. Mac would
save those as full size, while other platforms would save
them as varints. Might apply to other platforms where the
types are distinct.

There's a nasty hack for backward compatibility, which can
go after a couple forks.
2021-03-05 23:42:33 +00:00
benevanoff
d46d90c436 return output key for incoming transfers 2021-03-04 11:09:15 -06:00
tobtoht
6477b47ac7 wallet_rpc: add scan_tx 2021-03-01 23:02:43 +01:00