Commit graph

545 commits

Author SHA1 Message Date
Axel Gembe
fc65cdaa8a
AppImage: Fix webbrowser.open not opening links
There was an issue where webbrowser.open would invoke a program like
kde-open5 that loaded the systems libQt5DBus, which was not satisfied
with the AppImage's libdbus. To fix this we fork the process, unset
LD_LIBRARY_PATH and then open the URL.

fixes #5425

-----

taken from Electron-Cash/Electron-Cash@00939aafd1
2019-07-05 00:02:26 +02:00
SomberNight
c9006032d9
qt network dialog: let user edit server host/port in peace
incoming network updates could keep changing the text fields while
user is editing them
2019-07-04 21:46:11 +02:00
SomberNight
650225e238
crash reporter UX
see #5483
2019-07-04 19:13:12 +02:00
SomberNight
5ed6a68d8c
update make_locale doc references, and small nits 2019-07-03 17:42:40 +02:00
SomberNight
53893be4c9
crash reporter: in Qt subclass, do network request using WaitingDialog
so it does not block the GUI
2019-07-02 19:27:36 +02:00
SomberNight
7c5247081b
change electrum.png to square (by padding)
ran "appimagelint" and apparently icon file needs to be a square
(could have just created another copy, but I guess a square icon
might make sense in other cases too)
2019-07-01 15:00:21 +02:00
SomberNight
37809bed74
qt high dpi: fix some text fields
There are probably other DPI related issues though.

closes #5471
closes #4597
closes #1927
2019-06-29 05:27:28 +02:00
SomberNight
e7304ce23e
TorDetector: minor clean-up 2019-06-29 04:03:29 +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
baa0293620
android build: persist debug keystore
so that we can upgrade debug installations on the phone and keep the datadir
2019-06-27 07:08:03 +02:00
SomberNight
0fafd8c0a7
fix #4777 again... 2019-06-27 05:00:16 +02:00
SomberNight
7bf6786bf5
build: note whether binary is reproducible in each case 2019-06-26 04:18:24 +02:00
SomberNight
570c0aeca3
build: make NSIS windows binary deterministic by changing the .ico file
see bitcoin/bitcoin@217208a36d

-----

A lot of time was wasted on this... over the years actually...

Some notes and rant here, for future reference.

During the initial effort to try to make binaries reproducible,
out of the three windows binaries being distributed (standalone, portable, setup),
only the first two were successfully made deterministic.
Later, we started to use Docker-based builds. At that point ThomasV and I
could reproducibly build the same setup/nsis exe but Travis kept building a different one.

Recently I have noticed that if I do two subsequent builds of the setup exe on
the same machine, adding a new file in contrib/build-wine/ between the builds,
then I get different binaries. Playing around with this a bit, it seems:
- other files that are in the same folder as contrib/build-wine/electrum.nsi affect the binary
- only files that are in exactly the same folder matter (not recursively)
- only filenames matter (not permission, owner, timestamps, or file contents)
To see the difference in the binaries, use vbindiff, and disable the compression done
by nsis (SetCompress off).
There is a ~48 byte diff near the very beginning of the "Uninstaller" section.
I am only guessing it is the uninstaller section based on the sizes of the sections
printed by nsis during the build.
I have downloaded the binary built by Travis, and the diff is consistent with this
(i.e. it's the same kind of diff that manifests if I change the filename of one of
the supposedly unrelated files).
Commenting out the "WriteUninstaller" line in .nsi fixes the issue. i.e. if no
uninstaller is created then the binary becomes deterministic.
Commenting out the "!define MUI_ICON" line in .nsi also fixes the issue.
At this point I remembered the above referenced commit by bluematt; which I had
thought we had already followed up on...
Replacing the .ico file fixes the issue.
Note that it's not actually clear what the exact requirements for the .ico file are.
Removing any of the layers in the image seems to introduce non-determinicity.
The new .ico file has layers with resolutions and properties the bitcoin.ico file has.

