ThomasV
d7dc804b32
fix iteration bug
2017-09-15 12:07:57 +02:00
ThomasV
63a1db1172
make xpub/xprv version information user-visible
2017-09-13 11:33:28 +02:00
ThomasV
d9f2edf6b0
support native segwit transactions
2017-09-13 11:32:40 +02:00
ThomasV
6b871a7cfd
mmonir python3 fix
2017-09-04 14:21:02 +02:00
ThomasV
4d3e079778
rename bc_address functions
2017-08-31 10:21:57 +02:00
ThomasV
794baa16c8
move address_to_script to bitcoin.py
2017-08-31 09:59:40 +02:00
ThomasV
ab15ff3a00
updates for python3
2017-08-26 08:28:24 +02:00
ThomasV
c3388d9677
misc python3 updates:
...
- use jsonrpclib-pelix
- update the kivy gui
- update plugins
2017-08-26 08:28:24 +02:00
Dmitry Sorokin
362ca96f38
x509 fixes and plugins
2017-08-26 08:28:24 +02:00
Dmitry Sorokin
0693403358
sending fixed
2017-08-26 08:28:24 +02:00
Dmitry Sorokin
f02d18226b
misc ui and lib fixes for py3
2017-08-26 08:27:47 +02:00
Dmitry Sorokin
d304ccdf17
py3 in qtgui
2017-08-26 08:27:47 +02:00
Dmitry Sorokin
5be78950ca
py3
2017-08-26 08:27:47 +02:00
Sebastian Volland
d95e79efab
add missing import
2017-08-16 19:11:07 +02:00
ThomasV
08fab753e8
change default value of confirmed_only, spending unconfirmed coins
2017-08-08 06:03:47 +02:00
ThomasV
0c6de8ff56
fix undo_verification
2017-07-20 06:38:49 +02:00
ThomasV
9576f8510d
undo verified tx when swapping chains
2017-07-19 06:50:48 +02:00
ThomasV
9c28489bc0
fix wallet.can_export
2017-07-10 09:46:11 +02:00
ThomasV
b02ce2d02c
disable locktime until keepkey firmware is updated
2017-07-09 21:06:21 +02:00
ThomasV
777a3aa8bf
Fixes for TrustedCoin plugin:
...
- reset billing_info after broadcast
- when bumping tx fee, do not use Trustedcoin output
2017-07-06 16:03:21 +02:00
ThomasV
faa17f9818
Option to send only confirmed coins ( fix #2395 )
2017-07-03 07:46:27 +02:00
ThomasV
cad3798f84
follow-up previous commit
2017-06-30 18:52:49 +02:00
ThomasV
7ea2cb41e8
fix #2509 : reset pubkeys to None when x_pubkeys are unsorted
2017-06-30 18:31:37 +02:00
ThomasV
853b6169ed
hardware wallet support for locktime
2017-04-19 15:02:25 +02:00
ThomasV
6fc6d1ec7d
timelock tx to current height. see #2349
2017-04-19 11:55:31 +02:00
ThomasV
0bc777a10c
follow-up previous commit
2017-04-05 09:52:52 +02:00
ThomasV
50587c7a24
fix #2353 : show error when sweeping dust
2017-04-05 09:17:42 +02:00
ThomasV
57baed4728
check parameter type of create_new_address
2017-04-04 13:52:16 +02:00
ThomasV
1d84029173
input_script: return txin.scriptSig if available. replace txin.is_coinbase with type. fixes #2321
2017-03-21 09:08:16 +01:00
ThomasV
737a7f0bfb
fix #2302 : signing with imported wallet
2017-03-20 10:47:03 +01:00
ThomasV
107adb186f
sort unconfirmed transactions by height
2017-03-15 18:05:05 +01:00
ThomasV
584b19a11e
fix for older formats
2017-03-11 14:54:03 +01:00
ThomasV
c506c3e720
fix password message issue #2277
2017-03-11 11:32:00 +01:00
ThomasV
ff9d00ba1d
minor fix: do_update_fee
2017-03-06 21:05:48 +01:00
ThomasV
dcffea150e
store contacts and invoices in wallet file. fix #1482
2017-03-06 17:12:27 +01:00
ThomasV
411832c4ce
cleanup storage and fix tracvis test
2017-03-06 08:33:35 +01:00
ThomasV
fb3e09c24e
better error message if fee estimates are missing
2017-03-05 20:39:00 +01:00
ThomasV
9cb576a88c
fix multisig update_password
2017-03-04 10:30:05 +01:00
ThomasV
a90431320c
fix sweep
2017-03-02 11:57:24 +01:00
ThomasV
fcc92c1ebd
Wallet file encryption:
...
- a keypair is derived from the wallet password
- only the public key is retained in memory
- wallets must opened and closed explicitly with the daemon
2017-03-01 13:58:04 +01:00
ThomasV
ff39068867
new wallet structure:
...
- store addresses instead of pubkeys
- derive pubkeys only for serialization
- fix #2024
2017-02-26 08:33:44 +01:00
Johann Bauer
03fc29c4ac
Remove newlines from transaction labels
...
Closes : #2176
2017-02-19 22:56:31 +01:00
shsmith
df733e8e4c
fix AttributeError: 'Standard_Wallet' object has no attribute 'account'
...
If you use wallet.change_gap_limit with a value below the current gap
limit, you get this exception:
`>> wallet.change_gap_limit(1)
Traceback (most recent call last):
File "lib\wallet.py", line 1455, in change_gap_limit
elif value >= self.min_acceptable_gap():
File "lib\wallet.py", line 1479, in min_acceptable_gap
addresses = self.account.get_receiving_addresses()
AttributeError: 'Standard_Wallet' object has no attribute 'account'
>> `
2017-02-11 12:29:28 -08:00
ThomasV
15b404b9de
add CPFP (child pays for parent) dialog to the Qt GUI
2017-02-01 12:26:30 +01:00
ThomasV
aed2b04dbd
return txid for unsigned segwit transactions
2017-01-31 16:32:11 +01:00
ThomasV
af54ba023b
add wallet.is_segwit
2017-01-31 11:56:59 +01:00
ThomasV
6bfbc9a718
fix: replace remaining occurences of public_key_to_bc_address
2017-01-29 06:34:35 +01:00
ThomasV
f937472928
fix typos
2017-01-26 19:23:17 +01:00
ThomasV
ce11a2fac5
replace segwit wallet class with custom xpub type
2017-01-26 13:53:31 +01:00
ThomasV
3a64ec0f2e
Initial segwit support (testnet only)
2017-01-25 21:42:15 +01:00
ThomasV
9302cea725
fix #2107
2017-01-10 07:55:05 +01:00
ThomasV
a2e7fc32ef
Add fee slider class with network callback.
2017-01-09 12:36:15 +01:00
ThomasV
2450c1d481
fix typo
2017-01-08 13:14:15 +01:00
ThomasV
7af5d42324
qt: show addresses and utxos in separate tabs
2017-01-08 13:00:57 +01:00
ThomasV
d042d6e970
initial testnet support (petrkr)
2017-01-07 16:58:59 +01:00
ThomasV
253df89af5
fix #2101
2017-01-06 18:12:10 +01:00
ThomasV
d09e91e631
Show fee slider for static fees too. Add fee slider to RBF dialog ( fix #2083 )
2017-01-06 10:45:05 +01:00
ThomasV
dcfa7b508a
fix password issue #2097
2017-01-05 06:20:02 +01:00
ThomasV
a8c23f9bf0
always display a receiving address ( fix #2031 )
2017-01-04 19:09:14 +01:00
ThomasV
1e24dbd94b
fix #2096 (variable name)
2017-01-04 18:08:58 +01:00
ThomasV
63cff71f91
workaround inefficiency in add_input_info
2017-01-04 15:17:11 +01:00
ThomasV
0dabfd4764
do not save transactions until wallet is closed
2017-01-04 00:18:51 +01:00
ThomasV
65ee3416f6
rename P2PK to P2PKH to avoid confusion
2017-01-02 11:02:36 +01:00
ThomasV
e123774ea8
Improve 'send all coins' function:
...
* do use coin chooser when sending all coins (fixes #2000 )
* allow "!" syntax for multiple outputs (fixes #1698 )
2016-12-31 16:29:18 +01:00
ThomasV
a660590a70
fix #2034
2016-12-20 16:53:01 +01:00
ThomasV
d61ccd4275
throttle send_requests
2016-11-09 13:23:10 +01:00
ThomasV
191ed8cc05
fix #2027
2016-11-08 16:59:15 +01:00
ThomasV
af55fec764
fix #2022
2016-11-07 10:22:50 +01:00
ThomasV
f7cf90d268
fix #2007
2016-10-27 14:32:27 +02:00
ThomasV
92d2395e3d
add_hw_info only if a hw wallet is there. that should fix #1995
2016-10-24 10:34:55 +02:00
ThomasV
86c3655080
improve bump_fee ( fix #1985 )
2016-10-21 12:59:55 +02:00
ThomasV
15546d817c
remove dust output when bumping fee
2016-10-17 14:46:51 +02:00
ThomasV
9d2e322760
revert 98b1271 (it freezes the gui on retsore)
2016-10-17 08:47:43 +02:00
ThomasV
98b12715a9
remove while loop from wallet.synchronize; we are already in a job
2016-10-17 06:58:01 +02:00
ThomasV
5e92e09044
fix pubkey ordering in multisig wallets. fix #1975
2016-10-16 19:17:32 +02:00
ThomasV
4cc76c8a64
bump_fee: fix error message
2016-10-15 10:57:18 +02:00
ThomasV
bab15a245b
simplification (get rid of get_mnemonic)
2016-10-14 12:09:43 +02:00
ThomasV
e64f630433
bump_fee: add_input_info is needed
2016-10-14 05:38:43 +02:00
ThomasV
f225a26952
minor fix: varname
2016-10-12 12:07:32 +02:00
ThomasV
f0611c4569
fix pubkey indexing in imported wallets
2016-10-12 12:03:56 +02:00
ThomasV
1e518e7b64
add number of confirmations in payment request status. fixes #1757
2016-10-10 19:13:34 +02:00
ThomasV
5d44474aeb
bound number of tx inputs in sweep
2016-10-08 11:40:03 +02:00
ThomasV
1e55f4fda0
fix fee computation in sweep
2016-10-08 11:17:53 +02:00
Serge Victor
55d392c274
Spread payment requests to subdirs
...
Currently Electrum stores all payment requests in main requests
directory. It's not going to be efficient when we have thousands of
thousands of payment requests. This patch spreads that files across
two level of subdirectories.
2016-10-01 05:40:40 +00:00
ThomasV
0fd813f229
fix #1938
2016-09-29 11:50:32 +02:00
ThomasV
fa487ae0ca
fix: get_public_keys method of p2pk wallets
2016-09-29 09:47:45 +02:00
ThomasV
68ed60ca87
fix: check_password method of Multisig wallets
2016-09-28 17:54:35 +02:00
Serge Victor
07280730d4
Intoducing websocket_announce configuration
...
Currently electrum daemon runs websocket server on a configured host and
port and sends the same information to merchant payments. There is
likely that those two may be different, when websocket traffic is being
reverse proxied and sent over via different hosts.
This patch introduces two fully optional parameters,
websocket_server_announce and websocket_port_announce, which when
set, are sent to the merchant payments instead of websocket_server and
websocket_port values.
2016-09-22 18:57:23 +00:00
ThomasV
7982cadd22
follow-up pevious commit
2016-09-22 13:38:59 +02:00
ThomasV
0d671e67c5
sign_transaction: do not stop if a keystore raises an exception
2016-09-22 10:57:28 +02:00
ThomasV
08543584c5
fix cold storage signing for imported wallets
2016-09-21 16:23:24 +02:00
Serge Victor
f2820944f1
Adding possibility of websockets configuration
...
Up to now, websockets configuration was possible for the daemon only,
this patch passes that information to the client via json file
produced with the payment request.
2016-09-21 10:54:09 +00:00
ThomasV
7a47d2341e
fix bug in trustedcoin constructor
2016-09-02 10:28:52 +02:00
ThomasV
b1b15f510c
Fix can_sign and cold storage
2016-09-01 19:45:01 +02:00
ThomasV
abeb781879
fix #1916
2016-09-01 09:23:05 +02:00
ThomasV
e38abb95d7
minor fix tx status
2016-08-31 18:45:58 +02:00
ThomasV
16ed48d52d
Format upgrade: increment seed_version to make sure that old versions of Electrum refuse to open new wallet files.
2016-08-31 15:04:57 +02:00
ThomasV
ab53ee27f1
fix bug with change addresses
2016-08-27 22:24:41 +02:00
ThomasV
86e23d9989
save wallet label in keystore, to facilitate pairing
2016-08-26 11:45:12 +02:00
ThomasV
80675121ce
allow several hardware cosigners in the same wallet
2016-08-22 12:50:24 +02:00
ThomasV
afe39330dc
update wallet format again, for keystore
2016-08-21 11:58:15 +02:00
ThomasV
8423f8394f
dynfees: set default
2016-08-20 09:16:03 +02:00
ThomasV
24a9ff3fef
simplify wallet types
2016-08-19 17:35:58 +02:00
ThomasV
f6e393d7b6
fix: import addresses and private keys
2016-08-17 10:39:30 +02:00
ThomasV
a088940496
add Wallet.can_import
2016-08-16 12:11:39 +02:00
ThomasV
b87c5d12fa
- fix sign/verify messages
...
- fix hardware wallet tx_outputs
2016-08-14 13:03:52 +02:00
ThomasV
b0afdf4614
fix command line: create, restore, importprivkey
2016-08-12 11:56:27 +02:00
ThomasV
1159f85e05
Major refactoring
...
- separation between Wallet and key management (Keystore)
- simplification of wallet classes
- remove support for multiple accounts in the same wallet
- add support for OP_RETURN to Trezor plugin
- split multi-accounts wallets for backward compatibility
2016-08-12 11:02:28 +02:00
ThomasV
f061fe047d
add lock to storage.write
2016-07-07 06:54:57 +02:00
ThomasV
824f86475e
add get_master_public_key to all wallets
2016-07-01 17:46:11 +02:00
ThomasV
59825c913c
follow up c6a46df158
2016-07-01 17:32:13 +02:00
ThomasV
c6a46df158
fix issue #1853
2016-07-01 16:19:26 +02:00
ThomasV
342d6633a6
wizard: add capability to restore multisig
2016-07-01 11:44:26 +02:00
ThomasV
9182392b55
kivy: separate base wizard class from gui
2016-06-18 16:32:20 +02:00
ThomasV
9896718f09
get_tx_info: fix types
2016-06-09 18:10:13 +02:00
ThomasV
8886e5098a
fix get_tx_info
2016-06-08 14:15:17 +02:00
ThomasV
5af7139598
kivy: handle 'verified' event
2016-06-08 12:55:42 +02:00
ThomasV
7f7aa97e2e
tx dialog: fix confirmation time estimate
2016-06-08 11:22:58 +02:00
ThomasV
b94a7920af
factorize code used for tx dialogs
2016-06-08 11:06:51 +02:00
ThomasV
a07a3f748e
Qt GUI: let users type tx output in script language
2016-06-07 09:57:24 +02:00
ThomasV
9da2076328
fix: relayfee is per kb
2016-06-04 09:33:26 +02:00
ThomasV
0843aaafb5
gat_wallet_delta: reverse sign of returned fee
2016-06-02 11:30:39 +02:00
ThomasV
79fbb5edce
get_tx_delta: do not return fee if tx is not mine
2016-06-02 11:15:43 +02:00
ThomasV
403fbdd39e
rename is_send -> is_mine
2016-06-02 10:40:16 +02:00
ThomasV
016d733c0f
low_fee threshold
2016-06-01 05:41:08 +02:00
ThomasV
8e0d1f1e44
fix low_fee value
2016-06-01 05:39:29 +02:00
ThomasV
2cf4795250
dynamic fees: define fee levels using expected confirmation times
2016-05-31 20:26:09 +02:00
ThomasV
599906eef6
show warning icon if unconfirmed tx has low fee. fixes 1798
2016-05-30 18:26:58 +02:00
ThomasV
076ecb2680
move get_status to synchronizer
2016-05-30 16:11:49 +02:00
ThomasV
59d3910882
fix utxo_can_sign
2016-05-29 20:36:52 +02:00
ThomasV
1a46a795a5
detect non-final transactions, and transactions with unconfirmed inputs
2016-05-29 19:53:04 +02:00
ThomasV
f01f931e83
add extra checkbox for RBF
2016-05-23 17:34:33 +02:00
ThomasV
18a2498b76
show UTXOs in address tab
2016-05-23 11:52:38 +02:00
ThomasV
3314b3acc7
Use dynamic fees by default, show fee slider in send tab, and discretize fee levels.
2016-05-20 15:30:39 +02:00
ThomasV
d83058e2e8
raise the maximum imposed on dynamic fees
2016-05-20 12:25:36 +02:00
ThomasV
bc1bef60a0
support Replace-By-Fee in GUI
2016-05-20 10:38:48 +02:00
ThomasV
bca0f31fca
coinchooser methods should not belong in wallet class
2016-03-10 16:37:45 +01:00
ThomasV
a57274930b
kivy's python-for-android can import stat
2016-03-10 10:39:47 +01:00
ThomasV
f60c949911
storage: do not raise error if file is empty
2016-03-10 10:17:03 +01:00
ThomasV
94664566e7
kivy: fix watching-only issue
2016-03-05 04:34:13 +01:00
ThomasV
d58ec9a570
kivy: support old-type seed phrases in wizard
2016-03-01 20:23:30 +01:00
ThomasV
96f144eb03
make sure the broadcast tx thread always times out
2016-02-25 08:55:06 +01:00
ThomasV
305843999e
Relicensing
2016-02-24 10:20:30 +01:00
ThomasV
f97fdf3ba8
labels plugin: use get_fingerprint
2016-02-22 15:44:31 +01:00
ThomasV
a7d3175799
replace semantically relevant instances of 'assert' with exceptions
2016-02-15 09:33:38 +01:00
ThomasV
a1ef7c4bb6
get_sorted_request: sort by address index, not by timestamp
2016-02-15 08:23:34 +01:00
ThomasV
b7c4492d3b
get_request_status: return PR_UNKNOWN if request is unknown
2016-02-15 04:59:20 +01:00
Neil Booth
b54ba556bc
Wallet: encapsulate wallet_types
...
Previously plugins would append lines to it and wizard.py would
hack into it too.
2016-02-08 22:32:49 +09:00
Neil Booth
317e6cea32
Multisig: revert part of "reformatting"
...
Broken by fe9ec6de06
2016-02-06 18:02:21 +09:00
ThomasV
fab001833f
rm print debug statement
2016-02-03 11:02:17 +01:00
ThomasV
8b68a742d1
follow up to 2a507b91c1
2016-02-03 11:01:36 +01:00
ThomasV
2a507b91c1
fix #1666
2016-02-03 10:29:31 +01:00
ThomasV
3ee61c4c6e
define wallet.dummy_address method
2016-02-02 19:56:34 +01:00
ThomasV
eb36884c66
move estimate_fee back to wallet
2016-02-02 12:26:28 +01:00
ThomasV
fe9ec6de06
reformatting
2016-01-26 13:51:47 +01:00
ThomasV
9b09c55356
dynamic fees: use hardcoded value as upper bound
2016-01-25 16:46:50 +01:00
Neil Booth
a0ef42d572
Fix typo causing change address reuse
2016-01-24 11:16:05 +09:00
Neil Booth
efa1efedca
Hardware wallets: limit change outputs to 1
2016-01-23 22:05:08 +09:00
Neil Booth
9729f5b6d3
get_account_addresses: None->all user-visible a/cs
...
Otherwise we can end up sweeping to a non-visible address.
2016-01-23 18:07:02 +09:00
Neil Booth
83a531b3e4
Revert "Sweep keys: don't default to hidden address"
...
This reverts commit 605cc47a3d .
2016-01-23 17:32:43 +09:00
Neil Booth
605cc47a3d
Sweep keys: don't default to hidden address
...
The issue is electrum uses None as the current account
to mean the default account. This just gave rise to
all addresses being listed including in hidden accounts.
Really "None" as used in main_window.py and history_widget.py
means "a single unspecified account" not "all accounts".
So implement the idea of a default account, and don't let
a hidden account be the default one.
2016-01-23 17:17:10 +09:00
ThomasV
d200b236ae
replace tx.input, tx.output by methods, so that deserialize calls are encapsulated
2016-01-17 15:04:11 +01:00
ThomasV
4f0631d78d
don't use assert is is_xprv (weird kivy bug)
2016-01-16 15:05:29 +01:00
Neil Booth
15707b5590
Coin chooser: use deterministic randomness
2016-01-16 18:55:50 +09:00
ThomasV
3b10bd8307
follow up eb085c2e23
2016-01-15 09:10:04 +01:00
Neil Booth
641f23229d
Add multiple change output preference
...
Limit to 3 if enabled.
2016-01-15 14:54:26 +09:00
ThomasV
0d52911561
define constants for tx output types
2016-01-14 17:15:50 +01:00
ThomasV
da8fce1914
if available, use relayfee from server instead of hard coded value
2016-01-14 16:06:22 +01:00
ThomasV
58fe42cea2
revert commit 4ba4611599 for relicencing
2016-01-12 09:35:45 +01:00
Neil Booth
b120dd8849
Fix root derivation changes for BIP44_Wallets
...
Wallet keys use root_name
Also typo xub -> xpub
2016-01-11 11:39:56 +09:00
ThomasV
c47e3499ce
rename wallet methods
2016-01-10 12:56:15 +01:00
Neil Booth
cda92cd12c
Move cosigner methods to BIP32_RD_Wallet
2016-01-10 20:37:22 +09:00
Neil Booth
637164d335
Introduce BIP32_RD_Wallet
...
Represents a BIP_32 wallet with a root derivation.
This permits us to see address derivation for NewWallet types
in the QT Gui.
2016-01-10 20:20:04 +09:00
Neil Booth
3d781a2d1b
BIP32_HD_Wallet: Fix address derivation
...
Unfortunately there was root_name and root_derivation confusion
in the past for classes derived from BIP_32_HD_Wallet.
Address derivation used root_name and so would begin with 'x/'
whereas it should have begun with root_derivation, and so started
with 'm/'.
This fixes that old wart and removes some fudges from the trezor
code that used to work around it.
2016-01-10 20:06:13 +09:00
Neil Booth
4743f033b4
Fix the backwards-compat 'next_account2' code
2016-01-10 19:26:17 +09:00
Neil Booth
5baa5feb11
Put restore_wallet_class back in the derived classes
2016-01-10 18:41:20 +09:00
Neil Booth
9946feb352
Have BTChipWallet derive from BIP44_Wallet
...
Narrowing the gap with the Trezor code a bit
2016-01-10 17:38:39 +09:00
Neil Booth
81d641a13f
Show BIP32 path for BIP32_HD_Wallet classes
...
from right-click Show Public Keys menu.
Fixes #1598
2016-01-10 14:53:00 +09:00
ThomasV
5915b9b7e1
restore action-driven wizard logic
2016-01-07 00:55:23 +01:00
ThomasV
90a2fc1379
Revert "Fix MultiSig wallet creation."
...
This reverts commit 21038843ea .
2016-01-07 00:46:34 +01:00
ThomasV
bdb4782b36
Revert "Install wizard multisig improvement"
...
This reverts commit 4e7c6e5d16 .
That commit breaks the separation between make_seed and add_cosigners
2016-01-06 12:01:25 +01:00
Neil Booth
4e7c6e5d16
Install wizard multisig improvement
...
Preserves independence of wizard.py from wallet type;
the dependence is expressed entirely through actions
Fixes #1611
2016-01-06 19:31:12 +09:00
Neil Booth
21038843ea
Fix MultiSig wallet creation.
...
Fixes #1603
2016-01-05 21:22:43 +09:00
ThomasV
bd309cff49
restore default labels
2016-01-04 15:40:57 +01:00
Neil Booth
f3e6bf0280
Passphrase-related fixes
...
Move normalize code to one place on the wallet
Passphrases don't have password strength meter
2016-01-03 09:03:07 +09:00
Neil Booth
21bf5a8a84
Better support for USB devices
...
Benefits of this rewrite include:
- support of disconnecting / reconnecting a device without having
to close the wallet, even in a different USB socket
- support of multiple keepkey / trezor devices, both during wallet
creation and general use
- wallet is watching-only dynamically according to whether the
associated device is currently plugged in or not
2016-01-02 20:39:29 +09:00
Neil Booth
dbf154d5f2
Finish moving the multisig regex to one place
2016-01-02 00:39:44 +09:00
Neil Booth
1d07960290
Remove constructor method of plugins
...
Clean up wallet class loading.
2016-01-02 00:16:15 +09:00
Neil Booth
11d135b32d
Better install wizard
...
Break out the workflow logic of the install wizard
into a base class. This means reimplementing with
full support in a new GUI is now easy; you just provide
ways to request passwords, show messages etc. The API
is fully documented in the base class.
There are a couple of minor outstanding issues, including that
the old messages shown when recovering a wallet are missing.
I will come back to that. Ledger wallet might be broken.
Other improvements:
The install wizard code is now easy to follow and understand.
Hardware wallets can now be restored without any need for their
accompanying libraries.
Various bits of trustedcoin were broken and have been fixed.
Many plugin hooks can be removed. I have only started on this.
2016-01-01 16:48:18 +09:00
Neil Booth
e6dbe621c6
Make class methods static on Wallet
2015-12-31 16:05:05 +09:00
Neil Booth
f263f8b0fd
Convert legacy restored hardware wallets
...
Hardware wallets do not have a seed and hardware wallet
code should not have to worry about that case.
2015-12-31 09:51:27 +09:00
Neil Booth
84450b9189
Revert mistaken commit
2015-12-29 23:16:53 +09:00
Neil Booth
0f70d0b8a5
The constructor() concept doesn't exist
...
Did it ever?
2015-12-29 22:59:25 +09:00
Neil Booth
9d9fcbde64
Proper treatment of restored hardware wallets
...
They have a different wallet type; they require no plugin nor
plugin libraries to use.
Remove pointless public key code that was implemented in the
base classes already.
Partial fix for #1592 . Unfortunately the plugin and library
are still required to actually restore the wallet, but for
no reason that isn't fixable.
2015-12-28 20:24:15 +09:00
Neil Booth
11e1c62f28
Move hardware wallet to trezor/
...
On second thoughts it does go better there.
2015-12-27 18:23:46 +09:00
Neil Booth
669cf74789
Fix trezor restore
...
Broken by my recent changes
2015-12-27 15:38:52 +09:00
Neil Booth
3a1bb5b61a
Combine keepkey and trezor wallet code
...
Essentially identical so silly to have two copies.
Also fix a double-dialog during sign bug that caused one to not
disappear (on MacOSX at least).
2015-12-26 16:25:10 +09:00
Neil Booth
c298860e11
A fix and cleanups for hardware wallets
2015-12-26 12:02:19 +09:00
Neil Booth
a58c19d7c0
Clean up and fix account adding
...
As per BIP44, 20 addresses are checked for transactions, not just the
first one.
Show the last account only if used or named.
If all accounts are used, prompt for password to create new one.
Fixes #1128
2015-12-25 23:34:04 +09:00
Neil Booth
72fdf0cd21
Better error when opening a non-wallet file
...
Also window modality fixes for __init__.py
2015-12-23 13:54:43 +09:00
Neil Booth
e1c0298fc2
Write the wallet less often
...
This should speed up synchronization / restoration of large wallets.
Wallets are written only when they switch to up_to_date state, or
when stop_threads() is called when closing the daemon, or when
a command line command finishes.
2015-12-20 15:47:46 +09:00
Neil Booth
0a3d74de8f
Avoid index-out-of-range
...
Also add sanity assertion
2015-12-20 12:19:44 +09:00
ThomasV
9d3162b1a1
simplify get_label
2015-12-15 12:52:30 +01:00
Neil Booth
06eb3142c4
Oldest First
2015-12-12 19:01:14 +09:00
Neil Booth
52fc739052
Update default chooser name too.
2015-12-12 18:39:03 +09:00
Neil Booth
75b3ecee49
Add coin chooser to try and minimize loss of privacy.
2015-12-09 22:20:23 +09:00
ThomasV
4682d95a76
merge jsonrpc gui and daemon
2015-11-30 10:09:54 +01:00
Neil Booth
9a6dcf7b1e
Use bucketing to choose coins
...
Bucketing is generalization of coin chooser logic that makes it easy
to implement other algorithms.
- Put core coin chooser functionality in base class.
- Specialize derived class to implement classic electrum algorithm of
oldest coins first. One bucket per output.
No intended change in behaviour.
Coin chooser now sorts the coins as it wants; remove redundant sorting
from get_spendable_coins().
2015-11-29 17:59:36 +09:00
Neil Booth
93bb09230c
Track tx size directly; calculate fees from that
...
This has several advantages. Fee calculation is now very fast,
as we don't need to keep reserializing the tx. Another is that
we can reason about the fees after adding a change output without
having to add it, recalculate the tx fee, and remove it again.
2015-11-29 15:40:11 +09:00
Neil Booth
a4dd5acc48
Prepare to calculate tx fee given a tx size
2015-11-29 12:41:54 +09:00
Neil Booth
d97106f17d
Don't keep dust change in any case
2015-11-28 22:27:01 +09:00
Neil Booth
8785b65a1f
Remove need for coin chooser to take a wallet
2015-11-28 22:12:20 +09:00
Neil Booth
a6ea9a0c71
Simplify interface to make_tx in coin chooser
...
Makes the coin chooser code simpler and easier to understand.
2015-11-28 22:08:00 +09:00
Neil Booth
90dee43998
Move estimated_fee to Transaction class
...
It's not a function of the wallet but of the transaction
so it more naturally belongs there.
2015-11-28 21:28:54 +09:00
Neil Booth
e9061ea371
Move coin choosing logic to own class
...
This contains no change in logic, but is preparation for cleanup
and possible alternative strategies.
2015-11-28 14:49:10 +09:00
ThomasV
175fdbcac6
Disentangle plugins and window management; use Qt signals
2015-11-23 09:05:34 +01:00
Neil Booth
0dcaa13d31
Show the wallet path in -v output
2015-11-14 16:14:00 +09:00
ThomasV
ae42576423
Merge branch 'master' of git://github.com/spesmilo/electrum
2015-11-12 14:32:19 +01:00
ThomasV
86a0103a7f
increase min_relay_tx_fee, and make dust_threshold a function
2015-11-12 14:31:17 +01:00
Neil Booth
206e38fb7c
Make use of trigger_callback easier to understand
2015-11-12 16:08:37 +09:00
Neil Booth
8cc3b58364
Allow syncronizer to be GC-ed
...
Proper fix for #1525 .
Using python's GC module, I've verified that the daemon, when running,
now releases all verifiers, synchronizers and wallets - all the resources
we care about releasing.
2015-11-12 08:40:58 +09:00
Neil Booth
d612684196
Attempt at fixing issue 1525
...
The main problem is, I think, that the synchronizer and wallet
still exist in the daemon process, and updates to things like
TXI and TXO are made but never saved (as client exit is what
saves the wallet).
I suspect fixing the lingering objects is hard; this is a short
term fix to ensure that when internal wallet state is updated,
the wallet is written to disk, so later daemon clients pick up
the correct state.
2015-11-11 16:38:28 +09:00
ThomasV
2a3c97813d
wallet.get_max_amount method, used by qt and kivy
2015-10-30 14:10:41 +01:00
ThomasV
079cb311ec
call wallet.wait_until_synchronized before commands
2015-10-29 05:01:06 +01:00
ThomasV
052d8b236e
fix #1494
2015-10-28 10:36:44 +01:00
ThomasV
2a23aab24b
workaround #1513
2015-10-28 07:32:29 +01:00
ThomasV
26682491b2
generic restore from command line
2015-10-27 14:33:41 +01:00
Neil Booth
97568bedf5
Default to unused address for privkey sweeps
...
Fixes #1506
- New function wallet.get_unused_addresses
- Have wallet.get_unused_address use it
- Use it for the sweep key dialog
2015-10-26 20:33:35 +09:00
ThomasV
171363aa86
minor fix (import stat)
2015-10-20 13:57:43 +02:00
ThomasV
a9f451decd
preserve file permissions when saving wallet
2015-10-20 13:52:38 +02:00
Chris Beaven
fc141cba28
Fix KeyErrror typo
2015-10-19 10:42:46 +13:00
ThomasV
fbda9dac79
fix #1479
2015-10-18 12:36:04 +02:00
ThomasV
0fe410d7e6
restore lock in storage.write (follow up to b5e0363f)
2015-10-01 13:26:22 +02:00
Neil Booth
b5e0363f85
Only save wallet if modified
2015-09-11 14:02:01 +09:00
Neil Booth
f710d872c7
When using labels plugin write wallet once
...
Poor hook coupling would cause the wallet to be written
twice unnecessarily when using the labels plugin and changing
a label
2015-09-10 22:29:25 +09:00
Neil Booth
886192aba7
Make trustedcoin.py multi-window compatible
2015-09-09 17:27:58 +09:00
Neil Booth
39615333c0
Attribute more diagnostic messages
2015-09-06 22:04:44 +09:00
Neil Booth
1171a25815
Genericize plugin handling of thread jobs
...
Move it to the Plugins class so all plugins get it for
free.
2015-09-05 17:21:28 +09:00
Neil Booth
89fbda30e0
Labels plugin now working for multiple windows
2015-09-04 17:38:14 +09:00
ThomasV
9d76bf6828
temporary fix wallet constructors
2015-09-02 14:37:40 +02:00
Neil Booth
7a55d02654
Fix 992c70a688
...
This works for ordinary wallets at least; cannot test hardware.
But after staring for ages I think it's right.
2015-09-02 21:27:12 +09:00
ThomasV
992c70a688
detect available hardware wallets before listing them in wizard
2015-09-02 13:08:06 +02:00
Neil Booth
351272f0b6
Small optimization for large wallets
...
Previously the verifier job would scan all transactions in
unverified_tx each time it ran.
Nothing was ever removed from this map; it would essentially
be the full set of transactions.
As the job runs about 10 times a second, for a wallet with 500 txs
this would be 5,000 useless loops a second.
This patch makes unverified_tx be simply the set of confirmed
transactions that haven't yet been verified. txs are added once
confirmed, and removed once verified. Hence it will almost always be
empty.
2015-08-28 12:39:19 +09:00
Neil Booth
478bde8afa
Access to unverified_tx no longer needs a lock
...
Once the proxy thread jobs are created only they access this,
and they all run under the proxy thread, so there is no contention.
2015-08-28 11:10:50 +09:00
ThomasV
578a83fa30
show error message raised during sign_transaction. see issue #1422
2015-08-27 08:22:02 +02:00
Neil Booth
b64c42b1eb
Make the verifier a thread job instead of a thread
...
The verifier, like the synchronizer, now runs as part of the
network proxy thread.
2015-08-26 17:07:36 +09:00
Neil Booth
01491dd1d0
Have network_proxy use ThreadJob framework
...
Rename WalletSynchronizer to Synchronizer so that diagnostic messages,
which are based on class name, still refer to Synchronizer.
2015-08-26 16:50:40 +09:00
ThomasV
bfae04e6f0
Improved in network callbacks:
...
* Pass arguments
* Don't redraw history when a tx is verified.
* Fix new tx notifications.
2015-08-16 11:36:23 +02:00
ThomasV
e0939348c3
minimize calls to estimated_fee
2015-08-15 12:31:57 +02:00
ThomasV
6232a0b76c
speedup fee computation when collecting small inputs
2015-08-15 10:02:47 +02:00