def main(num_validators: int, mnemonic_language: str, folder: str, chain: str, password: str) -> None: check_python_version() mnemonic = generate_mnemonic(mnemonic_language, WORD_LISTS_PATH) amounts = [MAX_DEPOSIT_AMOUNT] * num_validators folder = os.path.join(folder, DEFAULT_VALIDATOR_KEYS_FOLDER_NAME) setting = get_setting(chain) if not os.path.exists(folder): os.mkdir(folder) click.clear() click.echo(RHINO_0) click.echo('Creating your keys.') credentials = CredentialList.from_mnemonic( mnemonic=mnemonic, num_keys=num_validators, amounts=amounts, fork_version=setting.GENESIS_FORK_VERSION, ) click.echo('Saving your keystore(s).') keystore_filefolders = credentials.export_keystores(password=password, folder=folder) click.echo('Creating your deposit(s).') deposits_file = credentials.export_deposit_data_json(folder=folder) click.echo('Verifying your keystore(s).') assert credentials.verify_keystores( keystore_filefolders=keystore_filefolders, password=password) click.echo('Verifying your deposit(s).') assert verify_deposit_data_json(deposits_file) click.echo('\nSuccess!\nYour keys can be found at: %s' % folder) click.pause('\n\nPress any key.')
def generate_keys(ctx: click.Context, validator_start_index: int, num_validators: int, folder: str, chain: str, keystore_password: str, **kwargs: Any) -> None: mnemonic = ctx.obj['mnemonic'] mnemonic_password = ctx.obj['mnemonic_password'] amounts = [MAX_DEPOSIT_AMOUNT] * num_validators folder = os.path.join(folder, DEFAULT_VALIDATOR_KEYS_FOLDER_NAME) setting = get_setting(chain) if not os.path.exists(folder): os.mkdir(folder) click.clear() click.echo(RHINO_0) click.echo('Creating your keys.') credentials = CredentialList.from_mnemonic( mnemonic=mnemonic, mnemonic_password=mnemonic_password, num_keys=num_validators, amounts=amounts, fork_version=setting.GENESIS_FORK_VERSION, start_index=validator_start_index, ) keystore_filefolders = credentials.export_keystores( password=keystore_password, folder=folder) deposits_file = credentials.export_deposit_data_json(folder=folder) if not credentials.verify_keystores( keystore_filefolders=keystore_filefolders, password=keystore_password): raise ValidationError("Failed to verify the keystores.") if not verify_deposit_data_json(deposits_file): raise ValidationError("Failed to verify the deposit data JSON files.") click.echo('\nSuccess!\nYour keys can be found at: %s' % folder) click.pause('\n\nPress any key.')