diff --git a/mix/AssemblyDebuggerControl.cpp b/mix/AssemblyDebuggerControl.cpp index e065513a8..7bf177981 100644 --- a/mix/AssemblyDebuggerControl.cpp +++ b/mix/AssemblyDebuggerControl.cpp @@ -20,7 +20,6 @@ #include #include #include -#include "AppContext.h" #include "ClientModel.h" #include "AssemblyDebuggerControl.h" diff --git a/mix/MachineStates.h b/mix/MachineStates.h new file mode 100644 index 000000000..d19fd9b74 --- /dev/null +++ b/mix/MachineStates.h @@ -0,0 +1,79 @@ +/* +This file is part of cpp-ethereum. + +cpp-ethereum is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +cpp-ethereum is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with cpp-ethereum. If not, see . +*/ +/** @file MixClient.h +* @author Yann yann@ethdev.com +* @author Arkadiy Paronyan arkadiy@ethdev.com +* @date 2015 +* Ethereum IDE client. +*/ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace dev +{ +namespace mix +{ + + /** + * @brief Store information about a machine state. + */ + struct MachineState + { + uint64_t steps; + dev::Address address; + dev::u256 curPC; + dev::eth::Instruction inst; + dev::bigint newMemSize; + dev::u256 gas; + dev::u256s stack; + dev::bytes memory; + dev::bigint gasCost; + std::map storage; + std::vector levels; + unsigned codeIndex; + unsigned dataIndex; + }; + + /** + * @brief Store information about a machine states. + */ + struct ExecutionResult + { + ExecutionResult() : receipt(dev::h256(), dev::h256(), dev::eth::LogEntries()) {} + + std::vector machineStates; + std::vector transactionData; + std::vector executionCode; + bytes returnValue; + dev::Address address; + dev::Address sender; + dev::Address contractAddress; + dev::u256 value; + dev::eth::TransactionReceipt receipt; + }; + + using ExecutionResults = std::vector; +} +} \ No newline at end of file diff --git a/mix/MixClient.h b/mix/MixClient.h index dceb9ce7b..6118613ed 100644 --- a/mix/MixClient.h +++ b/mix/MixClient.h @@ -26,52 +26,13 @@ #include #include #include +#include "MachineStates.h" namespace dev { namespace mix { -/** - * @brief Store information about a machine state. - */ -struct MachineState -{ - uint64_t steps; - dev::Address address; - dev::u256 curPC; - dev::eth::Instruction inst; - dev::bigint newMemSize; - dev::u256 gas; - dev::u256s stack; - dev::bytes memory; - dev::bigint gasCost; - std::map storage; - std::vector levels; - unsigned codeIndex; - unsigned dataIndex; -}; - -/** - * @brief Store information about a machine states. - */ -struct ExecutionResult -{ - ExecutionResult(): receipt(dev::h256(), dev::h256(), dev::eth::LogEntries()) {} - - std::vector machineStates; - std::vector transactionData; - std::vector executionCode; - bytes returnValue; - dev::Address address; - dev::Address sender; - dev::Address contractAddress; - dev::u256 value; - dev::eth::TransactionReceipt receipt; -}; - -using ExecutionResults = std::vector; - struct Block { ExecutionResults transactions;