Commit Graph

3008 Commits

Author SHA1 Message Date
ThomasV eb085c2e23 Clarify preferences dialog:
* rename 'Oldest First' policy as Priority
 * show multiple change and fee multiplier on separate lines
2016-01-15 09:02:03 +01:00
Neil Booth 6bf91b8ae2 Update comments and tooltips. 2016-01-15 15:25:01 +09:00
Neil Booth 53fa973898 Move change_amounts() to base class.
Update tooltip of the preference.
2016-01-15 15:21:25 +09: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 0464a1a6b0 remove gtk gui 2016-01-13 15:29:04 +01:00
ThomasV 388ed01d0f fix start_threads in wizard 2016-01-13 15:02:58 +01:00
Neil Booth 889c4cb7fb Multisig: create and restore work
Override run in derived class to catch UserCancelled again
Restore self.finished() hook.
Fix a typo.
2016-01-13 22:38:32 +09:00
ThomasV 2f6e2ebcd2 test if wizard is needed in daemon 2016-01-13 14:30:09 +01:00
Neil Booth 9390a97e9e Bring the network dialog into the new framework 2016-01-13 21:11:06 +09:00
Neil Booth 4c9b224d4c Put open_wallet back as class method. 2016-01-13 20:56:44 +09:00
ThomasV ef1f649d58 fix missing parameter 2016-01-13 11:31:23 +01:00
ThomasV 632905dfbe instantiate wizard only if needed 2016-01-13 11:27:17 +01:00
ThomasV 58fe42cea2 revert commit 4ba4611599 for relicencing 2016-01-12 09:35:45 +01:00
Neil Booth 1ec3ad59cc Ledger: get new wallet creation working again
This is enough to get new wallet creation working in the
absence of errors.
2016-01-11 14:23:35 +09: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
Neil Booth 384b8cd5f2 Install wizard: simplify create_or_restore
- Use ChoiceLayout to organize the layouts
- Do wallet filtering in wizard.py as it's GUI independent.
- Only pass the descriptions.
2016-01-10 23:00:59 +09:00
ThomasV c47e3499ce rename wallet methods 2016-01-10 12:56:15 +01:00
Neil Booth 450ab76f78 Fix install wizard
Used to pass the wallet as an argument to wallet methods.
2016-01-10 20:44:20 +09: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 9ad4d63ad1 wizard: small tweaks, fix show_restore 2016-01-09 10:35:10 +01:00
Neil Booth 2f1d6b2379 Have Trezor dialog work even if wallet unpaired
Required cleanup of handler logic.  Now every client
is constructed with a handler, so there is never a
question of not having one.
2016-01-09 17:15:31 +09:00
Neil Booth 3e8598c245 Move trezor-specific install wizard code to plugin 2016-01-09 15:21:38 +09:00
Marco Pontello 065f6aa370 Added Blockchain URI (BIP 122) to block explorers list. 2016-01-08 20:23:17 +01:00
ThomasV 6acbe4226e don't open wizard window if no action was required 2016-01-08 13:44:59 +01:00
ThomasV d867fcc266 update create_main_account in tests 2016-01-07 01:02:44 +01: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
Neil Booth 6fb7dbd30d Implement passphrase protection toggling.
Along with chicken box.
2016-01-06 23:08:02 +09:00
Neil Booth 9b29c6c2e6 Trezor: all four available device initializations
Trezor and KeepKey devices can now be initialized by:
- device-generated seed
- existing seed
- BIP39 mnemonic
- master private key
2016-01-06 22:18:56 +09: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
ThomasV 62868ab29a Register loaded wallets in daemon, to prevent a wallet from being opened twice.
Simplify the wizard logic.
2016-01-06 00:58:43 +01:00
Neil Booth 3d9f321cae Use a shared device manager
Use a shared device manager across USB devices (not yet taken
advantage of by ledger).  This reduces USB scans and abstracts
device management cleanly.

We no longer scan at regular intervals in a background thread.
2016-01-06 07:56:58 +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 87363c8301 Trezor: Implement resetting a device 2016-01-03 13:34:03 +09: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 ff39333d32 Not all wallets have plugins 2016-01-02 20:47:04 +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 12f62212ba Move wallet_kinds to the base class
This logic isn't gui-dependent so belongs in wizard.py
2016-01-02 00:35:09 +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 c7bd1e9428 Fix plugin dialog logic I broke recently 2016-01-01 19:22:34 +09:00
Neil Booth d63e754c67 Remove some unused hook infrastructure 2016-01-01 19:15:01 +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
Eagle[TM] 2c797cd75b Update default server list 2015-12-30 14:47:40 +01:00
Neil Booth 1d51335827 Remove need for self.wallet for h/w wallets 2015-12-30 17:03:26 +09:00
Neil Booth 84450b9189 Revert mistaken commit 2015-12-29 23:16:53 +09:00
Neil Booth ed3c0a5469 Remove a name-clashing unnecessary local variable 2015-12-29 23:08:10 +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
ThomasV fb8f9e55ef Cleanup main script, with semantic changes:
The --offline flag applies only to GUI.
Commands must use the daemon if a daemon is running, otherwise they are run offline.
Commands that only require the wallet do not have the require_network flag.
2015-12-23 15:59:32 +01:00
ThomasV 8bcd132423 Merge branch 'master' of git://github.com/spesmilo/electrum 2015-12-23 10:54:45 +01:00
ThomasV acbe67fd1f separation between RPC and non-RPC commands. 2015-12-23 10:54:31 +01:00
Neil Booth 9484b6371f More modality fixes and cleanups 2015-12-23 18:31:36 +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
Neil Booth 25a2ceda23 Fix copyright. 2015-12-20 12:06:23 +09:00
Neil Booth 5c3a6db445 Fix negative amounts assertion
Change amounts could be negative after deducting the cost of the extra
change output; floor them at zero.  Move the assertion to the main
code.  Simplify rounding logic.
2015-12-19 13:44:12 +09:00
ThomasV 3bed2e3106 don't wait for wallet sync in rpc commands; instead, show wallet status in status command 2015-12-17 17:54:49 +01:00
ThomasV 026f9312a7 fix more type errors caused by jsonrpc (parsing floats and transactions) 2015-12-16 20:17:20 +01:00
ThomasV b3ef2249b5 add more features to settings dialog 2015-12-16 11:53:37 +01:00
ThomasV 30ace570d3 kivy: choice_dialog and load_wallet_by_name 2015-12-16 08:57:47 +01:00
ThomasV 9d3162b1a1 simplify get_label 2015-12-15 12:52:30 +01:00
ThomasV 6ad3f47640 don't rewrite index.html everytime 2015-12-15 12:10:25 +01:00
ThomasV 679efe2a66 don't use floats because of rounding errors 2015-12-15 11:33:04 +01:00
Neil Booth cead9cd7c6 Ensure zeroes is always non-empty. 2015-12-14 07:45:01 +09:00
ThomasV f30149ad49 fix #1579 2015-12-13 06:33:06 +01:00
Kirill Fomichev d344ee0474 Small blockchain changes 2015-12-12 18:37:18 +03: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 1c528af433 Description tweaks.
Mention loss of priority, and rename Classic to Oldest First.
2015-12-12 18:32:24 +09:00
Neil Booth 36aaad392d Fix docstring display. 2015-12-12 18:11:07 +09:00
Neil Booth 2763b0feea Improved change handling for Privacy chooser
Breaks up large change in such a way as to make it
unclear what the real send might be.

