class GenesisImporter {

    @PostConstruct
    public void loadGenesisDataFromResources() {
        if (CREATOR_PUBLIC_KEY == null) {
            try (
                final InputStream is =
                    ClassLoader.getSystemResourceAsStream(genesisParametersLocation);
                final JsonParser jsonParser = jsonFactory.createParser(is)
            ) {
                while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
                    final String currentName = jsonParser.getCurrentName();
                    final JsonToken currentToken = jsonParser.currentToken();
                    if (currentToken == JsonToken.FIELD_NAME) {
                        if (GENESIS_PUBLIC_KEY_JSON_FIELD_NAME.endsWith(currentName)) {
                            jsonParser.nextToken();
                            CREATOR_PUBLIC_KEY = Convert.parseHexString(jsonParser.getText());
                            CREATOR_ID = AccountService.getId(CREATOR_PUBLIC_KEY);
                        } else if (EPOCH_BEGINNING_JSON_FIELD_NAME.endsWith(currentName)) {
                            jsonParser.nextToken();
                            final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
                            EPOCH_BEGINNING = dateFormat.parse(jsonParser.getText()).getTime();
                        }
                    }
                }
            } catch (IOException | ParseException e) {
                log.error("genesis Parameters were not loaded = {}", e.getMessage());
                throw new RuntimeException("Failed to load genesis parameters", e);
            }
        }
    }

    @Inject public  GenesisImporter(
        BlockchainConfig blockchainConfig,
        BlockchainConfigUpdater blockchainConfigUpdater,
        DatabaseManager databaseManager,
        AplAppStatus aplAppStatus,
        GenesisImporterProducer genesisImporterProducer,
        AccountGuaranteedBalanceTable accountGuaranteedBalanceTable,
        AccountTable accountTable,
        ApplicationJsonFactory jsonFactory,
        PropertiesHolder propertiesHolder,
        AccountService accountService,
        AccountPublicKeyService accountPublicKeyService
    );

}