Commit Graph

1145 Commits

Author SHA1 Message Date
ThomasV
e35ed17200 remove call to undefined method refresh_headers 2018-12-10 13:07:03 +01:00
ThomasV
059fb51893 reintroduce profiler 2018-12-10 10:18:24 +01:00
SomberNight
ca1043ffda
qt history list: hide columns sooner
while wallet was starting up "hidden columns" were visible
2018-12-10 09:31:53 +01:00
SomberNight
5be6966462
qt history list: allow filtering by (partial) txid 2018-12-10 09:31:52 +01:00
SomberNight
0d755b86ab
qt address dialog: HistoryModel needs reference to correct HistoryList
refresh() was hiding/showing the headers of the main HistoryList
2018-12-10 09:31:52 +01:00
SomberNight
a99b92f613
qt history list: optimise fee histogram induced refresh 2018-12-10 09:31:51 +01:00
SomberNight
696db310a5
qt history list: optimise update_item (tx mined status) 2018-12-10 09:31:50 +01:00
SomberNight
b1e15751d6
qt history list: "status"-based sort should also tie-break on height 2018-12-10 09:31:50 +01:00
SomberNight
65e8eef87f
qt history list: use OrderedDictWithIndex for txns 2018-12-10 09:31:49 +01:00
SomberNight
8bb930dd04
fix OrderedDictWithIndex
setitem() would modify the dict of the class. oops.
2018-12-10 09:31:49 +01:00
SomberNight
3c3fac7ca4
qt history list: fix shortcut in refresh() 2018-12-10 09:31:48 +01:00
SomberNight
5e61ad09c1
qt addresses list: fix filtering 2018-12-10 09:31:48 +01:00
SomberNight
48e119b59e
qt history: minor clean-up and sanity checking 2018-12-10 09:31:47 +01:00
SomberNight
e023d8abdd
qt history list: sorting of first column now considers txpos
same block txns were in unnatural order, maybe sort is not stable?
2018-12-10 09:31:47 +01:00
SomberNight
1c0c21159b
qt history list: performance optimisations 2018-12-10 09:31:46 +01:00
Janus
d2ddb255ef
QAbstractItemModel: Release Notes and Address List fiat bug fix 2018-12-10 09:31:46 +01:00
Janus
3960070a50
QAbstractItemModel: fix sorting, QAbstractItemDelegate usage, QVariant usage 2018-12-10 09:31:45 +01:00
Janus
4eb4b341db
QAbstractItemModel: initial version, filter not done 2018-12-10 09:31:39 +01:00
SomberNight
5b9b6a931d
qt network dialog: fix NodesListWidget if there is fork
undo part of 5473320ce4
2018-12-10 08:04:54 +01:00
SomberNight
9607854b67
network: fix switching interface (restart old one)
follow-up b3ff173b45
connection_down was killing the already restarted old interface
2018-12-10 08:03:42 +01:00
SomberNight
62e352a2a8
network: don't let _maintain_sessions die from CancelledError
as then the network would get paralysed and no one can fix it
2018-12-09 20:04:42 +01:00
SomberNight
b3ff173b45
interface: change close() implementation
was getting on lightning branch in some circumstances
RecursionError: maximum recursion depth exceeded while calling a Python object
2018-12-09 20:02:00 +01:00
benma
6c20340338 bitbox: fix seed command (#4906)
Entropy required to be 64 bytes.
2018-12-08 17:02:24 +01:00
SomberNight
0294844c11
labels plugin qt: only update corresponding window; disconnect signal 2018-12-08 06:56:18 +01:00
SomberNight
258b504000
qt main window: unregister network callbacks 2018-12-08 06:31:28 +01:00
SomberNight
c9482b5ea2
fix prev 2018-12-07 20:59:19 +01:00
SomberNight
c017f788ac
wallet: TxMinedInfo (merged TxMinedStatus and VerifiedTxInfo) 2018-12-07 20:47:28 +01:00
Janus
e1f4865844 digitalbitbox, trustedcoin: proxied http client
use common cross-thread HTTP method, which is put in network.py,
since that is where the proxy is. TrustedCoin tested successfully,
but DigitalBitbox can't be tested completely due to #4903

before this commit, digitalbitbox would not use any proxying
2018-12-07 19:19:40 +01:00
Janus
0169ec880c digitalbitbox: make constant strings 2018-12-07 19:18:33 +01:00
Janus
9a3f2e8fcc digitalbitbox: fix stretch_key bytes/str confusion 2018-12-07 18:41:40 +01:00
SomberNight
8c3920a0db
hw: check_libraries_available now gets version of incompatible libs
previously we would return early and the user would
just see "missing libraries"
2018-12-06 19:39:58 +01:00
ghost43
1546d65ebe
Merge pull request #4875 from matejcik/trezor-0.11
WIP: Trezor 0.11
2018-12-06 19:38:51 +01:00
SomberNight
20fa7fc2f7
trezor: fix sign_transaction prev_tx 2018-12-06 19:37:12 +01:00
SomberNight
9e86bc586c
trezor: only confirm passphrase when creating wallet
but not when decrypting
2018-12-06 19:37:11 +01:00
SomberNight
605982a2b7
android build: less verbose buildozer logs 2018-12-06 17:25:00 +01:00
SomberNight
2f7573850e
fix prev 2018-12-06 16:05:35 +01:00
SomberNight
8999e92f76
android build: fix warning re ndk_api
"NDK API target was not set manually, using the default of 21 = min(android-api=28, default ndk-api=21)"
2018-12-06 13:43:24 +01:00
SomberNight
a62e5d39ca
android build: add "how to deploy apk on phone" to readme 2018-12-06 05:10:24 +01:00
SomberNight
993374dce7
travis: build android apk 2018-12-06 05:09:08 +01:00
SomberNight
e8a8a17217
test_wallet_vertical: offline sign with old seed 2018-12-05 18:55:19 +01:00
matejcik
8e681c1723 trezor: update name (TREZOR -> Trezor) 2018-12-05 15:44:24 +01:00
matejcik
43acd09df8 trezor: support outdated firmware notifications
Outdated firmware error messages were originally raised from
create_client, which would mean that a client for an outdated device
would not be created.

This had a number of undesirable outcomes due to "client does not exist"
being conflated with "no device is connected".

Instead, we raise in setup_client (which prevents creating new wallets
with outdated devices, BUT shows them in device list), and python-trezor
also raises on most calls (which gives us an error message when opening
wallet and/or trying to do basically anything with it).

This is still suboptimal - i.e., there's currently no way for Electrum to
claim higher version requirement than the underlying python-trezor, and
so minimum_firmware property is pretty much useless ATM.
2018-12-05 14:26:19 +01:00
matejcik
8571cafcc8 trezor: call get_xpub with correct argument
`creating` indicates that this is a new wallet. Which is always the case
in `setup_device`
2018-12-05 14:24:32 +01:00
SomberNight
c3deb16a7d
exchange rate: fix coinbase
closes #4897
2018-12-05 12:26:03 +01:00
SomberNight
cc0db41879
qt history: speed up ensure_fields_available (faster startup) 2018-12-04 22:24:32 +01:00
SomberNight
e35f2c5bed
qt history list: fix #4896 2018-12-04 17:27:02 +01:00
SomberNight
923a9c36cb
util: Satoshis and Fiat should not be namedtuples
undo part of 37b009a342
due to json encoding problems
2018-12-04 16:44:50 +01:00
SomberNight
960855d0aa
wallet history fees: only calculate fees when exporting history
it's expensive, and it slows down startup of large wallets a lot
2018-12-04 16:17:22 +01:00
ThomasV
ebea5b0159 follow-up 5473320ce4: do not call get_full_history in constructor 2018-12-04 12:26:14 +01:00
ThomasV
bd5c82404d do not block load_wallet with watching_only warning 2018-12-04 11:52:31 +01:00
Marko Bencun
92a9cda4fc plugins/digitalbitbox: compatibility with firmware v5.0.0 2018-12-03 22:11:36 +01:00
SomberNight
059beab700
qt history list: small clean-up 2018-12-03 19:12:36 +01:00
SomberNight
ea235a1468
qt dark theme: use correct QR code icon (light/dark) 2018-12-03 17:51:05 +01:00
matejcik
8973bb6f71 Merge branch 'master' into trezor-0.11 2018-12-03 17:00:22 +01:00
Janus
0677ce6d52 qt: avoid app.palette().text().color(), doesn't work on dark style 2018-12-03 15:54:21 +01:00
Janus
72957f4d51 qt_standardmodel: only use proxymodel when appropriate 2018-12-03 15:35:54 +01:00
Janus
5473320ce4 qt: use QStandardItemModel 2018-12-03 15:35:54 +01:00
SomberNight
9350709f13
wallet creation: take care not to write plaintext keys to disk
when creating imported privkey wallets the privkeys
were written to disk unencrypted first, then overwritten with ciphertext
2018-12-03 13:02:14 +01:00
SomberNight
ff454ab29d
cli restore: fix imported privkeys with password
closes #4894
2018-12-03 12:46:12 +01:00
Calin Culianu
4386799fb0 follow-up 2018-12-02 15:20:32 +02:00
Calin Culianu
d2374d62aa UI Pet Peeve: Make Coins Tab -> Details pop up a tx dialog that actually includes the tx description as seen in UTXOList (if available) 2018-12-02 14:53:44 +02:00
SomberNight
74f6ac27af
wizard/hw: cap transport string
follow-up 32af83b7ae
2018-11-30 20:45:54 +01:00
Janus
ec5f406f49 plugins: labels: dump response if malformed sync server response 2018-11-30 19:16:07 +01:00
SomberNight
fe6367cbcd
network: validate donation address for server 2018-11-30 18:56:35 +01:00
SomberNight
ed22f968f9
text gui: fix network event handler 2018-11-30 17:18:06 +01:00
SomberNight
73e2b09ba8
blockchain: check best chain on disk is consistent with checkpoints
had a corrupted mainnet datadir that had testnet blockchain_headers file
(I had probably corrupted it myself but electrum could not recover from it)
2018-11-30 16:36:37 +01:00
ThomasV
2484c52611
Merge pull request #4838 from SomberNight/keystore_pw_hash2b
keystore: stronger pbkdf for encryption
2018-11-30 11:48:03 +01:00
ThomasV
1165d3f330 update version number 2018-11-30 11:23:01 +01:00
SomberNight
bddea809ec
storage/blockchain: use os.replace 2018-11-30 04:08:02 +01:00
ThomasV
863ee984fe wallet: cache NaN coin prices, clear cache on new history 2018-11-29 20:47:26 +01:00
SomberNight
ee287740a7
coldcard: fix p2pkh signing for new fw (1.1.0)
PSBT was serialised incorrectly but old fw did not complain
2018-11-29 20:28:27 +01:00
ThomasV
1253e3db1d
Merge pull request #4873 from SomberNight/android_docker
android docker build
2018-11-29 16:34:49 +01:00
ThomasV
d7bf8826fc rename contrib/build-osx as contrib/osx. Move QRReader submodule there. 2018-11-29 11:39:57 +01:00
Calin Culianu
db89286ec3 [macOS] Added QR scanner facility using platform-native helper app. 2018-11-29 10:15:51 +01:00
SomberNight
d0e6b8c89d
hw: fix passphrase dialog with confirmation
closes #4876
2018-11-28 20:54:57 +01:00
SomberNight
243a0e3cf1
android docker: make_apk optionally takes "release" as arg 2018-11-28 19:40:29 +01:00
SomberNight
99325618a6
wallet: add FIXME re fiat coin_price calculation 2018-11-28 15:52:38 +01:00
ThomasV
04571d3b20
Merge pull request #4724 from un1t/master
use system language by default
2018-11-28 13:05:42 +01:00
ThomasV
d062548e41
Merge pull request #4861 from SomberNight/blockchain_fork_ids
blockchain: generalise fork handling and follow most work chain
2018-11-28 12:54:57 +01:00
SomberNight
e12af33626
wallet: cache more in get_tx_fee
closes #4879
2018-11-28 12:35:53 +01:00
SomberNight
4a7ce238fd
qt history list: fix sort order of fiat columns 2018-11-27 21:32:55 +01:00
SomberNight
d4d5e32c91
qt history list: fix Qt.UserRole collision 2018-11-27 21:15:31 +01:00
ThomasV
c5b8706225 simplify test 2018-11-27 18:34:36 +01:00
ThomasV
6bf48d0506
Merge pull request #4872 from spesmilo/qt_fiat_fixes
qt history view custom fiat input fixes
2018-11-27 18:16:05 +01:00
Janus
37b009a342 qt history view custom fiat input fixes
previously, when you submitted a fiat value with thousands separator,
it would be discarded.
2018-11-27 17:00:26 +01:00
matejcik
c33c907330 trezor: update to trezor 0.11.0 2018-11-27 15:34:19 +01:00
matejcik
5411ad9633 plugins can also check maximum library version 2018-11-27 15:32:33 +01:00
SomberNight
a34d42492d
android docker build 2018-11-27 03:53:22 +01:00
SomberNight
b21064f16f
android: don't use external storage
so that we don't need the extra permission.
also because phones these days have enough internal storage for
the headers; and maybe it's better even for security reasons to
store it there.
no upgrade path is provided for the headers stored on external storage,
we will litter the filesystem and leave them there. they will be
downloaded again into internal storage.
2018-11-26 17:54:07 +01:00
SomberNight
29b697df1a
android: runtime permission dialog for camera 2018-11-26 17:54:07 +01:00
SomberNight
f095b35663
android: build apk using new python3 p4a toolchain 2018-11-26 17:54:05 +01:00
SomberNight
a53dded50f
bitcoin: avoid floating point in int_to_hex 2018-11-26 01:34:23 +01:00
SomberNight
d7c5949365
prefer int.from_bytes over int('0x'+hex, 16) 2018-11-26 01:16:26 +01:00
SomberNight
f04e5fbed6
crypto: fix pkcs7 padding check
related: ricmoo/pyaes#22

in practice, the only strings we would incorrectly accept are
(certain length of) all zero bytes
2018-11-22 18:21:19 +01:00
SomberNight
65ce3deeaa
blockchain: chain hierarchy based on most work, not length 2018-11-22 17:13:43 +01:00
SomberNight
141ff99580
blockchain.py: generalise fork ids to get rid of conflicts 2018-11-22 16:57:22 +01:00
SomberNight
a8e6eaa247
blockchain: fix difficulty retarget
"target" is a 256 bit int, but the "bits" field in the block headers
that is used to represent target is only 32 bits.
We were checking PoW against the untruncated target value, which is a
slightly larger value than the one that can actually be represented,
and hence we would have accepted a slightly lower difficulty chain
than what the consensus requires.
2018-11-22 16:52:51 +01:00
SomberNight
55963bd092
network: oneserver should be bool
fix #4858
2018-11-20 11:59:06 +01:00
SomberNight
36f64d1ad9
bitcoin/ecc: some more type annotations 2018-11-18 22:07:27 +01:00
SomberNight
5376d37c24
history export: include tx fee
closes #3504
2018-11-18 16:46:07 +01:00
SomberNight
32af83b7ae
wizard/hw: show transport type when listing HWDs 2018-11-16 19:03:25 +01:00
SomberNight
eba97f74b4
decorate some methods with @profiler to debug slow startup 2018-11-16 14:39:22 +01:00
ghost43
4d62963efe
qt: count wizards in progress (#4349)
fixes #4348
2018-11-14 22:39:49 +01:00
SomberNight
f767d41409
tests: spanish test case for mnemonic.py, and refactoring 2018-11-14 18:58:27 +01:00
Calin Culianu
75e30ddc9d Show description (label) in TxDialog screen when opened from History (#4775) 2018-11-14 16:43:58 +01:00
SomberNight
e1c66488b1
paymentrequest: don't show PaymentAck to user
mainly because the main "merchant" using bip70 is bitpay, and they
are failing all the PaymentAcks due to the tx is using RBF...
no need to confuse users.

follow-up 1686a97ece
2018-11-14 16:33:41 +01:00
ThomasV
f7f4fef156
Merge pull request #4827 from SomberNight/android_oneserver
implement oneserver option for kivy
2018-11-14 16:13:05 +01:00
SomberNight
e059867314
paymentrequest: be explicit about only allowing "addresses" 2018-11-14 16:04:43 +01:00
ThomasV
a266de6735 PrintError: display verbosity filter 2018-11-14 13:16:08 +01:00
SomberNight
e1b85327be
transaction: clean-up multisig_script 2018-11-14 00:37:03 +01:00
SomberNight
e04e8d2365
plugins: when loading plugins, use newer importlib mechanism
fixes #4842
2018-11-11 23:55:34 +01:00
SomberNight
48b0de7871
keystore: stronger pbkdf for encryption 2018-11-10 16:36:41 +01:00
SomberNight
aceb022f9d
crypto: more type annotations 2018-11-10 13:30:34 +01:00
SomberNight
a6a003a345
RBF batching: fix logic bug 2018-11-09 22:47:41 +01:00
SomberNight
2ab8234e9c
RBF batching: smarter fee handling 2018-11-09 20:04:06 +01:00
SomberNight
d905f0e55e
RBF batching: for now, let user deal with fee problems (honour slider) 2018-11-09 19:15:46 +01:00
SomberNight
436f6a4870
qt history export: include fiat value in csv 2018-11-09 18:48:12 +01:00
SomberNight
71ac3bb305
RBF batching: some fixes 2018-11-09 17:56:42 +01:00
ThomasV
f55db2f90b
add batch_rbf option to Qt GUI 2018-11-09 17:29:31 +01:00
ThomasV
2b8d801b36 if possible, batch new transaction with existing rbf transaction 2018-11-09 16:33:29 +01:00
SomberNight
bd32b88f62
introduce UserFacingException
we should not raise generic Exception when wanting to communicate with
the user. it makes distinguishing programming errors and messages hard,
as the caller will necessarily need to catch all Exceptions then
2018-11-08 19:46:15 +01:00
SomberNight
dace2e5495
trezor: don't let bridge transport failing block all other transports
[trezor] connecting to device at bridge:hid...
[trezor] connected to device at bridge:hid...
Traceback (most recent call last):
  File "...\electrum\electrum\base_wizard.py", line 255, in choose_hw_device
    u = devmgr.unpaired_device_infos(None, plugin, devices=scanned_devices)
  File "...\electrum\electrum\plugin.py", line 501, in unpaired_device_infos
    client = self.create_client(device, handler, plugin)
  File "...\electrum\electrum\plugin.py", line 374, in create_client
    client = plugin.create_client(device, handler)
  File "...\electrum\electrum\plugins\trezor\trezor.py", line 124, in create_client
    client = self.client_class(transport, handler, self)
  File "...\electrum\electrum\plugins\trezor\client.py", line 7, in __init__
    ProtocolMixin.__init__(self, transport=transport)
  File "...\Python36-32\lib\site-packages\trezorlib\client.py", line 444, in __init__
    self.init_device()
  File "...\Python36-32\lib\site-packages\trezorlib\client.py", line 454, in init_device
    self.features = expect(proto.Features)(self.call)(init_msg)
  File "...\Python36-32\lib\site-packages\trezorlib\client.py", line 115, in wrapped_f
    ret = f(*args, **kwargs)
  File "...\Python36-32\lib\site-packages\trezorlib\client.py", line 129, in wrapped_f
    client.transport.session_begin()
  File "...\Python36-32\lib\site-packages\trezorlib\transport\__init__.py", line 42, in session_begin
    self.open()
  File "...\Python36-32\lib\site-packages\trezorlib\transport\bridge.py", line 69, in open
    raise TransportException('trezord: Could not acquire session' + get_error(r))
trezorlib.transport.TransportException: trezord: Could not acquire session (error=400 str=wrong previous session)
[DeviceMgr] error getting device infos for trezor: trezord: Could not acquire session (error=400 str=wrong previous session)
2018-11-08 17:07:05 +01:00
SomberNight
47b6d3c52c
wizard: make native segwit (bech32) the default for bip39/hw 2018-11-08 13:01:40 +01:00
ThomasV
3d4773b161 wizard: make segwit/bech32 the default choice during wallet creation 2018-11-07 15:03:54 +01:00
SomberNight
7d114ff32d
cpfp: don't reuse address 2018-11-07 14:48:33 +01:00
ThomasV
39fb5b8f58 use blockstream.info as default block explorer 2018-11-07 12:38:29 +01:00
neoCogent
6d5b28a9c5 add blockstream.info as explorer option (#4829) 2018-11-07 02:18:00 +01:00
SomberNight
8b61d18a9f
transaction.serialize_output: use namedtuple fields 2018-11-06 17:04:12 +01:00
SomberNight
5d52dc204c
coldcard: fix spending when there is no change
follow-up 9037f25da1
2018-11-06 16:17:18 +01:00
SomberNight
1686a97ece
bip70 PRs: use aiohttp instead of requests. use proxy. small fixes. 2018-11-05 19:31:17 +01:00
SomberNight
1b46866e34
qt: re sweeping, minor clean-up 2018-11-05 01:53:35 +01:00
SomberNight
a89e67eeed
network: trivial clean-up 2018-11-04 19:25:23 +01:00
SomberNight
160bc93e26
implement oneserver option for kivy
closes #4826
2018-11-03 17:21:38 +01:00
SomberNight
7a46bd1089
network: minor clean-up 2018-11-03 17:11:08 +01:00
SomberNight
908c979338
network: update hardcoded mainnet servers 2018-11-02 20:38:26 +01:00
SomberNight
1a5c77aa82
follow-up prev 2018-11-02 20:37:37 +01:00
SomberNight
e37da62a1c
fix most "scripts"
related: #4754
2018-11-02 20:14:59 +01:00
SomberNight
5c4a6c0f2b
rm network.add_job
current implementation is prone to race, and is not used anyway
2018-11-02 16:06:47 +01:00
SomberNight
c2ecfaf239
move event loop construction to daemon 2018-11-01 16:30:03 +01:00
SomberNight
ca8eae919f
daemon: clarify error print 2018-10-31 19:59:07 +01:00
SomberNight
0862fdb9a9
plugins: somewhat clearer exception is loading plugin fails
see #4817 (issuecomment-434778055)
2018-10-31 18:33:28 +01:00
SomberNight
386e0d560e
wizard,hw: tell user about errors during plugin init
see #4817 (issuecomment-434765570)
2018-10-31 17:58:47 +01:00
SomberNight
4f7283a3b0
expose electrum version as __version__ 2018-10-31 16:21:04 +01:00
SomberNight
1c63bca2c7
follow-up prev 2018-10-30 19:19:46 +01:00
SomberNight
5b4fada2a0
fix some network.get_transaction calls
see #4814 (issuecomment-434392195)
2018-10-30 19:07:37 +01:00
SomberNight
f53b480f1c
wallet: more powerful add_input_info
tangentially related: #4814

also recognise that input is_mine if tx was not fully parsed
but we have the prevout UTXO
2018-10-29 21:34:44 +01:00
SomberNight
f819e9b6f4
openalias: minor clean-up 2018-10-29 17:09:23 +01:00
SomberNight
5e0179dac4
qt console: expose more refs, and fix auto-complete for >2 depth 2018-10-29 00:20:45 +01:00
SomberNight
9037f25da1
kill old-style namedtuples 2018-10-28 00:28:29 +02:00
SomberNight
34569d172f
wallet: make importing thousands of addr/privkeys fast
fixes #3101
closes #3106
closes #3113
2018-10-27 17:36:10 +02:00