src/main/generic/consensus/GenesisConfigOffline.js
class GenesisConfig {
static main() {
GenesisConfig.init(GenesisConfig.CONFIGS['main']);
}
static test() {
GenesisConfig.init(GenesisConfig.CONFIGS['test']);
}
static dev() {
GenesisConfig.init(GenesisConfig.CONFIGS['dev']);
}
static bounty() {
GenesisConfig.init(GenesisConfig.CONFIGS['bounty']);
}
/**
* @param {{NETWORK_ID:number,NETWORK_NAME:string}} config
*/
static init(config) {
if (GenesisConfig._config) throw new Error('GenesisConfig already initialized');
if (!config.NETWORK_ID) throw new Error('Config is missing network id');
if (!config.NETWORK_NAME) throw new Error('Config is missing network name');
GenesisConfig._config = config;
}
/**
* @type {number}
*/
static get NETWORK_ID() {
if (!GenesisConfig._config) throw new Error('GenesisConfig not initialized');
return GenesisConfig._config.NETWORK_ID;
}
/**
* @type {string}
*/
static get NETWORK_NAME() {
if (!GenesisConfig._config) throw new Error('GenesisConfig not initialized');
return GenesisConfig._config.NETWORK_NAME;
}
}
Class.register(GenesisConfig);
GenesisConfig.CONFIGS = {
'main': {
NETWORK_ID: 42,
NETWORK_NAME: 'main'
},
'test': {
NETWORK_ID: 1,
NETWORK_NAME: 'test'
},
'dev': {
NETWORK_ID: 2,
NETWORK_NAME: 'dev'
},
'bounty': {
NETWORK_ID: 3,
NETWORK_NAME: 'bounty'
}
};