def create_character(self, emitter, config_file, json_ipc, load_seednodes=True): # TODO: embed compatibility layer? ursula_config = self.config_options.create_config(emitter, config_file) is_clef = ClefSigner.is_valid_clef_uri(self.config_options.signer_uri) # TODO: Oh client_password = None if not ursula_config.federated_only: if not self.config_options.dev and not json_ipc and not is_clef: client_password = get_client_password( checksum_address=ursula_config.worker_address, envvar=NUCYPHER_ENVVAR_WORKER_ETH_PASSWORD) try: URSULA = make_cli_character( character_config=ursula_config, emitter=emitter, min_stake=self.min_stake, teacher_uri=self.teacher_uri, unlock_keyring=not self.config_options.dev, lonely=self.config_options.lonely, client_password=client_password, start_learning_now=load_seednodes) return ursula_config, URSULA except NucypherKeyring.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) # TODO: Exit codes (not only for this, but for other exceptions) return click.get_current_context().exit(1)
def create_character(self, emitter, config_file, json_ipc, load_seednodes=True): config = self.config_options.create_config(emitter, config_file) client_password = None is_clef = ClefSigner.is_valid_clef_uri(self.config_options.signer_uri) eth_password_is_needed = not config.federated_only and not self.hw_wallet and not config.dev_mode and not is_clef if eth_password_is_needed: if json_ipc: client_password = os.environ.get(NUCYPHER_ENVVAR_ALICE_ETH_PASSWORD, NO_PASSWORD) if client_password is NO_PASSWORD: message = f"--json-ipc implies the {NUCYPHER_ENVVAR_ALICE_ETH_PASSWORD} envvar must be set." click.BadOptionUsage(option_name='--json-ipc', message=message) else: client_password = get_client_password(checksum_address=config.checksum_address, envvar=NUCYPHER_ENVVAR_ALICE_ETH_PASSWORD) try: ALICE = make_cli_character(character_config=config, emitter=emitter, unlock_keyring=not config.dev_mode, teacher_uri=self.teacher_uri, min_stake=self.min_stake, client_password=client_password, start_learning_now=load_seednodes, lonely=self.config_options.lonely) return ALICE except NucypherKeyring.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) click.get_current_context().exit(1)
def create_character(self, emitter, config_file): config = self.config_options.create_config(emitter, config_file) return make_cli_character(character_config=config, emitter=emitter, unlock_keyring=not self.config_options.dev, teacher_uri=self.teacher_uri, min_stake=self.min_stake)
def create_character(self, emitter, config_file, json_ipc, load_seednodes=True): ursula_config = self.config_options.create_config(emitter, config_file) is_clef = ClefSigner.is_valid_clef_uri(self.config_options.signer_uri) password_required = all( (not ursula_config.federated_only, not self.config_options.dev, not json_ipc, not is_clef)) __password = None if password_required: __password = get_client_password( checksum_address=ursula_config.worker_address, envvar=NUCYPHER_ENVVAR_WORKER_ETH_PASSWORD) try: URSULA = make_cli_character( character_config=ursula_config, emitter=emitter, min_stake=self.min_stake, teacher_uri=self.teacher_uri, unlock_keyring=not self.config_options.dev, client_password=__password, unlock_signer= False, # Ursula's unlock is managed separately using client_password. lonely=self.config_options.lonely, start_learning_now=load_seednodes, json_ipc=json_ipc) return ursula_config, URSULA except NucypherKeyring.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) # TODO: Exit codes (not only for this, but for other exceptions) return click.get_current_context().exit(1)
def create_character(self, emitter, config_file, json_ipc): config = self.config_options.create_config(emitter, config_file) BOB = make_cli_character(character_config=config, emitter=emitter, unlock_keyring=not self.config_options.dev, unlock_signer=not config.federated_only and config.signer_uri, teacher_uri=self.teacher_uri, min_stake=self.min_stake, json_ipc=json_ipc) return BOB
def create_character(self, emitter, config_file, json_ipc, load_seednodes=True): config = self.config_options.create_config(emitter, config_file) try: ALICE = make_cli_character(character_config=config, emitter=emitter, unlock_keystore=not config.dev_mode, unlock_signer=not config.federated_only, teacher_uri=self.teacher_uri, min_stake=self.min_stake, start_learning_now=load_seednodes, lonely=self.config_options.lonely, json_ipc=json_ipc) return ALICE except Keystore.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) click.get_current_context().exit(1)