Commit graph

208 commits

Author SHA1 Message Date
SomberNight
a10dc04b28
wallet: fix offline hw wallet signing when not specifying --offline
closes #5532
2019-07-29 13:27:37 +02:00
SomberNight
8a1052330d
wallet: loosen bump_fee sanity check further
fixes #5502
2019-07-10 16:35:40 +02:00
SomberNight
cc9ad3ae90
wallet: fix restore_wallet_from_text edge case
closes #5490
2019-07-05 19:27:44 +02:00
SomberNight
94b721baa4
wallet: fix type error in _bump_fee_through_decreasing_outputs
fixes #5483
2019-07-04 17:23:34 +02:00
SomberNight
d293b2e038
wallet: follow-up prev 2019-07-03 13:40:42 +02:00
ThomasV
37e7add776 Do not pass storage to address_synchronizer 2019-07-03 10:46:30 +02:00
SomberNight
4c63eca896
wallet.bump_fee: loosen sanity check a tiny bit 2019-06-29 16:22:37 +02:00
SomberNight
c6a54f05f5
wallet: some performance optimisations for get_receiving_addresses
jsondb takes a copy of the whole self.receiving_addresses
good for avoiding race conditions but horrible for performance...
this significantly speeds up at least
- synchronize_sequence, and
- is_beyond_limit (used by Qt AddressList)
2019-06-28 20:20:24 +02:00
SomberNight
cb69aa80f7
coinchooser: don't spend buckets with negative effective value
Calculate the effective value of buckets, and filter <0 out.
Note that the filtering is done on the buckets, not per-coin.
This should better preserve the user's privacy in certain cases.

When the user "sends Max", as before, all UTXOs are selected,
even if they are not economical to spend.

see #5433
2019-06-20 22:42:50 +02:00
SomberNight
8491a2d329
wallet: RBF batching will now reuse the change address 2019-06-20 22:42:49 +02:00
SomberNight
d0a43662bd
wallet: make "increase fee" RBF logic smarter
There are now two internal strategies to bump the fee of a txn.
bump fee method 1: keep all inputs, keep all not is_mine outputs,
                   allow adding new inputs
bump fee method 2: keep all inputs, no new inputs are added,
                   allow decreasing and removing outputs (change is decreased first)
Method 2 is less "safe" as it might end up decreasing e.g. a payment to a merchant;
but e.g. if the user has sent "Max" previously, this is the only way to RBF.

We try method 1 first, and fail-over to method 2.
Previous versions always used method 2.

fixes #3652
2019-06-20 22:42:48 +02:00
SomberNight
8bfe12e047
wallet: split "change address logic" from make_unsigned_transaction 2019-06-20 22:42:48 +02:00
SomberNight
6424163d4b
wallet: fix rbf_batching edge case
The old change output was given to coinchooser
as part of possible UTXOs to use.
(Though the coinchooser was really unlikely to select it, as by
definition that UTXO is unconfirmed)
2019-06-20 21:53:24 +02:00
SomberNight
5effaaf428
TxOutput usage: trivial clean-up 2019-06-19 21:59:49 +02:00
SomberNight
29ce50a305
follow-up prev
wallet.is_mine needs to tolerate None as input
2019-06-12 18:27:13 +02:00
SomberNight
9e21b76c91
wallet: stricter validation in export_private_key
fixes #5422
2019-06-12 18:09:38 +02:00
SomberNight
53d189fc7a
storage: fix some madness about get_data_ref() and put() interacting badly
previously load_transactions() had to be called before upgrade();
now we reverse this order.

to reproduce/illustrate issue, before this commit:

try running convert_version_17 and convert_version_18
(e.g. see testcase test_upgrade_from_client_2_9_3_old_seeded_with_realistic_history)
and then in qt console:
>> wallet.storage.db.get_data_ref('spent_outpoints') == wallet.storage.db.spent_outpoints
False
>> wallet.storage.db.get_data_ref('verified_tx3') == wallet.storage.db.verified_tx
False
2019-06-06 19:49:06 +02:00
SomberNight
407e3514cc
wallet: test_addresses_sanity to include (part of) address in exception
related: #5342
2019-05-13 23:20:48 +02:00
SomberNight
808239bbcc
wallet: fix deleting address from Imported_Wallet
closes #4481
2019-05-11 02:08:15 +02:00
SomberNight
46ae86f600
wallet: fix balance_at_timestamp
closes #5326
2019-05-10 19:22:13 +02:00
SomberNight
104b8804f7
logging: '-V' cli option can blacklist/whitelist classes with short names
for example, '-V ni' will whitelist the 'Network' and 'Interface' classes
'-V ^ni' will blacklist those instead
2019-05-07 21:07:18 +02:00
SomberNight
fd5b1acdc8
commands: fix encrypt/decrypt
based on Electron-Cash/Electron-Cash@62aa08a0ff
2019-05-03 03:10:31 +02:00
SomberNight
6940c424d1
logging: cli options to filter for modules using -v
old style "-v" still works

