ThomasV
11 years ago
6 changed files with 78 additions and 70 deletions
@ -1,4 +1,5 @@ |
|||
ELECTRUM_VERSION = "2.0" # version of the client package |
|||
ELECTRUM_VERSION = "1.9.8" # version of the client package |
|||
PROTOCOL_VERSION = '0.9' # protocol version requested |
|||
SEED_VERSION = 6 # bump this every time the seed generation is modified |
|||
NEW_SEED_VERSION = 6 # bip32 wallets |
|||
OLD_SEED_VERSION = 4 # old electrum deterministic generation |
|||
SEED_PREFIX = '01' # the hash of the mnemonic seed must begin with this |
|||
|
@ -1,57 +0,0 @@ |
|||
from version import SEED_VERSION |
|||
from wallet import OldWallet, Wallet |
|||
|
|||
class WalletFactory(object): |
|||
def __new__(self, storage): |
|||
|
|||
if storage.get('bitkey', False): |
|||
# if user requested support for Bitkey device, |
|||
# import Bitkey driver |
|||
from wallet_bitkey import WalletBitkey |
|||
return WalletBitkey(config) |
|||
|
|||
seed_version = storage.get('seed_version', SEED_VERSION) |
|||
if seed_version not in [4, 6]: |
|||
msg = "This wallet seed is not supported." |
|||
if seed_version in [5]: |
|||
msg += "\nTo open this wallet, try 'git checkout seed_v%d'"%seed_version |
|||
print msg |
|||
sys.exit(1) |
|||
|
|||
|
|||
if seed_version == 4: |
|||
return OldWallet(storage) |
|||
else: |
|||
return Wallet(storage) |
|||
|
|||
|
|||
@classmethod |
|||
def from_seed(self, seed, storage): |
|||
import mnemonic |
|||
if not seed: |
|||
return |
|||
|
|||
words = seed.strip().split() |
|||
try: |
|||
mnemonic.mn_decode(words) |
|||
uses_electrum_words = True |
|||
except Exception: |
|||
uses_electrum_words = False |
|||
|
|||
try: |
|||
seed.decode('hex') |
|||
is_hex = True |
|||
except Exception: |
|||
is_hex = False |
|||
|
|||
if is_hex or (uses_electrum_words and len(words) != 13): |
|||
print "old style wallet", len(words), words |
|||
w = OldWallet(storage) |
|||
w.init_seed(seed) #hex |
|||
else: |
|||
#assert is_seed(seed) |
|||
w = Wallet(storage) |
|||
w.init_seed(seed) |
|||
|
|||
|
|||
return w |
Loading…
Reference in new issue