-WIP-electrum-btcp/plugins
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
..
audio_modem More cleanup of WaitingDialog 2015-12-26 11:18:32 +09:00
cosigner_pool finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
email_requests Make more dialogs window-modal 2015-12-23 12:20:19 +09:00
exchange_rate Merge branch 'master' of https://github.com/spesmilo/electrum 2015-12-24 06:59:16 +05:30
greenaddress_instant Fix greenaddress modality and centring issues 2015-12-23 20:13:17 +09:00
keepkey Better install wizard 2016-01-01 16:48:18 +09:00
labels Make more dialogs window-modal 2015-12-23 12:20:19 +09:00
ledger Have close_wallet hook take a wallet. 2015-12-31 10:31:49 +09:00
plot finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
trezor Better install wizard 2016-01-01 16:48:18 +09:00
trustedcoin Better install wizard 2016-01-01 16:48:18 +09:00
virtualkeyboard finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
README plugins readme 2015-02-22 12:28:18 +01:00
__init__.py finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00

README

Plugin rules:

 * The plugin system of Electrum is designed to allow the development
   of new features without increasing the core code of Electrum.

 * Electrum is written in pure python. if you want to add a feature
   that requires non-python libraries, then it must be submitted as a
   plugin. If the feature you want to add requires communication with
   a remote server (not an Electrum server), then it should be a
   plugin as well. If the feature you want to add introduces new
   dependencies in the code, then it should probably be a plugin.

 * We expect plugin developers to maintain their plugin code. However,
   once a plugin is merged in Electrum, we will have to maintain it
   too, because changes in the Electrum code often require updates in
   the plugin code. Therefore, plugins have to be easy to maintain. If
   we believe that a plugin will create too much maintenance work in
   the future, it will be rejected.

 * Plugins should be compatible with Electrum's conventions. If your
   plugin does not fit with Electrum's architecture, or if we believe
   that it will create too much maintenance work, it will not be
   accepted. In particular, do not duplicate existing Electrum code in
   your plugin.

 * We may decide to remove a plugin after it has been merged in
   Electrum. For this reason, a plugin must be easily removable,
   without putting at risk the user's bitcoins. If we feel that a
   plugin cannot be removed without threatening users who rely on it,
   we will not merge it.