Riccardo Spagni
4ac6bdbb3f
Merge pull request #769
...
b4eada9
wallet: make load_keys check types when loading JSON (moneromooo-monero)
3e55725
wallet: make the JSON reading type safe (moneromooo-monero)
f8d05f3
common: new json_util.h (moneromooo-monero)
2016-04-02 12:02:49 +09:00
Riccardo Spagni
a38ad63f8f
Merge pull request #767
...
24b3e90
Convey tx verification failure reasons to the RPC client (moneromooo-monero)
2016-04-02 12:02:07 +09:00
Ilya Kitaev
830c19c934
Wallet::refresh + tests
2016-03-31 16:38:57 +03:00
Ilya Kitaev
1ae9cdc6bf
"testnet" is default parameter
2016-03-31 15:39:28 +03:00
Ilya Kitaev
2157a9ac48
testnet option, Wallet::balance(), Wallet::unlockedBalance()
2016-03-31 12:48:41 +03:00
Ilya Kitaev
df6026182a
Merge remote-tracking branch 'upstream/master'
2016-03-31 12:01:19 +03:00
moneromooo-monero
878ab5d896
wallet: fix --generate-from-keys saving as watch only
2016-03-28 16:46:37 +01:00
moneromooo-monero
b4eada907c
wallet: make load_keys check types when loading JSON
2016-03-27 23:39:34 +01:00
moneromooo-monero
24b3e9007a
Convey tx verification failure reasons to the RPC client
...
This allows appropriate action to be taken, like displaying
the reason to the user.
Do just that in simplewallet, which should help a lot in
determining why users fail to send.
Also make it so a tx which is accepted but not relayed is
seen as a success rather than a failure.
2016-03-27 12:37:18 +01:00
moneromooo-monero
25672d3f10
wallet: pass std::function by const ref, not value
...
Because we can.
2016-03-26 23:32:45 +00:00
moneromooo-monero
0be6e08dd0
wallet: do not leak owned amounts to the daemon unless --trusted-daemon
...
This will be slower, though more private.
New trusted_daemon parameter to the matching RPC call, false by default.
2016-03-26 23:29:29 +00:00
moneromooo-monero
12146daeed
wallet: change sweep_dust to sweep_unmixable
...
With the change in mixin rules for v2, the "annoying" outputs are
slightly changed. There is high correlation between dust and
unmixable, but no equivalence.
2016-03-26 21:15:47 +00:00
moneromooo-monero
f9a2fd2ff5
wallet: handle rare case where fee adjustment can bump to the next kB
...
It resulted in a tx being sent with too low a fee, and thus rejected.
2016-03-26 11:51:58 +00:00
moneromooo-monero
f26651ab8a
wallet: factor fee calculation
2016-03-26 11:44:43 +00:00
Ilya Kitaev
8790904cf9
- testnet option added to api;
2016-03-25 17:06:30 +03:00
moneromooo-monero
a2e378b91b
wallet: add a --generate-from-json flag
...
It takes a filename containing JSON data to generate a wallet.
The following fields are valid:
version: integer, should be 1
filename: string, path/filename for the newly created wallet
scan_from_height: 64 bit unsigned integer, optional
password: string, optional
viewkey: string, hex representation
spendkey: string, hex representation
seed: string, optional, list of words separated by spaces
Either seed or private keys should be given. If using private
keys, the spend key may be omitted (the wallet will not be
able to spend, but will see incoming transactions).
If scan_from_height is given, blocks below this height will not
be checked for transactions as an optimization.
2016-03-25 00:56:11 +00:00
Ilya Kitaev
2cce32995b
wallet2::store() implemented within wallet2::store_to
2016-03-21 16:17:03 +03:00
moneromooo-monero
f7301c3563
Revert "Print stack trace upon exceptions"
...
Ain't nobody got time for link/cmake skullduggery.
This reverts commit fff238ec94
.
2016-03-21 10:12:23 +00:00
moneromooo-monero
fff238ec94
Print stack trace upon exceptions
...
Useful for debugging users' logs
2016-03-19 21:48:36 +00:00
Ilya Kitaev
62606f11f5
Wallet::store_to(path, password) implemented;
2016-03-16 14:29:06 +03:00
Ilya Kitaev
19fcc74912
Wallet::address implemented
2016-03-16 14:29:06 +03:00
Ilya Kitaev
180ac6e438
WalletManager::recoveryWallet implemented
2016-03-16 14:29:06 +03:00
Ilya Kitaev
5a4f099540
Wallet::setPassword() method for wallet2_api
2016-03-16 14:29:06 +03:00
Ilya Kitaev
57d7ffc4d6
changes in wallet2_api + implemented WalletManager::openWallet
2016-03-16 14:27:57 +03:00
Ilya Kitaev
f1f9279d90
get_seed() included to interface
2016-03-16 14:27:57 +03:00
Ilya Kitaev
930bed7074
tests for wallet2_api
2016-03-16 14:27:57 +03:00
Ilya Kitaev
318660dd89
wallet2 public api. initial commit
2016-03-16 14:27:57 +03:00
moneromooo-monero
8bc1bd6b65
wallet: use minimum mixin when RPC asks for too low mixin
...
After the fork, normal transfer functions called via RPC
use the minimum mixin 2 if 0 or 1 is requested. While the
incoming transaction may be valid (eg, it has an unmixable
and at most a mixable input), it is a simple way to make
sure RPC users can't get a seemingly random accept/reject
behavior if they don't update their requested mixin.
2016-03-11 21:32:16 +00:00
moneromooo-monero
31d2e0f84d
wallet_rpc_server: make use_fork_rules public
...
We will need it in the wallet RPC server
2016-03-11 21:31:50 +00:00
Howard Chu
b937a2c915
Use boost::thread instead of std::thread
...
and all other associated IPC
2016-03-11 15:09:50 +00:00
luigi1111
e2b7e55be6
get_payments short ID
...
Add support for short/integrated/encrypted IDs to get_payments RPC
2016-03-05 13:30:48 -06:00
moneromooo-monero
4513b4cd2b
simplewallet: add a new --restore-from-keys option
...
It is similar in use to --restore-from-view-key, but also expects
a spend private key.
Requested by luigi1112, and useful to restore MyMonero wallets.
2016-02-22 22:10:55 +00:00
moneromooo-monero
8f09b71b9b
wallet: clear missing data on rescan_bc
2016-02-15 20:51:30 +00:00
moneromooo-monero
c7b96b91ed
wallet: check a key image isn't already present when adding one
...
If it is, it points to reuse of a tx key, which isn't meant to happen.
If it does, a key image collision means that only one of those
outputs is spendable, so the wallet selects the larger amount,
unless that output was spent already.
This causes a discrepancy betewen reported received inputs and
payment total.
Since tx keys are 256 bits, this should never happen except if
done on purpose, or if a sender uses a bad PRNG.
2016-02-05 16:24:23 +00:00
Riccardo Spagni
616df496e9
Revert "Merge pull request #632 "
...
This reverts commit 58f890652e
, reversing
changes made to 39d73d2a27
.
2016-01-31 15:49:11 +02:00
Riccardo Spagni
569316aea3
Merge pull request #634
...
7fc6fa3
wallet: forbid dust altogether in output selection where appropriate (moneromooo-monero)
5e1a739
blockchain: log number of outputs available for a new tx (moneromooo-monero)
2016-01-31 15:21:45 +02:00
Riccardo Spagni
8d976a0683
Merge pull request #633
...
80882ac
wallet: guard against exception in process_blocks (moneromooo-monero)
2016-01-31 15:21:13 +02:00
Riccardo Spagni
58f890652e
Merge pull request #632
...
2cf8b32
wallet: guard against exception in process_blocks (moneromooo-monero)
2016-01-31 15:20:47 +02:00
moneromooo-monero
7fc6fa3fa2
wallet: forbid dust altogether in output selection where appropriate
2016-01-31 11:03:09 +00:00
moneromooo-monero
80882ac6dd
wallet: guard against exception in process_blocks
...
If an exception occurs, the thread needs to be joined, or it
will be deleted while still live, and terminate the process.
2016-01-30 23:52:43 +00:00
moneromooo-monero
2cf8b32229
wallet: guard against exception in process_blocks
...
If an exception occurs, the thread needs to be joined, or it
will be deleted while still live, and terminate the process.
2016-01-30 23:34:23 +00:00
moneromooo-monero
b11539fda7
wallet: detect and handle failed outgoing transfers
...
When a transaction is not found in the pool anymore, it is marked
as failed, and displayed as such in show_transfers.
2016-01-29 19:44:48 +00:00
moneromooo-monero
3b1d7e03fc
Fix V1/V2 use of hard fork related parameters
...
Some of it uses hardcoded height, which will need some thinking
for next (voted upon) fork.
2016-01-29 17:21:11 +00:00
moneromooo-monero
15d9ac8abd
wallet2: update spent comparison now that we have two spent states
2016-01-24 19:55:18 +00:00
moneromooo-monero
67bbb56a6c
wallet2: decide at runtime which upper tx size to use
...
The value will be different depending on whether we've reached
the first hard fork, which allows a larger size, or not.
This fixes transactions being rejected by the daemon on mainnet
where the first hard fork is not yet active.
2016-01-10 11:56:13 +00:00
moneromooo-monero
a44d94d390
rpc: is_key_image_spent now checks the tx pool too
2016-01-05 22:16:24 +00:00
Riccardo Spagni
ac7d27d4f9
Merge pull request #584
...
5c67c48
wallet: don't forget to close the file after storing cache (moneromooo-monero)
2015-12-31 12:43:15 +02:00
moneromooo-monero
5c67c486e8
wallet: don't forget to close the file after storing cache
...
Also add some flags to open, as epee's save_string_to_file does,
to truncate file, etc.
2015-12-31 10:34:17 +00:00
Riccardo Spagni
de03926850
updated copyright year
2015-12-31 08:39:56 +02:00
moneromooo-monero
bc8a52efd8
wallet: add a rescan_bc command and rescan_blockchain RPC
...
Blockchain hashes and key images are flushed, and blocks are
pulled anew from the daemon.
The console command is shortened to match bc_height.
This should make it a lot easier on users who are currently
told to remove this particular cache file but keep the keys
one, etc, etc.
2015-12-30 15:06:03 +00:00
moneromooo-monero
92ef6b54fe
wallet: protect against exceptions in the block pull thread
...
This can happen when the daemon exits, which would also cause
the wallet to crash via unhandled exception
2015-12-30 12:43:15 +00:00
Riccardo Spagni
32a26332f8
no longer need to pass the size to rapidjson
2015-12-30 12:25:29 +02:00
Riccardo Spagni
9e45eadb98
Merge pull request #575
...
61befc2
wallet: store cache to file without unnecessary memory buffer (moneromooo-monero)
2015-12-30 09:40:33 +02:00
moneromooo-monero
61befc2293
wallet: store cache to file without unnecessary memory buffer
2015-12-29 15:46:37 +00:00
moneromooo-monero
61ce8d6fde
wallet_rpc_server: exit async, so we reply to stop_wallet RPC
...
Reported by saddam
2015-12-28 23:38:30 +00:00
moneromooo-monero
9847db6920
wallet: do not return error if incoming_transfers finds none
...
reported by saddam
2015-12-28 20:27:06 +00:00
Riccardo Spagni
719a6a89c6
Merge pull request #557
...
791e7fb
changed height to uint64_t (Brendan Telzrow)
4cd7913
added RPC wallet command getheight (Brendan Telzrow)
2015-12-25 21:48:25 +02:00
Riccardo Spagni
47ca455ea8
fixed missing parenthesis
2015-12-24 18:11:11 +02:00
Lex Kalinkin
a004130a04
fix for 'failed to generate new wallet: failed to save file' error during wallet generation
2015-12-24 16:12:42 +02:00
Brendan Telzrow
791e7fb263
changed height to uint64_t
2015-12-23 13:10:59 -06:00
Brendan Telzrow
4cd7913a04
added RPC wallet command getheight
2015-12-23 10:04:04 -06:00
Riccardo Spagni
c41f785d56
Merge pull request #550
...
8c93608
wallet: fix load/save versioning bug for recently added tx data (moneromooo-monero)
2015-12-22 10:27:44 +02:00
moneromooo-monero
8c93608f2f
wallet: fix load/save versioning bug for recently added tx data
...
The version number passed to those data's serialize function
was always 0, not the wallet's version as I had expected.
A version number now exists for these structures so they're
versioned correctly.
2015-12-20 14:03:15 +00:00
moneromooo-monero
8ea7af1ba3
Allow the wallet to access hard fork information
...
And make it change behavior slightly when close/after first hard fork
2015-12-19 14:52:30 +00:00
Riccardo Spagni
5d33b43d8d
Merge pull request #544
...
01e92eb
replace std::auto_ptr with std::unique_ptr (moneromooo-monero)
2015-12-18 12:18:00 +02:00
moneromooo-monero
01e92ebdb0
replace std::auto_ptr with std::unique_ptr
...
The former is obsolete
2015-12-17 22:47:13 +00:00
moneromooo-monero
9b4f8b4b7e
wallet: save to a temporary file, then rename
...
This should avoid most of wallet cache corruption cases
2015-12-17 22:32:54 +00:00
moneromooo-monero
c6cfe0f26d
wallet: make the wallet refresh type a wallet setting
...
instead of a command line setting. It makes sense that is is
a long lived setting.
2015-12-05 21:44:25 +00:00
moneromooo-monero
fef2493617
wallet: default auto-refresh to true for old wallets
2015-12-05 21:10:12 +00:00
moneromooo-monero
1965fce402
wallet: add a stop_wallet RPC call
2015-12-05 14:53:37 +00:00
moneromooo-monero
41029d6d74
wallet2: default auto-refresh to true for preexisting wallets
2015-11-30 11:08:15 +00:00
moneromooo-monero
d68a63e404
wallet: cancellable refresh
...
^C while in manual refresh will cancel the refresh, since that's
often an annoying thing to have to wait for. Also, a manual refresh
command will interrupt any running background refresh and take
over, rather than wait for the background refresh to be done, and
look to be hanging.
2015-11-29 23:24:56 +00:00
Riccardo Spagni
5275db0786
Merge pull request #509
...
3030e3e
wallet2: remove confirmed transactions from detached blocks (moneromooo-monero)
2015-11-30 00:23:58 +02:00
Riccardo Spagni
bc1bc4adb2
Merge pull request #507
...
62e49a5
wallet: optional automatic refresh from the daemon (moneromooo-monero)
2015-11-30 00:19:47 +02:00
moneromooo-monero
3030e3ecff
wallet2: remove confirmed transactions from detached blocks
2015-11-29 12:07:54 +00:00
moneromooo-monero
9ee48e9071
wallet2: speed up wallet refresh for large miners
2015-11-28 21:15:07 +00:00
moneromooo-monero
62e49a5f02
wallet: optional automatic refresh from the daemon
...
The daemon will be polled every 90 seconds for new blocks.
It is enabled by default, and can be turned on/off with
set auto-refresh 1 and set auto-refresh 0 in the wallet.
2015-11-28 12:41:06 +00:00
moneromooo-monero
490590306e
wallet2: parallelize pulling blocks and processing them on refresh
...
This needed locking the use of m_http_client, to avoid collisions
in I/O.
2015-11-27 17:25:15 +00:00
moneromooo-monero
d0eaf1d4e1
wallet2: maintain the short chain manually when refreshing
2015-11-27 00:35:41 +00:00
moneromooo-monero
a4e9506069
wallet2: split pull blocks between pulling and processing
2015-11-27 00:03:43 +00:00
moneromooo-monero
9b945f5211
wallet: make the refresh optimizations selectable via command line
...
Take the opportunity to add a no-coinbase case too, for even faster
sync when an address is known to never have mined to.
2015-11-22 19:03:10 +00:00
moneromooo-monero
d2c031332e
wallet: speedup refresh from daemon
...
Assume the whole of a coinbase goes to the same address (so that
if the first output isn't for us, none of it is), and only look
for payment id when we received something in the transaction.
2015-11-22 18:07:19 +00:00
moneromooo-monero
ea707c779c
wallet2: minor cleanup
...
- use std::vector::std::deque to not leak when exceptions happen
- use std::unique_ptr instead of the deprecated std::auto_ptr
2015-11-22 18:07:14 +00:00
moneromooo-monero
55a2da7475
wallet2: speedup refresh a bit
...
Use the NoodleDoodle threading technique to speedup a couple
code blocks on the main path when refreshing blocks without
any transactions for us.
2015-11-22 18:07:07 +00:00
moneromooo-monero
db1fb66e66
wallet: storing outgoing tx info now defaults to enabled
...
The info is stored encrypted, and is pretty useful, often after
the fact.
2015-11-22 12:40:03 +00:00
moneromooo-monero
9156ba3a3c
wallet: rename store-tx-keys to store-tx-info
...
With backward compatibility
2015-11-22 12:26:27 +00:00
moneromooo-monero
b3d4d41e29
wallet: improve show_transfers
...
More information is now saved and displayed
2015-11-22 12:13:59 +00:00
moneromooo-monero
725ae4e710
wallet: use incoming blocks to keep track of payments too
2015-11-21 23:22:15 +00:00
moneromooo-monero
3f611bc3dc
wallet: track outgoing payments and add a show_transfers command
...
It's a user friendly display of incoming and outgoing transfers,
listed by height, within an optional height range.
2015-11-15 21:59:40 +00:00
moneromooo-monero
c7dc6ef8e8
simplewallet: add a set default-mixin command
...
The default default mixin is 4. It can now be changed per wallet.
2015-10-30 21:16:51 +00:00
moneromooo-monero
5f8baba26e
wallet2: fix CLANG compile error
2015-10-30 14:35:55 +00:00
moneromooo-monero
6df4e67cd2
Fix a possibly-unused warning, and rationalize types
2015-10-27 09:05:07 +00:00
moneromooo-monero
ecbb732faa
Fix leak on real output when using a very recent output
...
The wallet and the daemon applied different height considerations
when selecting outputs to use. This can leak information on which
input in a ring signature is the real one.
Found and originally fixed by smooth on Aeon.
2015-10-25 16:34:57 +00:00
moneromooo-monero
5ea2f936ae
wallet2: really include non canonical outputs in dust sweep
2015-10-14 00:58:08 +01:00
moneromooo-monero
ac90d488e7
from hard fork 2, all outputs must be decomposed
...
The wallet decomposes fully as of now too.
2015-10-11 13:02:55 +01:00
moneromooo-monero
5dc53c2cb0
wallet: use mutex protected random generation api
2015-08-26 08:28:58 +01:00
moneromooo-monero
d91eb8c7b4
wallet: only return tx keys via RPC if requested
...
To get the tx keys returned via RPC, set the "get_tx_key" or
"get_tx_keys" request field to true (defaults to false).
2015-08-24 17:36:44 +01:00
Riccardo Spagni
c24a7e8fc0
Merge pull request #381
...
f197599
wallet: encrypt the cache file (moneromooo-monero)
98c76a3
chacha8: add a key generation variant that take a pointer and size (moneromooo-monero)
2015-08-24 19:20:36 +02:00
moneromooo-monero
f19759992c
wallet: encrypt the cache file
...
It contains private data, such as a record of transactions.
The key is derived from the view and spend secret keys.
The encryption currently is one shot, so may require a lot of
memory for large wallet caches.
2015-08-22 21:04:50 +01:00
moneromooo-monero
6c995710d8
make tx keys available to the user
...
They are also stored in the cache file, to be retrieved using
a new get_tx_key command.
2015-08-19 21:11:48 +01:00