Esempio n. 1
0
        public void Rinkeby_loads_properly()
        {
            ChainSpecLoader loader    = new(new EthereumJsonSerializer());
            string          path      = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/rinkeby.json");
            ChainSpec       chainSpec = loader.Load(File.ReadAllText(path));

            chainSpec.Parameters.Eip2537Transition.Should().BeNull();

            ChainSpecBasedSpecProvider provider = new(chainSpec);
            RinkebySpecProvider        rinkeby  = RinkebySpecProvider.Instance;

            List <long> blockNumbersToTest = new()
            {
                RinkebySpecProvider.ByzantiumBlockNumber,
                RinkebySpecProvider.ConstantinopleFixBlockNumber - 1,
                RinkebySpecProvider.ConstantinopleFixBlockNumber,
                RinkebySpecProvider.IstanbulBlockNumber - 1,
                RinkebySpecProvider.IstanbulBlockNumber,
                RinkebySpecProvider.BerlinBlockNumber - 1,
                RinkebySpecProvider.BerlinBlockNumber,
                RinkebySpecProvider.LondonBlockNumber - 1,
                RinkebySpecProvider.LondonBlockNumber,
                120_000_000, // far in the future
            };

            CompareSpecProviders(rinkeby, provider, blockNumbersToTest);
            Assert.AreEqual(RinkebySpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock);
        }
Esempio n. 2
0
        public void Rinkeby_loads_properly()
        {
            ChainSpecLoader            loader    = new ChainSpecLoader(new EthereumJsonSerializer());
            string                     path      = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/rinkeby.json");
            ChainSpec                  chainSpec = loader.Load(File.ReadAllBytes(path));
            ChainSpecBasedSpecProvider provider  = new ChainSpecBasedSpecProvider(chainSpec);
            RinkebySpecProvider        rinkeby   = RinkebySpecProvider.Instance;

            IReleaseSpec oldRinkebySpec = rinkeby.GetSpec(3660663);
            IReleaseSpec newRinkebySpec = provider.GetSpec(3660663);

            PropertyInfo[] propertyInfos = typeof(IReleaseSpec).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo propertyInfo in propertyInfos.Where(pi =>
                                                                      pi.Name != "MaximumExtraDataSize" &&
                                                                      pi.Name != "Registrar" &&
                                                                      pi.Name != "BlockReward" &&
                                                                      pi.Name != "DifficultyBombDelay" &&
                                                                      pi.Name != "DifficultyBoundDivisor"))
            {
                object a = propertyInfo.GetValue(oldRinkebySpec);
                object b = propertyInfo.GetValue(newRinkebySpec);

                Assert.AreEqual(a, b, propertyInfo.Name);
            }
        }