Search in sources :

Example 1 with FallbackMainNetConfig

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

the class MainNetMinerTest method setup.

@Before
public void setup() {
    config = new RskSystemProperties();
    config.setBlockchainConfig(new FallbackMainNetConfig());
    DIFFICULTY_CALCULATOR = new DifficultyCalculator(config);
    World world = new World();
    blockchain = world.getBlockChain();
}
Also used : DifficultyCalculator(co.rsk.core.DifficultyCalculator) FallbackMainNetConfig(org.ethereum.config.blockchain.FallbackMainNetConfig) World(co.rsk.test.World) RskSystemProperties(co.rsk.config.RskSystemProperties) Before(org.junit.Before)

Example 2 with FallbackMainNetConfig

use of org.ethereum.config.blockchain.FallbackMainNetConfig 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

FallbackMainNetConfig (org.ethereum.config.blockchain.FallbackMainNetConfig)2 RskSystemProperties (co.rsk.config.RskSystemProperties)1 DifficultyCalculator (co.rsk.core.DifficultyCalculator)1 World (co.rsk.test.World)1 DevNetConfig (org.ethereum.config.blockchain.DevNetConfig)1 RegTestConfig (org.ethereum.config.blockchain.RegTestConfig)1 MainNetConfig (org.ethereum.config.net.MainNetConfig)1 TestNetConfig (org.ethereum.config.net.TestNetConfig)1 Before (org.junit.Before)1