def create(ctx, account_type, testnet): """ Creates a new wallet """ # txn_data_provider and related params come from the # global context. passphrase = "" if ctx.obj['passphrase']: # Let's prompt for a passphrase conf = "a" i = 0 while passphrase != conf and i < 3: passphrase = getpass.getpass("Enter desired passphrase: ") conf = getpass.getpass("Confirm passphrase: ") i += 1 if passphrase != conf: ctx.fail("Passphrases don't match. Quitting.") options = {"account_type": account_type, "passphrase": passphrase, "data_provider": ctx.obj['data_provider'], "testnet": testnet, "wallet_path": ctx.obj['wallet_path']} logger.info("Creating wallet with options: %r" % options) created = Two1Wallet.configure(options) if created: # Make sure it opens logger.info("Wallet created.") try: wallet = Two1Wallet(params_or_file=ctx.obj['wallet_path'], data_provider=ctx.obj['data_provider'], passphrase=passphrase) click.echo("Wallet successfully created!") adder = " (and your passphrase) " if passphrase else " " click.echo("Your wallet can be recovered using the following set of words (in that order).") click.echo("Please store them%ssafely." % adder) click.echo("\n%s\n" % wallet._orig_params['master_seed']) except Exception as e: logger.debug("Error opening created wallet: %s" % e) click.echo("Wallet was not created properly.") ctx.exit(code=3) else: ctx.fail("Wallet was not created.")
def load_wallet(wallet_path, data_provider, passphrase): """ Loads a wallet. Args: wallet_path (str): The path to the wallet to be loaded. data_provider (BaseProvider): A blockchain data provider object. passphrase (str): Passphrase to use to unlock the wallet if the wallet requires unlocking. """ global wallet try: logger.debug("In load_wallet...") logger.debug("\twallet_path = %s" % wallet_path) logger.debug("\tdata_provider = %r" % data_provider) logger.debug("\tpassphrase = %r" % bool(passphrase)) wallet['obj'] = Two1Wallet(params_or_file=wallet_path, data_provider=data_provider, passphrase=passphrase) wallet['locked'] = False except Exception as e: raise WalletNotLoadedError("Wallet loading failed: %s" % e)