Fixes #1203
2015-12-12 11:53:17 +09:00
Neil Booth ea49e8dc96 Remove unneeded buckets for Privacy coin chooser
Commonize the code with the classic chooser and simplify.
2015-12-12 10:12:46 +09:00
ThomasV 0cef063ee2 add payment requests to kivy 2015-12-11 15:21:21 +01:00
ThomasV 2a1fbf01fe simplify blockchain.py 2015-12-11 12:37:40 +01:00
ThomasV 81f070c83b fix bug in get_target 2015-12-11 10:14:01 +01:00
ThomasV 4112e2c3fa Merge pull request #1558 from fanatid/spv
Improve get_target
2015-12-11 10:09:11 +01:00
ThomasV b7cef8dd58 follow up to 74a9e2296c 2015-12-10 09:52:00 +01:00
Neil Booth 75b3ecee49 Add coin chooser to try and minimize loss of privacy. 2015-12-09 22:20:23 +09:00
ThomasV de964f4033 plugins: on_close method 2015-12-09 09:41:24 +01:00
ThomasV 6770834d06 daemon: use available port 2015-12-08 10:55:34 +01:00
ThomasV becfe13df2 decrease daemon timeout 2015-12-07 18:42:12 +01:00
ThomasV 9ec4cbeed1 fix issue #1572 2015-12-06 13:32:50 +01:00
Neil Booth 50dcee69d0 Clean up imports in daemon.py 2015-12-05 21:38:20 +09:00
Neil Booth 03b4868bf8 Handle JSON RPC server timeouts differently
Prior method was causing issues on Python 2.7.10 on DragonFlyBSD at
least.
2015-12-05 21:30:37 +09:00
ThomasV 74a9e2296c separate Network and Plugins 2015-12-03 11:18:10 +01:00
ThomasV deefd74c37 labels sync for kivy 2015-12-01 17:29:24 +01:00
ThomasV afae9a097e add php example 2015-12-01 09:42:47 +01:00
ThomasV 95393656aa rename command: notify 2015-12-01 08:58:00 +01:00
Neil Booth 3eca419ef3 Fix typo.
One character makes all the difference.
2015-11-30 23:47:14 +09:00
ThomasV 9b5b9849d7 add watchaddress command 2015-11-30 10:54:15 +01:00
ThomasV 3c11c63289 fix daemon: don't oad wallet if there is a gui 2015-11-30 10:23:38 +01:00
ThomasV 4682d95a76 merge jsonrpc gui and daemon 2015-11-30 10:09:54 +01:00
Neil Booth e302dbc71c Move debug output to end of function. 2015-11-29 18:10:17 +09: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 530dc16ed2 Remove unused import 2015-11-28 22:14:24 +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 90a2a049f4 network fix: callbacks were not called 2015-11-27 11:30:14 +01:00
ThomasV 042f8ef832 network: cache subscription responses 2015-11-26 11:26:01 +01:00
ThomasV 43df795b1f network: separate callbacks from unanswered_requests 2015-11-26 10:57:43 +01:00
ThomasV ed2ab5e3c1 websockets: minor fix 2015-11-25 11:37:10 +01:00
ThomasV 1207ad3ba4 fix: websocket uses network object 2015-11-25 10:48:34 +01:00
ThomasV 2a29d1e5e7 fix syntax error 2015-11-25 10:35:14 +01:00
ThomasV 2934fd17be fix websockets 2015-11-25 10:32:46 +01:00
ThomasV 9ba75b80e2 increase version number 2015-11-24 09:43:21 +01:00
ThomasV ba2c737a21 finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
ThomasV 2c0489c809 plugins: separate GUIs using child classes 2015-11-23 14:15:25 +01:00
ThomasV 175fdbcac6 Disentangle plugins and window management; use Qt signals 2015-11-23 09:05:34 +01:00
Kirill Fomichev 334b84c3c3 Add assertions to get_target 2015-11-19 22:03:12 +03:00
Kirill Fomichev e188929972 Fix proof of work assert in verify_chunk 2015-11-19 18:40:54 +03:00
Neil Booth 3211d752c7 Need to set p.wallet unfortunately
Fixes #1553
2015-11-19 08:31:01 +09:00
Neil Booth 0dcaa13d31 Show the wallet path in -v output 2015-11-14 16:14:00 +09:00
Neil Booth e9384f15ed Plugins manage their own wallet tracking 2015-11-14 15:58:10 +09:00
Neil Booth 53f6fb9876 Add a GC debugger
Add commented-out GC debugging step
2015-11-14 10:47:44 +09:00
Neil Booth ae4cfc9f0b Unregister network callbacks from QT gui
Rework the callback system in QT to make this easy, and avoid
leaking window references that prevent the window from being
GC-ed on close
2015-11-13 23:36:29 +09:00
ThomasV 0d4de870a5 prepare 2.5.4 release 2015-11-12 14:56:51 +01: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 d82896dadf fix #1525 (part 2) 2015-11-06 18:00:19 +01:00
ThomasV b3529147d5 fix #1525 2015-11-06 17:32:54 +01:00
ThomasV 3f2c906ace version 2.5.3 and release notes 2015-11-02 13:03:14 +01:00
ThomasV 2a3c97813d wallet.get_max_amount method, used by qt and kivy 2015-10-30 14:10:41 +01:00
ThomasV 5bbffb0cbf remove --deserialized option, redundant with deserialize command 2015-10-29 14:44:41 +01:00
ThomasV 369d5d8812 fix #1525 2015-10-29 14:36:50 +01:00
ThomasV bb7b0884e3 Various fixes for command line. Make 'payto' command require network (fixes #1525) 2015-10-29 11:06:09 +01:00
ThomasV 079cb311ec call wallet.wait_until_synchronized before commands 2015-10-29 05:01:06 +01:00
ThomasV 53273b7d40 fix #1523: prevent side-effect of _format_request 2015-10-29 00:09:50 +01:00
ThomasV 511b23fee6 add release notes 2015-10-28 11:45:53 +01:00
ThomasV 142b5532ec revert to previous restore method, without daemon 2015-10-28 11:11:41 +01:00
ThomasV 5b96d5166e fix restore messages 2015-10-28 10:46:01 +01:00
ThomasV 052d8b236e fix #1494 2015-10-28 10:36:44 +01:00
ThomasV 94ac0db91f command line: Require 'text' argument for 'restore'. Replace 'concealed' option with ':' magic word 2015-10-28 09:33:35 +01:00
ThomasV 65f20895df bump version number 2015-10-28 08:46:02 +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
ThomasV 614f3df4b8 Revert "Use ssl.PROTOCOL_TLSv1 on client side to avoid SSLv23"
This reverts commit 4731418af9.
2015-10-27 10:44:36 +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
ThomasV f77f63e158 remove failing tests, due to high S in signatures 2015-10-20 13:15:13 +02:00
ThomasV fbb65416d3 remove --broadcast option for payto, and parse transactions from json 'hex' field 2015-10-20 13:08:32 +02:00
Neil 691fc54370 Merge pull request #1499 from SmileyChris/sys-exit
Missing sys import
2015-10-19 12:41:21 +09:00
Chris Beaven 876a2c8ed0 Missing sys import
Also put the error message in sys.exit rather than printing. This will output it to stderr and make the exit code non-zero
like it should be.
2015-10-19 10:51:05 +13:00
Chris Beaven fc141cba28 Fix KeyErrror typo 2015-10-19 10:42:46 +13:00
ThomasV e385fd283d version 2.5.1 2015-10-18 12:52:38 +02:00
ThomasV fbda9dac79 fix #1479 2015-10-18 12:36:04 +02:00
ThomasV 19ec56b923 fix: sign tx inputs with the new low s class 2015-10-18 12:23:21 +02:00
ThomasV ab1714e9f2 socket errno 11: raise timeout instead of looping 2015-10-18 09:23:44 +02:00
ThomasV 6aefaf7b3e populate network.connecting before the thread is started (fixes KeyError in self.connecting.pop) 2015-10-17 07:07:10 +02:00
Kefkius f329143733 Fix typo in Connection docstring
Fix a small typo in Connection docstring.
2015-10-06 16:03:24 -04:00
ThomasV d68042e76e enforece low S value in signatures (per BIP62) 2015-10-05 09:15:22 +02:00
ThomasV 0fe410d7e6 restore lock in storage.write (follow up to b5e0363f) 2015-10-01 13:26:22 +02:00
ThomasV 5a5cc97045 fix base type of PrintError; it must be object, since it is inherited by wallets 2015-10-01 12:38:46 +02:00
Richard Ulrich c5f833a107 added tor onion address for Blockchain explorer 2015-09-30 12:03:05 +02:00
ThomasV f3bd1662f7 fix web request server. fixes #1455 2015-09-30 11:06:27 +02:00
Neil Booth 58bd655f1d In debug mode, show every queued request 2015-09-12 12:13:42 +09:00
Neil Booth fb5e8068ce Simplify following on from prior dead code removal 2015-09-12 11:25:14 +09:00
Neil Booth f9547a194e Remove more dead code
As everything is in-process now, nothing sends
"network.*" messages.
2015-09-12 11:18:11 +09:00
Neil Booth fe2e731a70 Remove dead code 2015-09-12 10:54:20 +09:00
Neil Booth 12583246ee Fix testcase 2015-09-11 20:17:20 +09:00
ThomasV 849cc0200b better help message 2015-09-11 13:07:49 +02:00
ThomasV 458b62f5de commands: add kwargs to wrapper 2015-09-11 11:54:00 +02:00
Neil Booth f30090a321 Use network to get local height 2015-09-11 14:03:44 +09: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
ThomasV a735fbabe0 print config path in debug message 2015-09-10 11:01:58 +02:00
Neil Booth 3746050fe6 Subscribed address fix
Add an addr to the subcribed address set on receiving a response,
not on sending a request.
2015-09-10 13:32:00 +09:00
Neil Booth cbf9052dae Remove address caching 2015-09-10 12:57:04 +09:00
ThomasV ebd5a565ed fix: add missing definition of sha1 2015-09-09 18:15:38 +02:00
Neil Booth b14aae5ebc Clear self.interface when switching
When switching and the interface isn't immediately available,
we should clear self.Interface as otherwise requests will
still be going to it.
2015-09-09 22:13:09 +09:00
Neil Booth 6f1367fea6 Unify message IDs between network and interfaces
Previously network.py had its own idea of request IDs,
and each interface had its own which was sent on the wire.
The interface would jump through hoops to translate one
to the other.

This unifies them so that a message ID is passed when
queueing a request, in addition to the method and params.
network.py is now solely responsible for message ID management.

Apart from being simpler and clearer, this also should be faster
as there is much less data structure manipulation and rebuilding
happening.
2015-09-09 21:00:25 +09:00
Neil Booth 886192aba7 Make trustedcoin.py multi-window compatible 2015-09-09 17:27:58 +09:00
ThomasV f90ca2684e change paytomany syntax: accept json data instead of csv file 2015-09-09 08:47:30 +02:00
ThomasV d986570c2e fix: func.__doc__ might be None on android 2015-09-07 13:13:04 +02:00
Neil Booth abee263710 Remove obsolete server from DEFAULT_SERVERS 2015-09-07 10:39:55 +09:00
Neil Booth 39615333c0 Attribute more diagnostic messages 2015-09-06 22:04:44 +09:00
Neil Booth 93b99ebded Handy new class PrintError
Saves adding "def print_error" to endless classes.
2015-09-06 21:40:00 +09:00
Neil Booth da5c18b2f9 Be patient whilst connecting
On startup we make several connections simultaneously.  Socket
maintenance code checks if we're not connected, and if not
switches to a connected interface if auto_connect.
Unfortunately this meant that we frequently didn't reconnect to
the prior good server on startup, because some other connection
would happen first and this code would decide to switch to it.

Instead, only switch if a connection attempt is not in progress.
If that times out at the O/S level the switch will happen.
2015-09-06 20:03:43 +09:00
Neil Booth f5a43b8738 Warn if server is serving bad address histories 2015-09-06 19:49:35 +09:00
Neil Booth f9047c6df0 Fix for dynamic loading and unloading of plugins
Need to add and remove thread jobs
2015-09-06 19:35:14 +09:00
Neil Booth b5f986ee56 Torwards sane signalling for exchange_rate plugin 2015-09-05 21:47:35 +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 9da22000b6 More improvements to exchange_rate plugin
- better historical rate handling, including caching
- grabbing and scanning wallet transactions no longer needed
- fix autosize of fiat column
- more efficient
2015-09-05 14:05:37 +09:00
ThomasV 2f8574f7d7 kivy/buildozer: read version number from file 2015-09-04 14:40:00 +02:00
Neil Booth 835bc4e4aa More cleanup now self.window is gone
No need for self.main_window in gui object.
No need for hooks "init_qt" and "close_main_window".
2015-09-04 18:29:52 +09:00
Neil Booth 89fbda30e0 Labels plugin now working for multiple windows 2015-09-04 17:38:14 +09:00
Neil Booth 2aa21ece79 Fix cosigner_pool plugin for multiple windows 2015-09-04 12:36:25 +09:00
Neil Booth 77a029082a Improved new_window handling.
Remove new_window hook.
Plugin informed of all windows via events when first loaded.
init_qt no longer needed for exchange_rate plugin.
2015-09-04 10:20:52 +09:00
Neil Booth 8ce2a95695 Have plugins object track the window set
No need for self.gui nor init_qt hook any more.  This makes
plugins more independent of window and gui types.
2015-09-04 09:26:35 +09:00
Neil Booth ec3b7ba5ee Pass plugins object to plugin constructor 2015-09-04 09:07:18 +09:00
ThomasV 04b9d8fffa Update kivy GUI in order to merge with master 2015-09-03 15:09:45 +02:00
akshayaurora c121c1aa4e reorganize files and bring code inline with current master
Conflicts:
	lib/simple_config.py
2015-09-03 14:20:37 +02:00
qua-non 1179a4cf9e manage exchange plugins, make sure ui doesn't stall while saving seed
and numerous other small fixes.
2015-09-03 14:18:22 +02:00
ThomasV 4655c5f565 Fix SocketPipe:
* add errcode 35 for BSD
* in addition, add a very long timeout to command line pipe, in order to prevent that exception to be raised.
2015-09-03 10:47:57 +02:00
ThomasV e3b7239d19 fix SocketPipe for returning empty array 2015-09-03 10:09:25 +02:00
ThomasV 4cfb6e1d76 add missing parameter 2015-09-03 07:43:16 +02:00
Neil Booth 49797c3094 Create a Plugins class
Encapsulates plugin logic and removes global variable ugliness.
2015-09-03 12:02:03 +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 6c69849be9 Fix uninitialized var from select merge 2015-09-02 13:50:25 +09:00
Neil Booth cdcd4d7215 Fix 'tuple' object has no attribute 'copy'
Occurred when switching interfaces and there were unanswered
requests that need resending.  This bug isn't new; it's been
there since at least 3rd June.
2015-09-02 11:56:53 +09:00
Neil Booth 119aa5bf2e Move message so it doesn't repeat when connecting 2015-09-01 17:30:22 +09:00
Neil Booth 72f429c353 Remove unused callback 2015-09-01 14:41:06 +09:00
ThomasV c6b5a70362 Merge pull request #1432 from romanz/remove-mmap
transaction: remove unused mmap-related code
2015-08-31 22:39:08 +02:00
ThomasV cd734002f2 Merge pull request #1433 from romanz/master
test_transaction: fix test_sweep case
2015-08-31 22:38:57 +02:00
Roman Zeyde a097c47b0b test_transaction: fix test_sweep case 2015-08-31 17:03:59 +03:00
Roman Zeyde aadbcca6f0 transaction: remove unused mmap-related code 2015-08-31 16:46:51 +03:00
Neil Booth a5e0265010 Make exchange rate plugin a network thread job
This fixes a lot of thread error noise when closing down electrum.
2015-08-31 20:33:39 +09:00
Neil Booth f11e46e479 Remove unused import 2015-08-31 18:14:07 +09:00
Neil Booth be7cb011a3 Simply verifier now network is in-process 2015-08-31 18:12:02 +09:00
Neil Booth 2a1b717a21 Fix scripts/peers
Needed an almost complete rewrite now we use select.
2015-08-31 17:44:50 +09:00
Neil Booth 748662dede Add a debugging traceback. 2015-08-31 14:38:19 +09:00
Neil Booth 2ee506ac03 Fix typo. 2015-08-31 14:05:38 +09:00
Neil Booth 768adfb337 Fix "restore" further by accepting --mpk 2015-08-31 13:52:18 +09:00
Neil Booth 2d05e7d891 Merge the network and network_proxy 2015-08-31 12:00:38 +09:00
Neil Booth 4d6a0f29ee Fix 'restore' command line to take -C. 2015-08-31 11:34:44 +09:00
ThomasV 92e0744470 Refactoring of daemon:
* gui and daemon are in the same process
 * commands that require network are sent to the daemon
 * open only one gui window per wallet
2015-08-30 11:31:51 +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 695aebaa80 Clean up imports; use self.print_error 2015-08-27 15:12:54 +09:00
Neil Booth 91049c8af8 Protect proxy against ill-formed server responses 2015-08-27 15:09:00 +09:00
Neil Booth 9455815ad0 Merge requested_merkle and merkle_roots. 2015-08-26 17:12:40 +09: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
Neil Booth 56654ec4e9 Introduce thread job framework.
This is a cleaner generalization of the functionality added
to network_proxy.py a few months ago, whereby jobs can be
added and removed from a thread's main loop.  This allows
us to cut down on unnecessary threads.

A follow-up patch will update the proxy to this framework.
2015-08-26 16:41:12 +09:00
Roman Zeyde eb66289314 test_transaction: add BCDataStream test case 2015-08-25 15:51:22 +03:00
Roman Zeyde 33b78551a3 test_transaction: add Transaction.sweep() test case 2015-08-25 15:21:44 +03:00
Roman Zeyde 6a7e145053 test_transaction: add test suite for lib.transaction module 2015-08-25 12:05:49 +03:00
Neil Booth a056f9804b Notify when a chunk of headers is validated
And a couple of cosmetic changes.
This should fix #1379.
2015-08-25 14:27:53 +09:00
Roman Zeyde 3c3d96f69e test_mnemonic: add tests for mnemonics 2015-08-24 17:35:17 +03:00
Roman Zeyde bb97624de2 test_account: add test case for OldAccount 2015-08-24 10:57:41 +03:00
Roman Zeyde 893849ab39 test_account: add test case for BIP32_Account 2015-08-24 10:57:41 +03:00
Roman Zeyde a92ca583bd test_interface: fix check_host_name test 2015-08-24 10:02:10 +03:00
Neil Booth 49a48d52ac Use select. 2015-08-22 14:03:08 +02:00
ThomasV 85c0dda1a9 version 2.5 2015-08-22 13:42:53 +02:00
ThomasV 234471b70c version 2.4.3 and release notes 2015-08-22 11:42:18 +02:00
dabura667 678ec84267 Add Chinese Simplified wordlist 2015-08-20 23:18:47 +09:00
ThomasV 37034bdf7f listunspent: convert value to float 2015-08-19 11:10:55 +02:00
ThomasV 6bbfef5198 add timestamp to history command output, convert value to float 2015-08-19 11:04:06 +02:00
ThomasV 93b674982e fix tx strip 2015-08-18 16:33:51 +02:00
ThomasV f583fcfedb do not import dns on android 2015-08-18 12:15:56 +02:00
ThomasV 3f1e4ae3b1 strip spaces from raw tx 2015-08-18 10:17:53 +02:00
ThomasV 4a514c7638 version 2.4.2 and release notes 2015-08-17 13:20:45 +02:00
ThomasV fa9ce51685 deprecate dumpprivkeys 2015-08-16 16:30:55 +02:00
ThomasV 02e81a3655 read command line arguments from stdin if '-' is passed 2015-08-16 16:11:52 +02:00
ThomasV 5686499eae fix #1400 2015-08-16 13:50:03 +02: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 438bc94dce fix #1399 2015-08-16 11:25:23 +02:00
ThomasV ede7423bf2 Merge pull request #1397 from romanz/master
Add tests to bitcoin.py and ripemd.py
2015-08-15 13:42:59 +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
Roman Zeyde ac8e792c58 test_ripemd: add simple test case for ripemd module 2015-08-15 09:52:27 +03:00
Roman Zeyde fa412c3a86 test_bitcoin: add tests for int packing 2015-08-15 09:41:20 +03:00
Roman Zeyde 175fef2d56 test_bitcoin: add test case for seeds 2015-08-15 09:20:01 +03:00
ThomasV 8a3e5032b1 Merge pull request #1389 from romanz/master
remove unused code
2015-08-14 16:48:23 +02:00
ThomasV d69da1ef43 add/remove transaction: remove unused tx_height parameter 2015-08-14 15:30:00 +02:00
ThomasV e9b346ed29 add command for master private key 2015-08-14 15:23:50 +02:00
Roman Zeyde abc7429b0f bitcoin: remove multiple imports 2015-08-09 19:35:02 +03:00
Roman Zeyde b5854b6e8b account: remove unused variables 2015-08-09 19:35:02 +03:00
Roman Zeyde a3a01be8ce remove unused code 2015-08-09 19:02:04 +03:00
ThomasV c3991091de move init_qt hook 2015-08-07 20:06:31 +02:00
ThomasV 6b87256795 sign tx with empty scriptSig inputs 2015-08-07 17:11:42 +02:00
ThomasV 5f413aca1c rm unneeded float conversion 2015-08-07 14:36:43 +02:00
ThomasV c844d22a19 synchronous_get: return -> raise exception 2015-08-07 12:22:47 +02:00
ThomasV 85d9b8aa8d fix: dePem cert before parsing 2015-08-07 11:58:59 +02:00
ThomasV ca3c320ef4 simplify x509 constructor 2015-08-07 11:39:30 +02:00
ThomasV 713fa00d86 fix estimatefee for daemon 2015-08-07 10:54:32 +02:00
ThomasV 65c7dfafbc check alias in signrequest 2015-08-07 09:00:00 +02:00
ThomasV 34e3261efd fix estimate_fee 2015-08-06 19:26:34 +02:00
ThomasV 714445aba8 fix: wallet.is_used 2015-08-06 19:19:25 +02:00
ThomasV e93ff18776 rename help -> commands 2015-08-06 15:52:38 +02:00
ThomasV aadffa0c8f check_ssl_config: verify pubkey 2015-08-05 20:59:51 +02:00
ThomasV a9e74da11c check SSL certificate in config dialog 2015-08-05 20:49:45 +02:00
ThomasV 43880d452e dynamic fees 2015-08-05 15:45:28 +02:00
ThomasV 476d198be9 fix missing occurences of X509.parse 2015-08-04 18:31:08 +02:00
ThomasV e8d30129ea replace TLSLite dependency with minimal RSA implementation 2015-08-04 18:16:06 +02:00
Neil Booth 4c8408b42d Print reason for failure to connect headers
Used to fail just with a "header didn't connect" message, now
it gives a reason too.
2015-08-01 13:09:52 +09:00
ThomasV 8ae64064b6 dont silence dns errors 2015-07-31 21:56:22 +02:00
ThomasV 380bccacf0 request_queue.put should never block, because maxsize is not set 2015-07-31 20:11:12 +02:00
ThomasV 963ec4ca3e dnssec: don't call get_default_resolver 2015-07-31 20:02:55 +02:00
ThomasV 9938fbd160 version 2.4.1 2015-07-31 14:52:16 +02:00
ThomasV 465d1dfd8b fix #1378 2015-07-31 14:51:48 +02:00
ThomasV 2ec19e7528 fix bugs with ecdsa/dnssec 2015-07-31 13:49:14 +02:00
Eagle[TM] 4731418af9 Use ssl.PROTOCOL_TLSv1 on client side to avoid SSLv23 2015-07-30 20:40:05 +02:00
ThomasV 77b0e7be5e network: initial status should be 'unknown', distinct from 'connecting' 2015-07-30 11:32:16 +02:00
ThomasV 348a9b0e21 fix imports, cleanup 2015-07-29 22:16:36 +02:00
ThomasV e96a0945ca do not use pycrypto for DNSSEC validation 2015-07-29 22:06:44 +02:00
Roman Zeyde 5fbd7553ed interface: fix check_host_name() pattern matching
The existing pattern matching code:

    val.find('*.') == 0 and name.find(val[1:]) + len(val[1:]) == len(name)

will return True in the following case:

   val = '*.host.com'
   name = 'blah.org'

since string.find() will return -1, len(val[1:]) == 9 and len(name) == 8.
2015-07-26 18:11:30 +03:00
ThomasV 70d59bbe06 Merge pull request #1376 from romanz/master
util: fix small typo at parse_URI() and update its unittests
2015-07-25 17:19:28 +02:00
ThomasV 96c3513cb2 add character encoding declaration to index.html 2015-07-25 12:50:00 +02:00
ThomasV cbf13197e2 websocket: hostname 2015-07-25 12:31:35 +02:00
ThomasV e9f5e6866d check www dir on daemon start 2015-07-25 12:25:47 +02:00
Roman Zeyde 87d3fafa22 util: fix small typo at parse_URI() and update its unittests 2015-07-25 12:41:37 +03:00
ThomasV 0c5bfb8c26 print -> util.print_error 2015-07-24 14:23:03 +02:00
ThomasV e6924d9912 prevent websocket closing with balnk target 2015-07-24 13:30:51 +02:00
ThomasV 3da148f406 use local copy of javascript files 2015-07-24 12:36:08 +02:00
ThomasV f0e6f5bf64 Merge branch 'master' of github.com:spesmilo/electrum 2015-07-24 11:39:31 +02:00
ThomasV 18d145cced add websocket to webpages 2015-07-24 11:39:12 +02:00
Neil Booth 0f2d4bd375 Add bitflyer.jp block explorer 2015-07-24 15:17:15 +09:00
ThomasV 41d9c94821 don't add bip70 suffixes 2015-07-22 16:00:08 +02:00
ThomasV 6d54512627 clearrequests command; minor type fix 2015-07-22 15:46:53 +02:00
ThomasV 508b5373ac minor fixes 2015-07-22 15:33:50 +02:00
ThomasV 8960b16e09 more sanitization 2015-07-22 15:28:43 +02:00
ThomasV b813ba0bdd sanitize timestamp and expiration in requests 2015-07-22 15:24:15 +02:00
ThomasV 37c07278d5 update var names 2015-07-22 09:37:17 +02:00
ThomasV 8f507d2afd change var name 2015-07-22 09:24:44 +02:00
ThomasV acbd434f76 cleanup request signing 2015-07-22 09:06:03 +02:00
ThomasV a8ed934a7f fix bug with make_unsigned_request 2015-07-21 16:30:25 +02:00
ThomasV a6c65b8997 change internal format of requests 2015-07-21 12:26:37 +02:00
ThomasV 2c1fb1e37c do not raise exception if uri has an unknown key 2015-07-21 11:54:45 +02:00
ThomasV e77f0c98e7 extend bitcoin: URI with signature data, instead of serialized format 2015-07-21 11:40:55 +02:00
ThomasV 9c30ad3dd5 extend bitcoin URIs with signed payment requests passed directly 2015-07-18 18:42:56 +02:00
ThomasV e879cb4552 https download of headers 2015-07-18 11:17:19 +02:00
ThomasV 380e072842 fix bug with import_key 2015-07-18 11:00:41 +02:00
neocogent 8792301846 restrict to *. only, add DN support also 2015-07-17 11:17:43 +07:00
neocogent 3c563b85ad adjust comment about wildcards 2015-07-17 04:22:39 +07:00
neocogent 59c231808f add wildcard ssl support 2015-07-17 04:03:40 +07:00
Neil Booth e7ea3e5d01 Add two more block explorers
chain.so and biteasy.com
2015-07-15 20:58:19 +09:00
ThomasV 471cab6089 do not base64encode signatures in requests 2015-07-14 16:37:04 +02:00
Neil Booth 677f235e4b Fix typo. 2015-07-14 09:00:59 +09:00
ThomasV f320178db9 no empty amount in bip70 2015-07-13 21:37:41 +02:00
ThomasV 6fa7f57f10 express expiration dates in natural language 2015-07-13 20:47:11 +02:00
ThomasV aa7b9af501 minor fix 2015-07-12 08:13:09 +02:00
ThomasV da55d9ed6e payment requests: cmdline fixes 2015-07-11 21:09:56 +02:00
ThomasV fbc23a61a3 fix cmdline addrequest 2015-07-11 21:03:02 +02:00
ThomasV dff8f6b338 rework paymentrequest methods 2015-07-11 20:26:30 +02:00
ThomasV 35aba0c14b show alias satus in gui after fetch 2015-07-11 18:14:00 +02:00
Eagle[TM] 4578777c29 network: Update default servers 2015-07-10 19:35:02 +02:00
ThomasV cb2bc54f96 store and display signatures of own requests 2015-07-09 14:15:30 +02:00
ThomasV 71243c2a57 dnssec: fix hash, and skip SOA 2015-07-09 09:02:39 +02:00
ThomasV 094ce2e4b3 add DNSSEC chain validation 2015-07-08 19:20:54 +02:00
ThomasV 538846ee0b remove incorrect dnssec validation 2015-07-08 15:14:00 +02:00
ThomasV f3c4a55e77 add dnssec verification to payment requests 2015-07-07 08:59:03 +02:00
ThomasV e9f3b21519 Fix transaction update 2015-07-06 00:22:19 +02:00
ThomasV 15f592f022 trezor multisig: build xpub from pubkey 2015-07-05 23:29:36 +02:00
ThomasV 0368a2cd5e fix bug from #1281 2015-07-05 18:16:33 +02:00
ThomasV b0f7411a0a check and fix history on startup 2015-07-05 17:29:41 +02:00
ThomasV e2c19ff871 fix #1344 2015-07-05 16:19:44 +02:00
ThomasV 9947173183 fix tx deserialize 2015-07-05 13:29:02 +02:00
ThomasV 5c2235e54b make tx.deserialize preserve existing inputs 2015-07-04 17:33:18 +02:00
ThomasV c224a9ad9d enable multisig with trezor 2015-07-04 12:10:52 +02:00
ThomasV 7933ac4324 reformatting 2015-07-04 12:07:33 +02:00
ThomasV 250bb03034 Merge pull request #1337 from kyuupichan/auto_connect
Suggested auto_connect daemon mode fix for #1336
2015-07-03 09:58:57 +02:00
ThomasV 9e84d12a6f Merge pull request #1339 from kyuupichan/daemon
Avoid string representation issues, fix #1338
2015-07-03 09:41:21 +02:00
Neil Booth 930304e46b Remove apparently dead code. 2015-07-03 13:57:42 +09:00
Neil Booth 389c8e8a8d Only write config file once. 2015-07-03 13:56:17 +09:00
Neil Booth 3a50c78a47 Avoid string representation issues
Caused by unicode vs non-unicode strings.
Fixes #1338
2015-07-03 13:53:15 +09:00
Neil Booth 5acbe00cbf Suggested auto_connect daemon mode fix for #1336 2015-07-03 11:50:53 +09:00
ThomasV 65e7667eba build reverse history index, to know when a transaction can be removed 2015-07-02 16:07:04 +02:00
ThomasV 616becd9a8 move openalias from plugins to core 2015-07-02 12:44:53 +02:00
ThomasV fa2de58c90 redo fixes for 1324 2015-07-02 09:22:59 +02:00
ThomasV ccd07c6a80 Merge branch 'synchronizer-unthread' of https://github.com/kyuupichan/electrum into kyuupichan-synchronizer-unthread 2015-07-02 09:20:51 +02:00
ThomasV 0c37009cdb fix is_address (forgot p2sh) 2015-07-02 08:53:17 +02:00
ThomasV c0858f314f Merge branch 'master' of git://github.com/spesmilo/electrum 2015-07-02 08:48:53 +02:00
ThomasV cf5328b143 do not accet testnet addresses in bitcoin.is_address 2015-07-02 08:48:48 +02:00
Roman Zeyde daee02e22d commands: fix typo
rename "sec" to "privkey"
2015-07-01 18:15:35 +03:00
Roman Zeyde 9c06bee8c7 interface: slow_parse() is not defined for X509 2015-07-01 16:54:11 +03:00
ThomasV 604d5d432c sanitize server at the interface level (follow up to issue #1330) 2015-07-01 09:09:00 +02:00
ThomasV 0ac3aebb88 fix proxy setting issue #1330 2015-07-01 08:45:47 +02:00
Neil Booth d0308010da Client-side fix for #1324
Print messages rather than throwing uncaught exceptions that kill the
thread.
I cannot fix the server side as I have no way to test it.
2015-06-30 23:14:05 +09:00
Michael Wozniak 523aa7c380 update restore multisig to add type 2015-06-27 16:12:15 -04:00
ThomasV 765ef338ec fix multisig seed detection 2015-06-27 21:53:55 +02:00
ThomasV 118052d815 v2.4 will require protocol v0.10 2015-06-27 15:22:34 +02:00
ThomasV 56b3c98332 generic m of n multisig 2015-06-27 12:43:29 +02:00
ThomasV 37d5e3b42a version 2.3.3, release notes 2015-06-26 14:35:22 +02:00
ThomasV fdd43bd5ad fix issue in f307b18546 2015-06-24 09:35:54 +02:00
ThomasV f307b18546 Merge pull request #1268 from kyuupichan/blockchain_nothread
Make the blockchain class not a thread
2015-06-24 09:00:52 +02:00
ThomasV 56f8fc62f9 fix 1312 2015-06-23 16:58:21 +02:00
ThomasV f894af90d7 fix deserialize_proxy. fixes #1309 2015-06-23 14:22:10 +02:00
ThomasV 74d26f5bdc better error message 2015-06-15 10:52:03 +02:00
ThomasV 0682695da9 version 2.3.2 2015-06-14 11:39:41 +02:00
ThomasV 00af3b394b Merge pull request #1280 from kyuupichan/BIP-LI01
Implement BIP-LI01.
2015-06-14 08:08:55 +02:00
ThomasV ec9cdfaf48 blockchain: restore call to set_local_height, forgotten in previous commit 2015-06-13 16:45:42 +02:00
ThomasV d09a10e0f7 fix is_used for unmatured tx 2015-06-13 16:40:50 +02:00
Roman Zeyde 90076b0b79 util: add print_msg() method to DaemonThread
it is used by at synchornizer.py, line 173
2015-06-13 16:58:08 +03:00
Roman Zeyde c324d21107 transaction: added missing import
for "traceback.print_exc(file=sys.stdout)" statement at line 361
2015-06-13 16:58:08 +03:00
Roman Zeyde cb4d3a78b4 verifier: fix typo 2015-06-13 16:58:08 +03:00
ThomasV 12feb4cf9c Merge pull request #1294 from romanz/master
bitcoin: remove dead code
2015-06-13 13:25:28 +02:00
Roman Zeyde 6bb9ee0cf7 bitcoin: remove dead code 2015-06-13 08:34:56 +03:00
ThomasV 7a3ddfc6a4 version 2.3.1 2015-06-12 20:22:02 +02:00
ThomasV 10740470cc fix requests_dir bug 2015-06-12 20:18:06 +02:00
ThomasV d75d3fdf5b fix --pending option 2015-06-12 20:15:53 +02:00
ThomasV 42084a3610 improve docstrings 2015-06-12 10:34:45 +02:00
ThomasV 1fbbd5d65d require network to show request status 2015-06-12 09:58:29 +02:00
ThomasV cbcb799eec add filtering options for listrequests 2015-06-12 09:46:21 +02:00
ThomasV f3597f865b --force option for addrequest 2015-06-11 20:44:38 +02:00
ThomasV db6c69f0da Merge pull request #1289 from Kefkius/patch-1
Fix typo in param_descriptions
2015-06-11 13:47:06 +02:00
ThomasV a103f59686 new flags for listaddresses 2015-06-11 12:49:14 +02:00
ThomasV 317a9de71d check amount before calling make_payment_request 2015-06-11 12:32:52 +02:00
ThomasV ba78093e2e getalias: no check 2015-06-11 12:08:38 +02:00
Kefkius b6e4013a9d Fix typo in param_descriptions
heigh --> height
2015-06-11 04:55:08 -04:00
ThomasV e5b5e8d0f4 comment our ackrequest 2015-06-11 10:50:25 +02:00
ThomasV d6cdc085ea fix #1283 2015-06-11 10:03:26 +02:00
ThomasV 16344b43af fix issue #1282 2015-06-11 08:56:07 +02:00
ThomasV e31ac7905d Clear address cache when interface changes. Send requests only if interface is connected. 2015-06-11 02:10:06 +02:00
Neil Booth 28f440350d Fix request handling.
Handle local requests immediately.
Defer those requiring connectivity until we have an interface.
2015-06-11 08:31:19 +09:00
ThomasV 5714d9f4fc shorter docstrings 2015-06-10 23:48:36 +02:00
ThomasV 145bf5cf0a rename decodetx and sendtx commands. merge mktx and payto commands. 2015-06-10 23:21:25 +02:00
ThomasV e067e34313 make global options: -w and -o 2015-06-10 22:29:31 +02:00
ThomasV 2b9b42d5f7 Merge pull request #1286 from kyuupichan/remove_urllib2
Use requests instead - SSL handling is superior
2015-06-10 21:15:27 +02:00
ThomasV e517321f76 Network: fix handle_requests, must process requests even if we are not connected 2015-06-10 18:26:03 +02:00
ThomasV 6ea04e2d47 Network: Fix switch_to_interface (check that interface is connected) 2015-06-10 18:24:57 +02:00
ThomasV 060e3aa23e plugins: call load_wallet in install wizard 2015-06-10 12:40:08 +02:00
Neil Booth a3ad32bd91 Use requests instead - SSL handling is superior 2015-06-10 16:15:00 +09:00
ThomasV 479a6f84e7 paymentrequest: add headers to http request 2015-06-10 09:04:34 +02:00
ThomasV 8bccf7b2db replace httplib with requests 2015-06-10 08:29:50 +02:00
ThomasV ee6b718ea4 better message 2015-06-09 16:10:44 +02:00
ThomasV f70a996619 fix trezor initialiation hook (pass window in load_wallet) 2015-06-09 09:58:40 +02:00
Neil Booth e8db8983ec Make the synchronizer not a thread.
The synchronizer's work is done from the network proxy's main loop.

A minor problem with the old synchronizer was that it considered itself
out of date if the network was out of date.  This was too generic: the
network can have pending requests unrelated to the synchronizer.  This
resulted in the synchronizer often unnecessarily flipping the wallet
between up-to-date and not-up-to-date, and causing unnecessary calls
to wallet.save_transactions().  This was observable when opening the
network dialog box: frequently just opening it would cause a wallet
status change and transaction flush, simply because the network dialog
sends a get_parameters() request.  This rework of the synchronizer does
not have that issue.
2015-06-09 08:41:31 +09:00
ThomasV 70037b89a9 version 2.3 and release notes 2015-06-08 18:40:21 +02:00
ThomasV 8995cdbf14 rename fields: 'time' -> 'timestamp', payment_requests 2015-06-08 13:36:35 +02:00
ThomasV 357c405ac6 fix publish_request 2015-06-08 13:21:13 +02:00
ThomasV d367930113 amount is in satoshis 2015-06-08 13:20:42 +02:00
ThomasV 9bd94e5062 refactor payment requests 2015-06-08 12:51:45 +02:00
ThomasV 572a463806 reason->memo 2015-06-08 08:06:38 +02:00
ThomasV 3bb00f0006 store json record requests 2015-06-07 21:52:23 +02:00
ThomasV bf755f8ac0 jsonrpc interface 2015-06-07 19:11:54 +02:00
ThomasV 48e53498db improve requests 2015-06-07 18:44:33 +02:00
Neil Booth 98bea614d8 Implement BIP-LI01.
No more need to randomly place change.
2015-06-06 22:25:40 +09:00
ThomasV 0b874b2bb0 Readding pending_transactions_for_notifications, needed by the gui. 2015-06-05 08:56:55 +02:00
Neil Booth a2445aa27d Remove unused vars and imports. 2015-06-05 11:54:00 +09:00