filtering examples:
-v=debug,network=error,interface=error      // effectively blacklists network and interface
-v=warning,network=debug,interface=debug    // effectively whitelists network and interface
2019-05-02 15:19:10 +02:00
SomberNight
3385a94753
logging: basics 2019-05-02 15:19:03 +02:00
SomberNight
205c437d9a
wallet: get_tx_info now returns NamedTuple instead of abomination 2019-04-29 02:32:15 +02:00
SomberNight
271d1a3f1d
qt tx dialog: two columns for tx stats
also show "RBF", and fix "date"
2019-04-29 01:19:06 +02:00
SomberNight
a1d98d4331
sweep/import key: show error in Qt GUI to user as tooltip 2019-04-19 00:15:45 +02:00
ThomasV
46f1fca7c3 remove currency from amount fields in exported history 2019-03-26 18:35:46 +01:00
SomberNight
752c518bdc
add option to freeze individual UTXOs
based on cculianu's work in Electron-Cash/Electron-Cash@fd910cffc8
2019-03-11 18:46:29 +01:00
SomberNight
cd40f2c9b7
trivial wallet clean-up 2019-03-10 18:47:23 +01:00
ThomasV
56ced1dfd5 let DB handle addresses 2019-03-05 08:20:34 +01:00
SomberNight
514d0ae958
wallet: towards restoring previous performance 2 2019-03-04 18:16:48 +01:00
SomberNight
12b98fa251
wizard: fix regression: unencrypted wallets were not getting upgraded
fixes #5177
2019-03-04 17:23:43 +01:00
SomberNight
b79f43c360
wallet: fix RBF batching
post-storage_db-merge fixup
2019-03-02 19:16:39 +01:00
SomberNight
0c232905a8
wallet: rm dead code 2019-03-01 20:55:21 +01:00
SomberNight
2ad73050b3
wallet: towards restoring previous performance 2019-03-01 17:59:22 +01:00
SomberNight
d0fa3b431a
wallet: generate addresses in Deterministic_Wallet constructor 2019-02-28 21:22:10 +01:00
SomberNight
f85b8f349d
wallet: fix bug in restore_wallet_from_text, and write tests 2019-02-28 20:26:29 +01:00
SomberNight
ae80f143e7
commands/wallet: separate out 'create' and 'restore' core parts
so that they are easier to use from python scripts
2019-02-28 20:26:29 +01:00
ThomasV
3631c27ed7 fix: load trustedcoin plugin for two-step wallet creation 2019-02-28 13:11:00 +01:00
ThomasV
d74f0c0947 storage_db: fix tests, add modified flag to db class 2019-02-28 12:09:36 +01:00
ThomasV
cb9dcb8e26 load wallet plugin in Wallet factory, fix trustedcoin wizard on kivy 2019-02-28 09:02:58 +01:00
ThomasV
791e680a96 abstract database away from wallet and address_synchronizer 2019-02-28 09:02:58 +01:00
ThomasV
7f2083f667 separate storage and database (JsonDB) 2019-02-28 09:02:58 +01:00
SomberNight
086372f68a
wallet get_full_history: add from/to_height info to summary 2019-02-12 19:38:15 +01:00
SomberNight
2174fc0676
cli history: add option to filter by block height 2019-02-12 18:38:35 +01:00
SomberNight
026448837f
no more "import *"
fixes #5101
fixes #5105
2019-02-11 20:21:24 +01:00
ThomasV
8f2a730b3b add more details values to history 2019-02-05 18:27:01 +01:00
SomberNight
d820f9ad37
transaction: change default version to 2 2019-01-28 15:11:03 +01:00
ghost43
dc19cf1fa1
wallet: randomise locktime of transactions a bit. also check if stale. (#4967) 2019-01-16 18:51:59 +01:00