Skip to content

Commit

Permalink
fix tests and error miss
Browse files Browse the repository at this point in the history
  • Loading branch information
KonradStaniec committed Jul 31, 2018
1 parent 15fded3 commit 3206a3d
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions src/main/scala/io/iohk/ethereum/vm/VM.scala
Original file line number Diff line number Diff line change
Expand Up @@ -115,18 +115,16 @@ class VM[W <: WorldStateProxy[W, S], S <: Storage[S]] extends Logger {
ProgramResult(ByteString.empty, context.startGas, context.world, Set(), Nil, Nil, 0, Some(InvalidCall))

private def saveNewContract(context: PC, address: Address, result: PR, config: EvmConfig): PR = {
if(result.error.contains(RevertOccurs)) {
result
if(result.error.isDefined) {
if (result.error.contains(RevertOccurs)) result else result.copy(gasRemaining = 0)
} else {
val contractCode = result.returnData
val codeDepositCost = config.calcCodeDepositCost(contractCode)

val maxCodeSizeExceeded = config.maxCodeSize.exists(codeSizeLimit => contractCode.size > codeSizeLimit)
val codeStoreOutOfGas = result.gasRemaining < codeDepositCost

if (maxCodeSizeExceeded ||
(codeStoreOutOfGas && config.exceptionalFailedCodeDeposit) ||
(result.error.isDefined && config.exceptionalFailedCodeDeposit)) {
if (maxCodeSizeExceeded || (codeStoreOutOfGas && config.exceptionalFailedCodeDeposit)) {
// Code size too big or code storage causes out-of-gas with exceptionalFailedCodeDeposit enabled
result.copy(error = Some(OutOfGas), gasRemaining = 0)
} else if (codeStoreOutOfGas && !config.exceptionalFailedCodeDeposit) {
Expand Down

0 comments on commit 3206a3d

Please sign in to comment.