deseed command

This commit is contained in:
ThomasV 2012-05-13 00:43:22 +02:00
parent 634bff6f8a
commit 2e1fd923b8
3 changed files with 31 additions and 2 deletions

View File

@ -24,8 +24,8 @@ from decimal import Decimal
from electrum import Wallet, SecretToASecret, WalletSynchronizer, format_satoshis
known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'restore', 'payto', 'sendtx', 'password', 'addresses', 'history', 'label', 'mktx','seed','import','signmessage','verifymessage','eval']
offline_commands = ['password', 'mktx', 'history', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage', 'eval', 'create', 'addresses', 'import', 'seed']
known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'restore', 'payto', 'sendtx', 'password', 'addresses', 'history', 'label', 'mktx','seed','import','signmessage','verifymessage','eval','deseed']
offline_commands = ['password', 'mktx', 'history', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage', 'eval', 'create', 'addresses', 'import', 'seed','deseed']
protected_commands = ['payto', 'password', 'mktx', 'seed', 'import','signmessage' ]
if __name__ == '__main__':
@ -237,6 +237,8 @@ if __name__ == '__main__':
print "options: --fee, --fromaddr, --changeaddr"
elif cmd2 == 'seed':
print "show generation seed of your wallet. password protected."
elif cmd2 == 'deseed':
print "remove the seed of your wallet."
elif cmd2 == 'eval':
print "Run python eval() on an object\nSyntax: eval <expression>\nExample: eval \"wallet.aliases\""
@ -245,6 +247,16 @@ if __name__ == '__main__':
seed = wallet.pw_decode( wallet.seed, password)
print seed, '"'+' '.join(mnemonic.mn_encode(seed))+'"'
elif cmd == 'deseed':
print "Warning: you are going to remove the seed from this wallet, which will forbid to send coins.\nPlease make sure that you have saved the seed elsewhere."
if raw_input("Are you sure you want to continue? (y/n) ") in ['y','Y','yes']:
wallet.seed = ''
wallet.use_encryption = False
wallet.save()
print "Done."
else:
print "Action canceled."
elif cmd == 'validateaddress':
addr = args[1]
print wallet.is_valid(addr)

View File

@ -60,6 +60,9 @@ def numbify(entry, is_int = False):
def show_seed_dialog(wallet, password, parent):
from electrum import mnemonic
if not wallet.seed:
show_message("No seed")
return
try:
seed = wallet.pw_decode( wallet.seed, password)
except:
@ -483,6 +486,10 @@ def password_dialog(parent):
if result != gtk.RESPONSE_CANCEL: return pw
def change_password_dialog(wallet, parent, icon):
if not wallet.seed:
show_message("No seed")
return
if parent:
msg = 'Your wallet is encrypted. Use this dialog to change the password. To disable wallet encryption, enter an empty new password.' if wallet.use_encryption else 'Your wallet keys are not encrypted'
else:

View File

@ -695,6 +695,11 @@ class ElectrumWindow(QMainWindow):
@staticmethod
def show_seed_dialog(wallet, parent=None):
from electrum import mnemonic
if not wallet.seed:
QMessageBox.information(parent, 'Message', 'No seed', 'OK')
return
if wallet.use_encryption:
password = parent.password_dialog()
if not password: return
@ -852,6 +857,11 @@ class ElectrumWindow(QMainWindow):
@staticmethod
def change_password_dialog( wallet, parent=None ):
if not wallet.seed:
QMessageBox.information(parent, 'Message', 'No seed', 'OK')
return
d = QDialog(parent)
d.setModal(1)