@@ -320,11 +320,8 @@ else if (!currentValue.isZero() && newValue.isZero()) {
320
320
break ;
321
321
case SHA3 :
322
322
gasCost = gasCosts .getSHA3 () + calcMemGas (gasCosts , oldMemSize , memNeeded (stack .peek (), stack .get (stack .size () - 2 )), 0 );
323
- long size = stack .get (stack .size () - 2 ).longValueSafe ();
324
- if (size == Long .MAX_VALUE ) {
325
- throw Program .Exception .gasOverflow (BigInteger .valueOf (size ), BigInteger .valueOf (Long .MAX_VALUE ));
326
- }
327
- long chunkUsed = getSizeInWords (size );
323
+ DataWord size = stack .get (stack .size () - 2 );
324
+ long chunkUsed = getSizeInWords (size .longValueSafe ());
328
325
gasCost += chunkUsed * gasCosts .getSHA3_WORD ();
329
326
break ;
330
327
case CALLDATACOPY :
@@ -398,14 +395,10 @@ else if (!currentValue.isZero() && newValue.isZero()) {
398
395
memNeeded (stack .get (stack .size () - 2 ), stack .get (stack .size () - 3 )), 0 );
399
396
break ;
400
397
case CREATE2 :
401
- gasCost = gasCosts .getCREATE () + calcMemGas (gasCosts , oldMemSize ,
402
- memNeeded (stack .get (stack .size () - 2 ), stack .get (stack .size () - 3 )), 0 );
403
- long codeSize = stack .get (stack .size () - 3 ).longValueSafe ();
404
- if (codeSize == Long .MAX_VALUE ) {
405
- throw Program .Exception .gasOverflow (BigInteger .valueOf (codeSize ), BigInteger .valueOf (Long .MAX_VALUE ));
406
- }
407
- gasCost += getSizeInWords (codeSize ) * gasCosts .getSHA3_WORD ();
408
-
398
+ DataWord codeSize = stack .get (stack .size () - 3 );
399
+ gasCost = gasCosts .getCREATE () +
400
+ calcMemGas (gasCosts , oldMemSize , memNeeded (stack .get (stack .size () - 2 ), codeSize ), 0 ) +
401
+ getSizeInWords (codeSize .longValueSafe ()) * gasCosts .getSHA3_WORD ();
409
402
break ;
410
403
case LOG0 :
411
404
case LOG1 :
0 commit comments