Commit Graph

816 Commits

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