diff --git a/libevm/VM.h b/libevm/VM.h index d495b6289..5c153a6ea 100644 --- a/libevm/VM.h +++ b/libevm/VM.h @@ -206,7 +206,9 @@ template dev::bytesConstRef dev::eth::VM::go(Ext& _ext, OnOpFunc con { unsigned n = (unsigned)inst - (unsigned)Instruction::LOG0; require(n + 2); - runGas = c_logGas + c_logTopicGas * n + c_logDataGas * m_stack[m_stack.size() - 2]; + runGas = m_stack[m_stack.size() - 2]; + runGas *= c_logDataGas; + runGas += c_logGas + c_logTopicGas * n; newTempSize = memNeed(m_stack[m_stack.size() - 1], m_stack[m_stack.size() - 2]); break; } @@ -214,7 +216,8 @@ template dev::bytesConstRef dev::eth::VM::go(Ext& _ext, OnOpFunc con case Instruction::CALL: case Instruction::CALLCODE: require(7); - runGas = c_callGas + m_stack[m_stack.size() - 1]; + runGas = m_stack[m_stack.size() - 1]; + runGas += c_callGas; newTempSize = std::max(memNeed(m_stack[m_stack.size() - 6], m_stack[m_stack.size() - 7]), memNeed(m_stack[m_stack.size() - 4], m_stack[m_stack.size() - 5])); break;