restore from master public key with seed v4
This commit is contained in:
@@ -74,6 +74,7 @@ register_command('getconfig', 1, 1, False, False, False, 'Return a co
|
||||
register_command('getpubkeys', 1, 1, False, True, False, 'Return the public keys for a wallet address', 'getpubkeys <bitcoin address>')
|
||||
register_command('getrawtransaction', 1, 2, True, False, False, 'Retrieve a transaction', 'getrawtransaction <txhash> <height>')
|
||||
register_command('getseed', 0, 0, False, True, True, 'Print the generation seed of your wallet.')
|
||||
register_command('getmpk', 0, 0, False, True, False, 'Return your wallet\'s master public key', 'getmpk')
|
||||
register_command('help', 0, 1, False, False, False, 'Prints this help')
|
||||
register_command('history', 0, 0, True, True, False, 'Returns the transaction history of your wallet')
|
||||
register_command('importprivkey', 1, 1, False, True, True, 'Import a private key', 'importprivkey <privatekey>')
|
||||
@@ -214,6 +215,9 @@ class Commands:
|
||||
def getservers(self):
|
||||
return self.network.get_servers()
|
||||
|
||||
def getmpk(self):
|
||||
return self.wallet.get_master_public_key()
|
||||
|
||||
def getseed(self):
|
||||
mnemonic = self.wallet.get_mnemonic(self.password)
|
||||
seed = self.wallet.get_seed(self.password)
|
||||
|
||||
@@ -339,7 +339,16 @@ class Wallet:
|
||||
self.storage.put('seed', self.seed, True)
|
||||
self.storage.put('seed_version', self.seed_version, True)
|
||||
|
||||
def create_watching_only_wallet(self, c0, K0):
|
||||
def create_watching_only_wallet(self, params):
|
||||
K0, c0 = params
|
||||
if not K0:
|
||||
return
|
||||
|
||||
if not c0:
|
||||
self.seed_version = 4
|
||||
self.create_old_account(K0)
|
||||
return
|
||||
|
||||
cK0 = ""
|
||||
self.master_public_keys = {
|
||||
"m/0'/": (c0, K0, cK0),
|
||||
@@ -350,7 +359,8 @@ class Wallet:
|
||||
|
||||
def create_accounts(self):
|
||||
if self.seed_version == 4:
|
||||
self.create_old_account()
|
||||
mpk = OldAccount.mpk_from_seed(self.seed)
|
||||
self.create_old_account(mpk)
|
||||
else:
|
||||
# create default account
|
||||
self.create_master_keys('1')
|
||||
@@ -513,8 +523,7 @@ class Wallet:
|
||||
self.set_label(k, name)
|
||||
|
||||
|
||||
def create_old_account(self):
|
||||
mpk = OldAccount.mpk_from_seed(self.seed)
|
||||
def create_old_account(self, mpk):
|
||||
self.storage.put('master_public_key', mpk, True)
|
||||
self.accounts[0] = OldAccount({'mpk':mpk, 0:[], 1:[]})
|
||||
self.save_accounts()
|
||||
|
||||
Reference in New Issue
Block a user