calcIntrinsicGas static method

int calcIntrinsicGas(
  1. List<Clause> clauses
)

Calculate roughly the gas from a list of clauses.

@param clauses A list of clauses. @return

Implementation

static int calcIntrinsicGas(List<Clause> clauses) {
  const int transactionGas = 5000;
  const int clauseGas = 16000;
  const int clauseContrctCreation = 48000;

  // Must pay a static fee even empty!
  if (clauses.isEmpty) {
    return transactionGas + clauseGas;
  }

  int sum = 0;
  sum += transactionGas;

  for (Clause c in clauses) {
    int clauseSum = 0;

    if (c.to.toBytes().isEmpty) {
      // contract creation
      clauseSum += clauseContrctCreation;
    } else {
      // or a normal clause
      clauseSum += clauseGas;
    }

    clauseSum += calcDataGas(c.data.toBytes());
    sum += clauseSum;
  }

  return sum;
}