Age | Commit message (Collapse) | Author | Files | Lines |
|
4a376d6 copyright: fix vector.h typo (hinto.janaiyo)
d61e8e9 workflows: delete copyright.yml (plowsof)
341771a copyright: bump to 2024 (copyCat)
|
|
e71c8bf wallet: background sync with just the view key (j-berman)
|
|
- 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.
|
|
|
|
|
|
ff49444 @tobtoht: undo rebase changes tx.dsts -> tx_dsts (jeffro256)
38f354e Enforce Tx unlock_time is Zero by Relay Rule (jeffro256)
|
|
8d94d08 replace 'multisig()' with 'get_multisig_status()' using multisig_account_status and including '.kex_is_done' member (koe)
|
|
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
|
|
|
|
- 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.
|
|
|
|
|
|
multisig_account_status and including '.kex_is_done' member
|
|
Co-authored-by: plowsof <plowsof@protonmail.com>
extra files
|
|
1114e7e fix(trezor-tests): fix trezor tests build, fix integrated addr test (Dusan Klinec)
|
|
cac5083 wallet2: fix create view-only wallet from existing wallet (j-berman)
|
|
- fix integrated address test, it was not testing integrated address suport
- fix trezor test build as dependent classes were changed
- add a friend test class for Monero::WalletImpl to support wallet api tests
When using wallet_api in tests, synthetic chain is used. Without being able to set `allow_mismatched_daemon_version` in the underlying wallet, we are not able to use a synthetic chain with the tests
|
|
|
|
|
|
e9ce347 wallet2: fail to establish daemon cxn == 'Disconnected' cxn status (j-berman)
|
|
4b0785f add an option to force-update multisig key exchange under some circumstances (koe)
|
|
|
|
|
|
|
|
this will make it easier huge wallets to do so without hitting
random limits (eg, max string size in node).
|
|
16f8e04 Remove erraneous commas (Luke Parker)
da0715e Improve consistency between on_money_received and on_money_received_unconfirmed (Luke Parker)
|
|
|
|
unconfirmed solely uses a - b, and received now accepts b so it can
provide more detailed logs on what occurred (printing a - b, yet with a
and b).
|
|
|
|
a14fdf8 Remove /include (Jeffrey)
|
|
Implements view tags as proposed by @UkoeHB in MRL issue
https://github.com/monero-project/research-lab/issues/73
At tx construction, the sender adds a 1-byte view tag to each
output. The view tag is derived from the sender-receiver
shared secret. When scanning for outputs, the receiver can
check the view tag for a match, in order to reduce scanning
time. When the view tag does not match, the wallet avoids the
more expensive EC operations when deriving the output public
key using the shared secret.
|
|
https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf
with a change to use 1.7 instead of 2.0 for the max long term increase rate
|
|
* `IWallet.h` hasn't been touched since 2014, and has been replaced by `src/wallet/api/wallet2_api.h`
* `INode.h` is in a similar situation with `src/p2p/net_node.h`
|
|
da9aa1f Copyright: Update to 2022 (mj-xmr)
|
|
|
|
|
|
e08abaa multisig key exchange update and refactor (koe)
|
|
|
|
|
|
|
|
|
|
a3d2b71 wallet_api: expose offline mode status (rating89us)
|
|
|
|
|
|
8ef51dc wallet_api: fix typo in exportKeyImages (selsta)
|
|
bbeb555 wallet_api: getPassword (tobtoht)
|
|
|
|
|
|
8e0b8dd wallet/api: remove Bitmonero namespace alias (selsta)
|
|
e63c110 wallet_api: address_book: don't lose pid on setDescription (tobtoht)
|
|
1aa1850 wallet_api: signMessage: add sign with subaddress (tobtoht)
|
|
f174a8f wallet_api: reconnectDevice (tobtoht)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
445a9d8 wallet_api: import / export output function (tobtoht)
|
|
c8ff1d4 monero-wallet-cli: improve error message when tx amount is zero (Elliot Wirrick)
|
|
|
|
25e8254 expose set_offline to wallet api (benevanoff)
|
|
673c6d2 Reduce compilation time of epee/portable_storage_template_helper.h (mj-xmr)
|
|
|
|
|
|
7c4e4c7 wallet_api: add isDeterministic() (tobtoht)
|
|
|
|
|
|
|
|
bdabcd0 wallet_api: store fee for incoming txs in history (Ben Evanoff)
|
|
|
|
|
|
2c66894 wallet_api: TransactionHistory - fill unconfirmed out payments dests (xiphon)
|
|
64e9526 Extend TransactionInfo with coinbase and description attributes in wallet/api (dsc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
They are allowed from v12, and MLSAGs are rejected from v13.
|
|
|
|
5ef0607da Update copyright year to 2020 (SomaticFanatic)
|
|
|
|
Update copyright year to 2020
|
|
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
|
|
- choice where to enter passphrase is now made on the host
- use wipeable string in the comm stack
- wipe passphrase memory
- protocol optimizations, prepare for new firmware version
- minor fixes and improvements
- tests fixes, HF12 support
|
|
09abca7 wallet_api: checkUpdate - optional version and buildtag params (xiphon)
|
|
cc18926 wallet2_api: wallet recovery - seed offset passphrase support (xiphon)
|
|
|
|
dab604e wallet2_api: implement estimateTransactionFee (xiphon)
|
|
|
|
|
|
|
|
c89f7ef wallet2_api: fix load unsigned tx from file error propagation (xiphon)
|
|
|
|
|
|
884df82 wallet: provide original address for outgoing transfers (xiphon)
|
|
def703a wallet_api: add multi destination tx support (selsta)
|
|
|
|
097cca5 wallet_api: catch getTxKey exception (ph4r05)
|
|
get_attribute expects 2 values instead of 1
|
|
f074b6b device: show address on device display (ph4r05)
|
|
577324a wallet_manager: omit redundant disconnect, drop unused variable (xiphon)
|
|
4c66614 expose set/get walletcache attribute functionality in wallet api (selsta)
|
|
|
|
- getTxKey method throws an exception, e.g., when user declines txKey export
|
|
- Trezor: support for device address display (subaddress, integrated address)
- Wallet::API support added
- Simplewallet:
- address device [<index>]
- address new <label> // shows address on device also
- integrated_address [device] <payment_id|address> // new optional "device" arg to display also on the device
|
|
|
|
also add a note when receiving the tx, because the user
might not notice the "XXX blocks to unlock" in the balance.
|
|
|
|
|
|
|
|
|
|
|
|
5ade7281 Wallet API: multisig_tx_set passing bug fixed (naughtyfox)
|
|
c9b13fbb tests/trezor: HF9 and HF10 tests (Dusan Klinec)
a1fd1d49 device/trezor: HF10 support added, wallet::API (Dusan Klinec)
d74d26f2 crypto: hmac_keccak added (Dusan Klinec)
|
|
- import only key images generated by cold signing process
- wallet_api: trezor methods added
- wallet: button request code added
- const added to methods
- wallet2::get_tx_key_device() tries to decrypt stored tx private keys using the device.
- simplewallet supports get_tx_key and get_tx_proof on hw device using the get_tx_key feature
- live refresh enables refresh with trezor i.e. computing key images on the fly. More convenient and efficient for users.
- device: has_ki_live_refresh added
- a thread is watching whether live refresh is being computed, if not for 30 seconds, it terminates the live refresh process - switches Trezor state
|
|
|
|
|
|
|
|
RPC connections now have optional tranparent SSL.
An optional private key and certificate file can be passed,
using the --{rpc,daemon}-ssl-private-key and
--{rpc,daemon}-ssl-certificate options. Those have as
argument a path to a PEM format private private key and
certificate, respectively.
If not given, a temporary self signed certificate will be used.
SSL can be enabled or disabled using --{rpc}-ssl, which
accepts autodetect (default), disabled or enabled.
Access can be restricted to particular certificates using the
--rpc-ssl-allowed-certificates, which takes a list of
paths to PEM encoded certificates. This can allow a wallet to
connect to only the daemon they think they're connected to,
by forcing SSL and listing the paths to the known good
certificates.
To generate long term certificates:
openssl genrsa -out /tmp/KEY 4096
openssl req -new -key /tmp/KEY -out /tmp/REQ
openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT
/tmp/KEY is the private key, and /tmp/CERT is the certificate,
both in PEM format. /tmp/REQ can be removed. Adjust the last
command to set expiration date, etc, as needed. It doesn't
make a whole lot of sense for monero anyway, since most servers
will run with one time temporary self signed certificates anyway.
SSL support is transparent, so all communication is done on the
existing ports, with SSL autodetection. This means you can start
using an SSL daemon now, but you should not enforce SSL yet or
nothing will talk to you.
|
|
b8c5f550 wallet api: don't truncate address in subaddress_account (selsta)
|
|
|
|
13785ec9 wallet api/device: set estimated restore height if none is provided (selsta)
|
|
Same behaviour as subaddress.cpp now.
|
|
|
|
|
|
|
|
a7960542 WalletAPI: rescanBlockchain, rescanBlockchainAsync (mmitkevich)
|
|
Apparently some people seem to think it's a censorship list...
|
|
It was creating a new wallet without a password first (this should
be fixed), then not changing the password correctly
|
|
|
|
9acf42d3 Multisig M/N functionality core tests added (naughtyfox)
9f3963e8 Arbitrary M/N multisig schemes: * support in wallet2 * support in monero-wallet-cli * support in monero-wallet-rpc * support in wallet api * support in monero-gen-trusted-multisig * unit tests for multisig wallets creation (naughtyfox)
|
|
|
|
* support in wallet2
* support in monero-wallet-cli
* support in monero-wallet-rpc
* support in wallet api
* support in monero-gen-trusted-multisig
* unit tests for multisig wallets creation
|
|
amount and offset (instead of pubkey)
|
|
921b0fb1 use default create_address_file argument (m2049r)
|
|
a21da905 Wallet: use unique_ptr for WalletImpl members (oneiric)
|
|
7a056f44 WalletAPI: multisigSignData bug fixed (naughtyfox)
|
|
|
|
|
|
6e6ffc06 wallet2_api: bring up to latest wallet api (moneromooo-monero)
|
|
26971d46 WalletAPI: 'hasMultisigPartialKeyImages' function added (naughtyfox)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The secret spend key is kept encrypted in memory, and
decrypted on the fly when needed.
Both spend and view secret keys are kept encrypted in a JSON
field in the keys file. This avoids leaving the keys in
memory due to being manipulated by the JSON I/O API.
|
|
|
|
|
|
4307489 wallet: disable core dumps on startup in release mode (moneromooo-monero)
|
|
|
|
|
|
Also added notes to WalletManager::verifyWalletPassword (which afaik seems unused
by anyone at the moment) regarding the need to unlock the keys file beforehand.
|
|
|
|
4510f41 Wallet API: add some missing override keyword (stoffu)
|
|
Also remove dust() from UnsignedTransactionImpl (already in PendingTransactionImpl)
|
|
|
|
|
|
4764929 use deterministic viewkey if not supplied (cryptochangements34)
|
|
4812c06 add .load() to make Boost 1.67 happy with its new is_integral check (Teutone)
|
|
8787fd8 WalletApi: publicMultisigSignerKey method (naughtyfox)
|
|
b21bc00 Wallet: added methods to sign and verify arbitrary message with multisig public signer's key (libwallet & wallet api) (naughtyfox)
|
|
|
|
47fdb74 WalletApi: getMultisigInfo entry for gui wallets... (naughtyfox)
47fdb74 Refactored: work with wallet api statuses to make setting and getting operations atomic along with error strings (naughtyfox)
|
|
|
|
|
|
|
|
public signer's key (libwallet & wallet api)
|
|
f82c10dc WalletManagerImpl: reuse existing connection to daemon instead of reconnectivng every time (stoffu)
|
|
|
|
reconnectivng every time
|
|
|
|
WalletApi: makeMultisig call introduced
WalletApi: finalizeMultisig call introduced
WalletApi: new calls exportMultisigImages and importMultisigImages
WalletApi: method to return multisig wallet creation state
WalletApi: create multisig transaction, sign multisig transaction, commit transaction and get multisig data are added
WalletApi: identation and style fixes
|
|
operations atomic along with error strings
WalletApi: added method statusWithErrorString to atomically retrieve error with error string
|
|
It can now take a txid (to display rings for all its inputs),
and will print rings in a format that set_ring understands
|
|
|
|
|
|
|
|
When #3303 was merged, a cyclic dependency chain was generated:
libdevice <- libcncrypto <- libringct <- libdevice
This was because libdevice needs access to a set of basic crypto operations
implemented in libringct such as scalarmultBase(), while libringct also needs
access to abstracted crypto operations implemented in libdevice such as
ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct
into libringct_basic and libringct, where the basic crypto ops previously in
libringct are moved into libringct_basic. The cyclic dependency is now resolved
thanks to this separation:
libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct
This eliminates the need for crypto_device.cpp and rctOps_device.cpp.
Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and
get_subaddress_secret_key() were previously implemented in libcryptonote_basic
(cryptonote_format_utils.cpp) and were then called from hw::core::device_default,
which is odd because libdevice is supposed to be independent of libcryptonote_basic.
Therefore, those functions were moved to device_default.cpp.
|
|
1ff35fda Wallet API: make nettype non-defaulted to disambiguate from deprecated versions (and make libwallet_api_tests compilable) (stoffu)
|
|
e0cda74a wallet2_api: add info/error/warning entry points (moneromooo-monero)
|
|
55a65f32 Wallet API: corrected testnet/mainnet ordering (stoffu)
|
|
9a6be3da wallet_manager: fixed typo deviuce/device.hpp (stoffu)
|
|
|
|
versions (and make libwallet_api_tests compilable)
|
|
43026822 Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windows (rbrunner7)
|
|
71bff546 wallet api: when restoring from EnglishOld, set language to English (stoffu)
|
|
0e7ad2e2 Wallet API: generalize 'bool testnet' to 'NetworkType nettype' (stoffu)
af773211 Stagenet (stoffu)
cc9a0bee command_line: allow args to depend on more than one args (stoffu)
55f8d917 command_line::get_arg: remove 'required' for dependent args as they're always optional (stoffu)
450306a0 command line: allow has_arg to handle arg_descriptor<bool,false,true> #3318 (stoffu)
9f9e095a Use `genesis_tx` parameter in `generate_genesis_block`. #3261 (Jean Pierre Dudey)
|
|
|
|
|
|
|
|
|
|
|
|
The basic approach it to delegate all sensitive data (master key, secret
ephemeral key, key derivation, ....) and related operations to the device.
As device has low memory, it does not keep itself the values
(except for view/spend keys) but once computed there are encrypted (with AES
are equivalent) and return back to monero-wallet-cli. When they need to be
manipulated by the device, they are decrypted on receive.
Moreover, using the client for storing the value in encrypted form limits
the modification in the client code. Those values are transfered from one
C-structure to another one as previously.
The code modification has been done with the wishes to be open to any
other hardware wallet. To achieve that a C++ class hw::Device has been
introduced. Two initial implementations are provided: the "default", which
remaps all calls to initial Monero code, and the "Ledger", which delegates
all calls to Ledger device.
|
|
|
|
|