I guess NSIS must have strict requirements for the icon size, and if a given size icon is missing
it might be creating it itself?? And during the downscaling it uses a non-deterministic
algorithm that initialises some RNG from the directory listing (bauerj's guess somewhat adapted :D).
Just crazy.
2019-06-24 21:51:47 +02:00
SomberNight
212ed8b18b
qt: set WWLabel text to be mouse-selectable by default
this lets user to copy-paste text in e.g. many wizard dialogs
2019-06-23 03:10:09 +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
5f71163449
qt crash reporter: add warning that report contents are public 2019-06-20 17:32:21 +02:00
SomberNight
c7a8540d06
kivy: show tx fee rate in tx dialog 2019-06-19 21:56:52 +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
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
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
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
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
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
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
SomberNight
db9a9bbf25
qt settings: restart needed after toggling log_to_file 2019-05-21 20:57:29 +02:00
SomberNight
d3f65e24e1
kivy: warn user during "Send" if high fee (change condition)
Specifically, warning was previously triggered if fee > 1 mBTC;
now it is unified with Qt, warning is triggered if feerate > 600 sat/byte.
2019-05-17 20:10:10 +02:00
SomberNight
e415c0d930
wallet: (fix) synchronizer would also resub closed wallets...
network cb was not removed, so Synchronizer and the wallet itself was
kept in memory; and Synchronizer kept working
2019-05-14 17:04:03 +02:00
SomberNight
7aaac2ee30
qt wizard: change wizard_dialog semantics to raise exceptions
Specifically GoBack and UserCancelled will not be suppressed anymore.
Previously, if 'run_next' raised GoBack, that would propagate out fully,
while if 'func' itself raised it would be suppressed. This was confusing.

somewhat related: #5334
2019-05-14 15:31:33 +02:00
SomberNight
099315013e
(trivial) qt main_window: rm unnecessary indendation 2019-05-14 00:03:50 +02:00
SomberNight
f6dfcccf8c
qt: factor out util.MessageBoxMixin.msg_box into function and use it
so these dialogs also get our custom default settings applied,
e.g. their text is selectable by mouse
2019-05-13 23:59:29 +02:00
SomberNight
4db1535bce
qt wizard: catch wallet/bitcoin exceptions (regression)
fix #5342
2019-05-13 22:56:38 +02:00
SomberNight
d2a80f15a1
kivy fx dialog: fix #5329 2019-05-13 20:05:01 +02:00
SomberNight
a59e3efd3e
qt send tab: fix tx_size and fee calc in case of payment requests
do_update_fee() was always setting
`outputs = self.payto_e.get_outputs(...)`
but this only works `if not self.payment_request`

Minor refactor to re-use logic instead of duplicating code.
2019-05-13 02:52:22 +02:00
SomberNight
dd7b356fcc
kivy wizard: fix #5333 2019-05-11 19:36:57 +02:00
SomberNight
22c08f1522
qt dark: fix2 "In History tab, labels while edited were being clipped"
follow-up 3ed502a728
from Electron-Cash/Electron-Cash@cddde8d21b
2019-05-11 02:17:35 +02:00
ThomasV
1b8673839a buildozer: add tests to exclude_dirs 2019-05-09 15:51:00 +02:00
SomberNight
f6a7e6ec7d
logging: don't log to file by default
Leaking addresses/pubkeys/txids is a privacy leak...
but with lightning, logging should be enabled by default, as otherwise
issues would be sometimes impossible to debug...
Well, disable it for now.
2019-05-08 16:52:04 +02:00
SomberNight
3ed502a728
qt dark: fix "In History tab, labels while edited were being clipped" 2019-05-08 16:31:56 +02:00
SomberNight
0e6cf153d7
synchronizer: show progress in GUI 2019-05-07 17:58:06 +02:00
SomberNight
fd09033890
kivy: fix a race at startup
on_history (fx) races with load_wallet
2019-05-06 21:10:52 +02:00