public async Task can_validate_gas_limit_correct()
        {
            using TestGasLimitContractBlockchain chain = await TestContractBlockchain.ForTest <TestGasLimitContractBlockchain, AuRaContractGasLimitOverrideTests>();

            bool isValid = ((AuRaContractGasLimitOverride)chain.GasLimitCalculator).IsGasLimitValid(chain.BlockTree.Head.Header, CorrectHeadGasLimit, out _);

            isValid.Should().BeTrue();
        }
        public async Task can_read_block_gas_limit_from_contract()
        {
            using TestGasLimitContractBlockchain chain = await TestContractBlockchain.ForTest <TestGasLimitContractBlockchain, AuRaContractGasLimitOverrideTests>();

            long gasLimit = chain.GasLimitCalculator.GetGasLimit(chain.BlockTree.Head.Header);

            gasLimit.Should().Be(CorrectHeadGasLimit);
        }
        public async Task can_validate_gas_limit_incorrect()
        {
            using TestGasLimitContractBlockchain chain = await TestContractBlockchain.ForTest <TestGasLimitContractBlockchain, AuRaContractGasLimitOverrideTests>();

            bool isValid = ((AuRaContractGasLimitOverride)chain.GasLimitCalculator).IsGasLimitValid(chain.BlockTree.Head.Header, 100000001, out long?expectedGasLimit);

            isValid.Should().BeFalse();
            expectedGasLimit.Should().Be(CorrectHeadGasLimit);
        }