Commit Graph

1035 Commits

Author SHA1 Message Date
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