Coverage Summary for Class: GasLimitRule (co.rsk.validators)

Class Class, % Method, % Line, %
GasLimitRule 0% (0/1) 0% (0/3) 0% (0/9)


1 /* 2  * This file is part of RskJ 3  * Copyright (C) 2017 RSK Labs Ltd. 4  * 5  * This program is free software: you can redistribute it and/or modify 6  * it under the terms of the GNU Lesser General Public License as published by 7  * the Free Software Foundation, either version 3 of the License, or 8  * (at your option) any later version. 9  * 10  * This program is distributed in the hope that it will be useful, 11  * but WITHOUT ANY WARRANTY; without even the implied warranty of 12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13  * GNU Lesser General Public License for more details. 14  * 15  * You should have received a copy of the GNU Lesser General Public License 16  * along with this program. If not, see <http://www.gnu.org/licenses/>. 17  */ 18  19 package co.rsk.validators; 20  21 import co.rsk.panic.PanicProcessor; 22 import org.ethereum.core.Block; 23 import org.slf4j.Logger; 24 import org.slf4j.LoggerFactory; 25  26 import java.math.BigInteger; 27  28 /** 29  * Rule to check that gas limit is greater than minimum gas limit 30  * 31  * Created by martin.medina on 07/02/17. 32  */ 33 public class GasLimitRule implements BlockValidationRule { 34  35  private static final Logger logger = LoggerFactory.getLogger("blockvalidator"); 36  private static final PanicProcessor panicProcessor = new PanicProcessor(); 37  38  private int minGasLimit; 39  40  public GasLimitRule(int minGasLimit) { 41  this.minGasLimit = minGasLimit; 42  } 43  44  @Override 45  public boolean isValid(Block block) { 46  if (new BigInteger(1, block.getHeader().getGasLimit()).compareTo(BigInteger.valueOf(this.minGasLimit)) < 0) { 47  logger.warn("header.getGasLimit() < MIN_GAS_LIMIT"); 48  panicProcessor.panic("invalidMinGasLimit", "header.getGasLimit() < MIN_GAS_LIMIT"); 49  return false; 50  } 51  52  return true; 53  } 54 }