Search in sources :

Example 1 with DevNetConfig

use of org.ethereum.config.blockchain.DevNetConfig in project rskj by rsksmart.

the class SystemProperties method getBlockchainConfig.

@ValidateMe
public BlockchainNetConfig getBlockchainConfig() {
    if (blockchainConfig == null) {
        String netName = netName();
        if (netName != null && configFromFiles.hasPath("blockchain.config.class")) {
            throw new RuntimeException("Only one of two options should be defined: 'blockchain.config.name' and 'blockchain.config.class'");
        }
        if (netName != null) {
            switch(netName) {
                case "main":
                    blockchainConfig = new MainNetConfig();
                    break;
                case "fallbackmain":
                    blockchainConfig = new FallbackMainNetConfig();
                    break;
                case "testnet":
                    blockchainConfig = new TestNetConfig();
                    break;
                case "devnet":
                    blockchainConfig = new DevNetConfig();
                    break;
                case "regtest":
                    blockchainConfig = new RegTestConfig();
                    break;
                default:
                    throw new RuntimeException("Unknown value for 'blockchain.config.name': '" + configFromFiles.getString("blockchain.config.name") + "'");
            }
        } else {
            String className = configFromFiles.getString("blockchain.config.class");
            try {
                Class<? extends BlockchainNetConfig> aClass = (Class<? extends BlockchainNetConfig>) Class.forName(className);
                blockchainConfig = aClass.newInstance();
            } catch (ClassNotFoundException e) {
                throw new RuntimeException("The class specified via blockchain.config.class '" + className + "' not found", e);
            } catch (ClassCastException e) {
                throw new RuntimeException("The class specified via blockchain.config.class '" + className + "' is not instance of org.ethereum.config.BlockchainForkConfig", e);
            } catch (InstantiationException | IllegalAccessException e) {
                throw new RuntimeException("The class specified via blockchain.config.class '" + className + "' couldn't be instantiated (check for default constructor and its accessibility)", e);
            }
        }
    }
    return blockchainConfig;
}
Also used : RegTestConfig(org.ethereum.config.blockchain.RegTestConfig) FallbackMainNetConfig(org.ethereum.config.blockchain.FallbackMainNetConfig) DevNetConfig(org.ethereum.config.blockchain.DevNetConfig) TestNetConfig(org.ethereum.config.net.TestNetConfig) FallbackMainNetConfig(org.ethereum.config.blockchain.FallbackMainNetConfig) MainNetConfig(org.ethereum.config.net.MainNetConfig)

Aggregations

DevNetConfig (org.ethereum.config.blockchain.DevNetConfig)1 FallbackMainNetConfig (org.ethereum.config.blockchain.FallbackMainNetConfig)1 RegTestConfig (org.ethereum.config.blockchain.RegTestConfig)1 MainNetConfig (org.ethereum.config.net.MainNetConfig)1 TestNetConfig (org.ethereum.config.net.TestNetConfig)1