do not derive private keys when there is no seed
This commit is contained in:
parent
04d78a3bf4
commit
e34f7dce7f
5
electrum
5
electrum
|
@ -35,7 +35,7 @@ import electrum
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
from electrum import Wallet, SecretToASecret, WalletSynchronizer, format_satoshis
|
from electrum import Wallet, WalletSynchronizer, format_satoshis
|
||||||
|
|
||||||
known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'restore', 'payto', 'sendtx', 'password', 'addresses', 'history', 'label', 'mktx','seed','import','signmessage','verifymessage','eval','deseed','reseed']
|
known_commands = ['help', 'validateaddress', 'balance', 'contacts', 'create', 'restore', 'payto', 'sendtx', 'password', 'addresses', 'history', 'label', 'mktx','seed','import','signmessage','verifymessage','eval','deseed','reseed']
|
||||||
offline_commands = ['password', 'mktx', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage', 'eval', 'create', 'addresses', 'import', 'seed','deseed','reseed']
|
offline_commands = ['password', 'mktx', 'label', 'contacts', 'help', 'validateaddress', 'signmessage', 'verifymessage', 'eval', 'create', 'addresses', 'import', 'seed','deseed','reseed']
|
||||||
|
@ -361,8 +361,7 @@ if __name__ == '__main__':
|
||||||
b = "%d %d %s"%(no, ni, str(Decimal(wallet.get_addr_balance(addr)[0])/100000000))
|
b = "%d %d %s"%(no, ni, str(Decimal(wallet.get_addr_balance(addr)[0])/100000000))
|
||||||
else: b=''
|
else: b=''
|
||||||
if options.show_keys:
|
if options.show_keys:
|
||||||
pk = wallet.get_private_key(addr, password)
|
addr += ':' + str(wallet.get_private_key_base58(addr, password))
|
||||||
addr = addr + ':' + SecretToASecret(pk)
|
|
||||||
print addr, b, _type, label
|
print addr, b, _type, label
|
||||||
|
|
||||||
if cmd == 'history':
|
if cmd == 'history':
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
from wallet import Wallet, SecretToASecret, format_satoshis
|
from wallet import Wallet, format_satoshis
|
||||||
from interface import WalletSynchronizer
|
from interface import WalletSynchronizer
|
||||||
from interface import TcpStratumInterface
|
from interface import TcpStratumInterface
|
||||||
|
|
|
@ -371,6 +371,11 @@ class Wallet:
|
||||||
def get_sequence(self,n,for_change):
|
def get_sequence(self,n,for_change):
|
||||||
return string_to_number( Hash( "%d:%d:"%(n,for_change) + self.master_public_key ) )
|
return string_to_number( Hash( "%d:%d:"%(n,for_change) + self.master_public_key ) )
|
||||||
|
|
||||||
|
def get_private_key_base58(self, address, password):
|
||||||
|
pk = self.get_private_key(address, password)
|
||||||
|
if pk is None: return None
|
||||||
|
return SecretToASecret( pk )
|
||||||
|
|
||||||
def get_private_key(self, address, password):
|
def get_private_key(self, address, password):
|
||||||
""" Privatekey(type,n) = Master_private_key + H(n|S|type) """
|
""" Privatekey(type,n) = Master_private_key + H(n|S|type) """
|
||||||
order = generator_secp256k1.order()
|
order = generator_secp256k1.order()
|
||||||
|
@ -388,6 +393,7 @@ class Wallet:
|
||||||
for_change = True
|
for_change = True
|
||||||
else:
|
else:
|
||||||
raise BaseException("unknown address")
|
raise BaseException("unknown address")
|
||||||
|
if not self.seed: return None
|
||||||
try:
|
try:
|
||||||
seed = self.pw_decode( self.seed, password)
|
seed = self.pw_decode( self.seed, password)
|
||||||
except:
|
except:
|
||||||
|
|
Loading…
Reference in New Issue