electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

cmdline.py (1895B)


      1 #!/usr/bin/env python
      2 #
      3 # Electrum - Lightweight Bitcoin Client
      4 # Copyright (C) 2015 Thomas Voegtlin
      5 #
      6 # Permission is hereby granted, free of charge, to any person
      7 # obtaining a copy of this software and associated documentation files
      8 # (the "Software"), to deal in the Software without restriction,
      9 # including without limitation the rights to use, copy, modify, merge,
     10 # publish, distribute, sublicense, and/or sell copies of the Software,
     11 # and to permit persons to whom the Software is furnished to do so,
     12 # subject to the following conditions:
     13 #
     14 # The above copyright notice and this permission notice shall be
     15 # included in all copies or substantial portions of the Software.
     16 #
     17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     20 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
     21 # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
     22 # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     23 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     24 # SOFTWARE.
     25 
     26 from electrum.i18n import _
     27 from electrum.plugin import hook
     28 from .trustedcoin import TrustedCoinPlugin
     29 
     30 
     31 class Plugin(TrustedCoinPlugin):
     32 
     33     def prompt_user_for_otp(self, wallet, tx):  # FIXME this is broken
     34         if not isinstance(wallet, self.wallet_class):
     35             return
     36         if not wallet.can_sign_without_server():
     37             self.logger.info("twofactor:sign_tx")
     38             auth_code = None
     39             if wallet.keystores['x3/'].can_sign(tx, ignore_watching_only=True):
     40                 msg = _('Please enter your Google Authenticator code:')
     41                 auth_code = int(input(msg))
     42             else:
     43                 self.logger.info("twofactor: xpub3 not needed")
     44             wallet.auth_code = auth_code
     45