Commit Graph

11203 Commits

Author SHA1 Message Date
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 e0b1bbfc46 tests: new tests for bump_fee and rbf_batching 2019-06-20 22:42:50 +02:00
SomberNight 0c20fcb6b3 tests: fix existing bump_fee tests 2019-06-20 22:42:49 +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 e864fa5088 coinchooser: tweak heuristic scoring.
transactions without any change now get better scores.
transactions with really small change get worse scores.
2019-06-20 22:42:47 +02:00
SomberNight f409b5da40 coinchooser: refactor so that penalty_func has access to change outputs 2019-06-20 22:42:47 +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 5f71163449 qt crash reporter: add warning that report contents are public 2019-06-20 17:32:21 +02:00
SomberNight 5effaaf428 TxOutput usage: trivial clean-up 2019-06-19 21:59:49 +02:00
SomberNight c7a8540d06 kivy: show tx fee rate in tx dialog 2019-06-19 21:56:52 +02:00
SomberNight cb204dd969 coinchooser: better account for fees in penalty_func 2019-06-17 19:55:39 +02:00
SomberNight e3c26d7c7a json_db: fix remove_spent_outpoint
method should make sure prevout_n is str...
also wrote failing test
2019-06-15 03:51:11 +02:00
SomberNight d07caaf601 qt msgbox: when using rich text, set text format to "AutoText" instead
"\n" newlines were ignored for WIF_HELP_TEXT InfoButtons
2019-06-13 17:03:12 +02:00
SomberNight 23ec426b4f qt history list: tweak sort order of items 2019-06-13 01:03:56 +02:00
SomberNight 811169da4b plugins: on some systems plugins with relative imports failed to load
this caused electrum to fail to start
potentially only older python 3.6.x are affected

fixes #5421
2019-06-12 20:07:36 +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 c7b64f4794 AppImage: update appimagetool version 2019-06-11 20:24:51 +02:00
SomberNight 63e5119ceb builds: parallelise "make" by setting "-j4" 2019-06-11 20:02:28 +02:00
SomberNight 9d2b601cc7 update block explorer URL for blockchain.info
closes #5408
2019-06-11 19:19:43 +02:00
SomberNight 7120c344b2 qt seed completer: colour words yellow if only in old electrum list
Some people complained that due to merging the two word lists,
it is difficult to restore from a metal backup, as they planned
to rely on the "4 letter prefixes are unique in bip39 word list" property.
So we colour words that are only in old list.
2019-06-08 15:37:49 +02:00
SomberNight 5c83df7709 android: update kivy, p4a, buildozer 2019-06-07 20:06:15 +02:00
SomberNight 6bdc6f559c storage: fix bug in convert_version_17
closes #5400
2019-06-06 19:51:37 +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 33308307a4 bip70 payreq: do not show error messages in gui
closes #5393
2019-06-05 19:40:33 +02:00
SomberNight 0553ab7f3f follow-up prev
PaymentRequest.error is really not intuitive.........
2019-06-05 19:05:58 +02:00
SomberNight d2de8de356 qt payment requests: fix some races
closes #5283, #5407, #5121
2019-06-05 16:29:33 +02:00
SomberNight 0ec574bcf8 kivy tx_dialog: fix size of buttons in "Options" dropdown 2019-06-04 21:00:48 +02:00
SomberNight fbcf6f48b9 rerun freeze_packages 2019-06-04 20:36:52 +02:00
SomberNight 046518d7f7 requirements: restrict qdarkstyle to <2.7
qdarkstyle 2.7 pulls in new dependencies
see ColinDuquesnoy/QDarkStyleSheet#182
2019-06-04 20:35:46 +02:00
SomberNight 6cf7aefe28 kivy: offer to copy raw hex tx to clipboard
related: #5405
2019-06-04 19:20:31 +02:00
SomberNight 21ab65e5f7 qt lists right click: fix #5365 2019-06-03 22:21:53 +02:00
SomberNight 0ef853c046 rm dead code 2019-06-03 20:35:37 +02:00
SomberNight 371e1a6ebf hw: allow bypassing "too old firmware" error when using hw wallets
The framework here is generic enough that it can be used for any hw plugin,
however atm only Trezor is implemented.

closes #5391
2019-05-31 04:09:03 +02:00
SomberNight 7cba46c317 deprecation warnings: only show when running from source 2019-05-28 21:38:27 +02:00
SomberNight ab81a09de2 interface: hide some server-induced errors from log 2019-05-28 21:23:06 +02:00
SomberNight d17e6a1b87 interface: fix for aiorpcx 0.18 2019-05-28 06:14:53 +02:00
SomberNight 41802d8094 qt receive tab: "receive address" is now coloured red if already used
closes #3812
closes #5374
2019-05-27 20:24:09 +02:00
SomberNight 41f160dd74 update to aiorpcx 0.18 2019-05-27 19:35:30 +02:00
SomberNight eaf203dbb5 interface: fix connecting to new servers using self-signed certs
got broken in 6ec1578a90
2019-05-27 19:09:54 +02:00
SomberNight 37da192bf5 wizard/hw: less spammy logs when hw library unavailable
closes #5380
2019-05-26 17:01:01 +02:00
SomberNight 30ffb3d4dc util: add function "chunks"
taken from ElectrumX
https://github.com/kyuupichan/electrumx/blob/67111a3c4c812d0550fdba013ac886ad824689df/electrumx/lib/util.py#L149
2019-05-26 04:10:32 +02:00
SomberNight 1ebfcc0f36 kivy: "paste" button now works for transactions 2019-05-26 02:46:25 +02:00
SomberNight c776af41f6 qt: allow QR codes to store a bit more data
by decreasing error correction (about ~26% larger max payload)
2019-05-26 02:13:02 +02:00
SomberNight aec53ae6af qt: "Help" and "?" buttons can show rich text
namely "Revealer" plugin uses rich text in its description
2019-05-26 01:27:27 +02:00
SomberNight e1c1a9d6a2 interface: add comment 2019-05-25 05:20:21 +02:00
SomberNight 3b445d7248 fix #5376 2019-05-25 05:13:57 +02:00
SomberNight 158090bf8b util.parse_URI: more granular exceptions
related: #5376

first report in #5376 was generated with these changes;
before, the exception was caught and a toast displayed "Not a Bitcoin URI"
2019-05-25 04:55:36 +02:00