本文整理汇总了Python中electrum_ltc.Wallet.from_seed方法的典型用法代码示例。如果您正苦于以下问题:Python Wallet.from_seed方法的具体用法?Python Wallet.from_seed怎么用?Python Wallet.from_seed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类electrum_ltc.Wallet
的用法示例。
在下文中一共展示了Wallet.from_seed方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def __init__(self, _config, _network):
global wallet, network, contacts, config
network = _network
config = _config
network.register_callback('updated', update_callback)
network.register_callback('connected', update_callback)
network.register_callback('disconnected', update_callback)
network.register_callback('disconnecting', update_callback)
contacts = util.StoreDict(config, 'contacts')
storage = WalletStorage(config.get_wallet_path())
if not storage.file_exists:
action = self.restore_or_create()
if not action:
exit()
password = droid.dialogGetPassword('Choose a password').result
if password:
password2 = droid.dialogGetPassword('Confirm password').result
if password != password2:
modal_dialog('Error','passwords do not match')
exit()
else:
# set to None if it's an empty string
password = None
if action == 'create':
wallet = Wallet(storage)
seed = wallet.make_seed()
modal_dialog('Your seed is:', seed)
wallet.add_seed(seed, password)
wallet.create_master_keys(password)
wallet.create_main_account(password)
elif action == 'restore':
seed = self.seed_dialog()
if not seed:
exit()
if not Wallet.is_seed(seed):
exit()
wallet = Wallet.from_seed(seed, password, storage)
else:
exit()
msg = "Creating wallet" if action == 'create' else "Restoring wallet"
droid.dialogCreateSpinnerProgress("Electrum-LTC", msg)
droid.dialogShow()
wallet.start_threads(network)
if action == 'restore':
wallet.restore(lambda x: None)
else:
wallet.synchronize()
droid.dialogDismiss()
droid.vibrate()
else:
wallet = Wallet(storage)
wallet.start_threads(network)
示例2: restore
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def restore(self, t):
if t == 'standard':
text = self.enter_seed_dialog(MSG_ENTER_ANYTHING, None)
if not text:
return
if Wallet.is_xprv(text):
password = self.password_dialog()
wallet = Wallet.from_xprv(text, password, self.storage)
elif Wallet.is_old_mpk(text):
wallet = Wallet.from_old_mpk(text, self.storage)
elif Wallet.is_xpub(text):
wallet = Wallet.from_xpub(text, self.storage)
elif Wallet.is_address(text):
wallet = Wallet.from_address(text, self.storage)
elif Wallet.is_private_key(text):
password = self.password_dialog()
wallet = Wallet.from_private_key(text, password, self.storage)
elif Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, password, self.storage)
else:
raise BaseException('unknown wallet type')
elif re.match('(\d+)of(\d+)', t):
n = int(re.match('(\d+)of(\d+)', t).group(2))
key_list = self.multi_seed_dialog(n - 1)
if not key_list:
return
password = self.password_dialog() if any(map(lambda x: Wallet.is_seed(x) or Wallet.is_xprv(x), key_list)) else None
wallet = Wallet.from_multisig(key_list, password, self.storage, t)
else:
self.storage.put('wallet_type', t, False)
# call the constructor to load the plugin (side effect)
Wallet(self.storage)
wallet = always_hook('installwizard_restore', self, self.storage)
if not wallet:
util.print_error("no wallet")
return
# create first keys offline
self.waiting_dialog(wallet.synchronize)
return wallet
示例3: restore
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def restore(self, t):
if t == 'standard':
text = self.enter_seed_dialog(MSG_ENTER_ANYTHING, None)
if not text:
return
if Wallet.is_xprv(text):
password = self.password_dialog()
wallet = Wallet.from_xprv(text, password, self.storage)
elif Wallet.is_old_mpk(text):
wallet = Wallet.from_old_mpk(text, self.storage)
elif Wallet.is_xpub(text):
wallet = Wallet.from_xpub(text, self.storage)
elif Wallet.is_address(text):
wallet = Wallet.from_address(text, self.storage)
elif Wallet.is_private_key(text):
password = self.password_dialog()
wallet = Wallet.from_private_key(text, password, self.storage)
elif Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, password, self.storage)
else:
raise BaseException('unknown wallet type')
elif t in ['2of2', '2of3']:
key_list = self.multi_seed_dialog(1 if t == '2of2' else 2)
if not key_list:
return
password = self.password_dialog() if any(map(lambda x: Wallet.is_seed(x) or Wallet.is_xprv(x), key_list)) else None
wallet = Wallet.from_multisig(key_list, password, self.storage)
else:
self.storage.put('wallet_type', t)
wallet = always_hook('installwizard_restore', self, self.storage)
if not wallet:
return
# create first keys offline
self.waiting_dialog(wallet.synchronize)
return wallet
示例4: __init__
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def __init__(self):
global wallet
self.qr_data = None
storage = WalletStorage('/sdcard/electrum-ltc/authenticator')
if not storage.file_exists:
action = self.restore_or_create()
if not action:
exit()
password = droid.dialogGetPassword('Choose a password').result
if password:
password2 = droid.dialogGetPassword('Confirm password').result
if password != password2:
modal_dialog('Error', 'Passwords do not match')
exit()
else:
password = None
if action == 'create':
wallet = Wallet(storage)
seed = wallet.make_seed()
modal_dialog('Your seed is:', seed)
elif action == 'import':
seed = self.seed_dialog()
if not seed:
exit()
if not Wallet.is_seed(seed):
exit()
wallet = Wallet.from_seed(seed, storage)
else:
exit()
wallet.add_seed(seed, password)
wallet.create_master_keys(password)
wallet.create_main_account(password)
else:
wallet = Wallet(storage)
示例5: run
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def run(self, action):
if action == 'new':
action, t = self.restore_or_create()
if action is None:
return
if action == 'create':
if t == 'standard':
wallet = Wallet(self.storage)
elif t == '2fa':
wallet = Wallet_2of3(self.storage)
run_hook('create_cold_seed', wallet, self)
self.create_cold_seed(wallet)
return
elif t == '2of2':
wallet = Wallet_2of2(self.storage)
action = 'create_2of2_1'
elif t == '2of3':
wallet = Wallet_2of3(self.storage)
action = 'create_2of3_1'
if action in ['create_2fa_2', 'create_2of3_2']:
wallet = Wallet_2of3(self.storage)
if action in ['create', 'create_2of2_1', 'create_2fa_2', 'create_2of3_1']:
seed = wallet.make_seed()
sid = None if action == 'create' else 'hot'
if not self.show_seed(seed, sid):
return
if not self.verify_seed(seed, sid):
return
password = self.password_dialog()
wallet.add_seed(seed, password)
if action == 'create':
wallet.create_accounts(password)
self.waiting_dialog(wallet.synchronize)
elif action == 'create_2of2_1':
action = 'create_2of2_2'
elif action == 'create_2of3_1':
action = 'create_2of3_2'
elif action == 'create_2fa_2':
action = 'create_2fa_3'
if action == 'create_2of2_2':
xpub_hot = wallet.master_public_keys.get("m/")
xpub = self.multi_mpk_dialog(xpub_hot, 1)
if not xpub:
return
wallet.add_master_public_key("cold/", xpub)
wallet.create_account()
self.waiting_dialog(wallet.synchronize)
if action == 'create_2of3_2':
xpub_hot = wallet.master_public_keys.get("m/")
r = self.multi_mpk_dialog(xpub_hot, 2)
if not r:
return
xpub1, xpub2 = r
wallet.add_master_public_key("cold/", xpub1)
wallet.add_master_public_key("remote/", xpub2)
wallet.create_account()
self.waiting_dialog(wallet.synchronize)
if action == 'create_2fa_3':
run_hook('create_remote_key', wallet, self)
if not wallet.master_public_keys.get("remote/"):
return
wallet.create_account()
self.waiting_dialog(wallet.synchronize)
if action == 'restore':
if t == 'standard':
text = self.enter_seed_dialog(MSG_ENTER_ANYTHING, None)
if not text:
return
if Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, self.storage)
wallet.add_seed(text, password)
wallet.create_accounts(password)
elif Wallet.is_mpk(text):
wallet = Wallet.from_mpk(text, self.storage)
elif Wallet.is_address(text):
wallet = Wallet.from_address(text, self.storage)
elif Wallet.is_private_key(text):
wallet = Wallet.from_private_key(text, self.storage)
else:
raise
elif t in ['2fa', '2of2']:
#.........这里部分代码省略.........
示例6: restore
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def restore(self, t):
if t == 'standard':
text = self.enter_seed_dialog(MSG_ENTER_ANYTHING, None)
if not text:
return
if Wallet.is_xprv(text):
password = self.password_dialog()
wallet = Wallet.from_xprv(text, password, self.storage)
elif Wallet.is_old_mpk(text):
wallet = Wallet.from_old_mpk(text, self.storage)
elif Wallet.is_xpub(text):
wallet = Wallet.from_xpub(text, self.storage)
elif Wallet.is_address(text):
wallet = Wallet.from_address(text, self.storage)
elif Wallet.is_private_key(text):
wallet = Wallet.from_private_key(text, self.storage)
elif Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, self.storage)
wallet.add_seed(text, password)
wallet.create_master_keys(password)
wallet.create_main_account(password)
else:
raise BaseException('unknown wallet type')
elif t in ['2of2']:
r = self.multi_seed_dialog(1)
if not r:
return
text1, text2 = r
wallet = Wallet_2of2(self.storage)
if Wallet.is_seed(text1) or Wallet.is_seed(text2):
password = self.password_dialog()
else:
password = None
if Wallet.is_seed(text2) and Wallet.is_xpub(text1):
c = text1
text1 = text2
text2 = c
if Wallet.is_seed(text1):
wallet.add_seed(text1, password)
wallet.create_master_keys(password)
else:
wallet.add_master_public_key("x1/", text1)
if Wallet.is_seed(text2):
wallet.add_cosigner_seed(text2, "x2/", password)
elif Wallet.is_xpub(text2):
wallet.add_master_public_key("x2/", text2)
wallet.create_main_account(password)
elif t in ['2of3']:
r = self.multi_seed_dialog(2)
if not r:
return
text1, text2, text3 = r
wallet = Wallet_2of3(self.storage)
if Wallet.is_seed(text1) or Wallet.is_seed(text2) or Wallet.is_seed(text3):
password = self.password_dialog()
else:
password = None
if Wallet.is_xpub(text1) and Wallet.is_seed(text2):
temp = text1
text1 = text2
text2 = temp
if Wallet.is_xpub(text1) and Wallet.is_seed(text3):
temp = text1
text1 = text3
text3 = temp
if Wallet.is_seed(text1):
wallet.add_seed(text1, password)
wallet.create_master_keys(password)
else:
wallet.add_master_public_key("x1/", text1)
if Wallet.is_seed(text2):
wallet.add_cosigner_seed(text2, "x2/", password)
elif Wallet.is_xpub(text2):
wallet.add_master_public_key("x2/", text2)
if Wallet.is_seed(text3):
wallet.add_cosigner_seed(text3, "x3/", password)
elif Wallet.is_xpub(text3):
wallet.add_master_public_key("x3/", text3)
wallet.create_main_account(password)
else:
self.storage.put('wallet_type', t)
wallet = run_hook('installwizard_restore', self, self.storage)
if not wallet:
return
#.........这里部分代码省略.........
示例7: restore
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def restore(self, t):
if t == 'standard':
text = self.enter_seed_dialog(MSG_ENTER_ANYTHING, None)
if not text:
return
if Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, self.storage)
wallet.add_seed(text, password)
wallet.create_accounts(password)
elif Wallet.is_xprv(text):
password = self.password_dialog()
wallet = Wallet.from_xprv(text, password, self.storage)
elif Wallet.is_old_mpk(text):
wallet = Wallet.from_old_mpk(text, self.storage)
elif Wallet.is_xpub(text):
wallet = Wallet.from_xpub(text, self.storage)
elif Wallet.is_address(text):
wallet = Wallet.from_address(text, self.storage)
elif Wallet.is_private_key(text):
wallet = Wallet.from_private_key(text, self.storage)
else:
raise
elif t in ['2of2']:
r = self.multi_seed_dialog(1)
if not r:
return
text1, text2 = r
wallet = Wallet_2of2(self.storage)
if Wallet.is_seed(text1) or Wallet.is_seed(text2):
password = self.password_dialog()
else:
password = None
if Wallet.is_seed(text1):
wallet.add_seed(text1, password)
if Wallet.is_seed(text2):
wallet.add_cold_seed(text2, password)
else:
wallet.add_master_public_key("cold/", text2)
else:
assert Wallet.is_xpub(text1)
if Wallet.is_seed(text2):
wallet.add_seed(text2, password)
wallet.add_master_public_key("cold/", text1)
else:
wallet.add_master_public_key("m/", text1)
wallet.add_master_public_key("cold/", text2)
wallet.create_accounts(password)
elif t in ['2of3']:
r = self.multi_seed_dialog(2)
if not r:
return
text1, text2, text3 = r
wallet = Wallet_2of3(self.storage)
if Wallet.is_seed(text1) or Wallet.is_seed(text2) or Wallet.is_seed(text3):
password = self.password_dialog()
else:
password = None
if Wallet.is_seed(text1):
wallet.add_seed(text1, password)
if Wallet.is_seed(text2):
wallet.add_cold_seed(text2, password)
else:
wallet.add_master_public_key("cold/", text2)
elif Wallet.is_xpub(text1):
if Wallet.is_seed(text2):
wallet.add_seed(text2, password)
wallet.add_master_public_key("cold/", text1)
else:
wallet.add_master_public_key("m/", text1)
wallet.add_master_public_key("cold/", text2)
wallet.create_accounts(password)
else:
wallet = run_hook('installwizard_restore', self, self.storage)
if not wallet:
return
# create first keys offline
self.waiting_dialog(wallet.synchronize)
return wallet
示例8: on_release
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def on_release(wallet, seed, _dlg, _btn):
ti_password = _dlg.ids.ti_password
ti_new_password = _dlg.ids.ti_new_password
ti_confirm_password = _dlg.ids.ti_confirm_password
if _btn != _dlg.ids.next:
if mode == 'restore':
# back is disabled cause seed is already set
return
_dlg.close()
if not instance:
# back on create
Factory.CreateRestoreDialog(
on_release=self.on_creatrestore_complete).open()
return
# Confirm
wallet_name = _dlg.ids.ti_wallet_name.text
new_password = unicode(ti_new_password.text)
new_password2 = unicode(ti_confirm_password.text)
if new_password != new_password2:
# passwords don't match
ti_password.text = ""
ti_new_password.text = ""
ti_confirm_password.text = ""
if ti_password.disabled:
ti_new_password.focus = True
else:
ti_password.focus = True
return app.show_error(_('Passwords do not match'), duration=.5)
if not new_password:
new_password = None
if mode == 'restore':
wallet = Wallet.from_seed(seed, self.storage)
password = (unicode(ti_password.text)
if wallet and wallet.use_encryption else
None)
def on_complete(*l):
wallet.create_accounts(new_password)
self.load_network(wallet, mode='restore')
_dlg.close()
self.waiting_dialog(lambda: wallet.add_seed(seed, new_password),
msg=_("saving seed"),
on_complete=on_complete)
return
if not instance:
# create mode
_dlg.close()
seed = wallet.make_seed()
return self.show_seed(password=new_password, wallet=wallet,
wallet_name=wallet_name, mode=mode,
seed=seed)
# change password mode
try:
seed = wallet.decode_seed(password)
except BaseException:
return app.show_error(_('Incorrect Password'), duration=.5)
# test carefully
try:
wallet.update_password(seed, password, new_password)
except BaseException:
return app.show_error(_('Failed to update password'), exit=True)
else:
app.show_info_bubble(
text=_('Password successfully updated'), duration=1,
pos=_btn.pos)
_dlg.close()
if instance is None: # in initial phase
self.load_wallet()
self.app.update_wallet()
示例9: run
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def run(self):
action = self.restore_or_create()
if not action:
return
#gap = self.config.get('gap_limit', 5)
#if gap != 5:
# wallet.gap_limit = gap
# wallet.storage.put('gap_limit', gap, True)
if action == 'create':
wallet = Wallet(self.storage)
wallet.init_seed(None)
if not self.show_seed(wallet):
return
if not self.verify_seed(wallet):
return
ok, old_password, password = self.password_dialog(wallet)
def create():
wallet.save_seed(password)
wallet.synchronize() # generate first addresses offline
self.waiting_dialog(create)
elif action == 'restore':
seed = self.seed_dialog()
if not Wallet.is_seed(seed):
return
wallet = Wallet.from_seed(seed, self.storage)
ok, old_password, password = self.password_dialog(wallet)
wallet.save_seed(password)
elif action == 'watching':
mpk = self.mpk_dialog()
if not mpk:
return
wallet = Wallet.from_mpk(mpk, self.storage)
else: raise
#if not self.config.get('server'):
if self.network:
if self.network.interfaces:
self.network_dialog()
else:
QMessageBox.information(None, _('Warning'), _('You are offline'), _('OK'))
self.network.stop()
self.network = None
# start wallet threads
wallet.start_threads(self.network)
if action == 'restore':
self.waiting_dialog(lambda: wallet.restore(self.waiting_label.setText))
if self.network:
if wallet.is_found():
QMessageBox.information(None, _('Information'), _("Recovery successful"), _('OK'))
else:
QMessageBox.information(None, _('Information'), _("No transactions found for this seed"), _('OK'))
else:
QMessageBox.information(None, _('Information'), _("This wallet was restored offline. It may contain more addresses than displayed."), _('OK'))
return wallet
示例10: run
# 需要导入模块: from electrum_ltc import Wallet [as 别名]
# 或者: from electrum_ltc.Wallet import from_seed [as 别名]
def run(self, action = None):
if action is None:
action = self.restore_or_create()
if action is None:
return
if action == 'create':
t = self.choose_wallet_type()
if not t:
return
if t == '2of3':
run_hook('create_cold_seed', self.storage, self)
return
if action in ['create', 'create2of3']:
wallet = Wallet(self.storage)
seed = wallet.make_seed()
sid = 'hot' if action == 'create2of3' else None
if not self.show_seed(seed, sid):
return
if not self.verify_seed(seed, sid):
return
password = self.password_dialog()
wallet.save_seed(seed, password)
if action == 'create2of3':
run_hook('create_third_key', wallet, self)
if not wallet.master_public_keys.get("remote/"):
return
wallet.create_accounts(password)
# generate first addresses offline
self.waiting_dialog(wallet.synchronize)
elif action == 'restore':
t = self.choose_wallet_type()
if not t:
return
if t == 'standard':
text = self.enter_seed_dialog(True, None)
if Wallet.is_seed(text):
password = self.password_dialog()
wallet = Wallet.from_seed(text, self.storage)
wallet.save_seed(text, password)
wallet.create_accounts(password)
elif Wallet.is_mpk(text):
wallet = Wallet.from_mpk(text, self.storage)
else:
raise
elif t in ['2of2', '2of3']:
r = self.double_seed_dialog()
if not r:
return
text1, text2 = r
password = self.password_dialog()
wallet = Wallet_2of3(self.storage)
if Wallet.is_seed(text1):
wallet.add_seed(text1, password)
if Wallet.is_seed(text2):
wallet.add_cold_seed(text2, password)
else:
wallet.add_master_public_key("cold/", text2)
elif Wallet.is_mpk(text1):
if Wallet.is_seed(text2):
wallet.add_seed(text2, password)
wallet.add_master_public_key("cold/", text1)
else:
wallet.add_master_public_key("m/", text1)
wallet.add_master_public_key("cold/", text2)
run_hook('restore_third_key', wallet, self)
wallet.create_accounts(None)
else:
raise
else: raise
#if not self.config.get('server'):
if self.network:
if self.network.interfaces:
self.network_dialog()
else:
QMessageBox.information(None, _('Warning'), _('You are offline'), _('OK'))
self.network.stop()
self.network = None
#.........这里部分代码省略.........