Browse Source

- misc changes

cl-refactor
yann300 10 years ago
committed by yann300
parent
commit
ae79185a8b
  1. 6
      mix/AppContext.cpp
  2. 10
      mix/AssemblyDebuggerCtrl.cpp
  3. 6
      mix/AssemblyDebuggerModel.cpp
  4. 22
      mix/ContractCallDataEncoder.cpp
  5. 3
      mix/ContractCallDataEncoder.h
  6. 10
      mix/qml/Debugger.qml

6
mix/AppContext.cpp

@ -76,9 +76,9 @@ void AppContext::setApplicationContext(QQmlApplicationEngine* _engine)
void AppContext::displayMessageDialog(QString _title, QString _message) void AppContext::displayMessageDialog(QString _title, QString _message)
{ {
// TODO : move it in a UI dedicated layer. // TODO : move to a UI dedicated layer.
QObject* dialogWin = m_applicationEngine.get()->rootObjects().at(0)->findChild<QObject*>("alertMessageDialog", Qt::FindChildrenRecursively); QObject* dialogWin = m_applicationEngine->rootObjects().at(0)->findChild<QObject*>("alertMessageDialog", Qt::FindChildrenRecursively);
QObject* dialogWinComponent = m_applicationEngine.get()->rootObjects().at(0)->findChild<QObject*>("alertMessageDialogContent", Qt::FindChildrenRecursively); QObject* dialogWinComponent = m_applicationEngine->rootObjects().at(0)->findChild<QObject*>("alertMessageDialogContent", Qt::FindChildrenRecursively);
dialogWinComponent->setProperty("source", QString("qrc:/qml/BasicMessage.qml")); dialogWinComponent->setProperty("source", QString("qrc:/qml/BasicMessage.qml"));
dialogWin->setProperty("title", _title); dialogWin->setProperty("title", _title);
dialogWin->setProperty("width", "250"); dialogWin->setProperty("width", "250");

10
mix/AssemblyDebuggerCtrl.cpp

@ -80,14 +80,14 @@ void AssemblyDebuggerCtrl::keyPressed(int _key)
} }
else if (_key == Qt::Key_F6) else if (_key == Qt::Key_F6)
{ {
m_modelDebugger.get()->resetState(); m_modelDebugger->resetState();
AppContext::getInstance()->displayMessageDialog(QApplication::tr("State status"), QApplication::tr("State reseted ... need to redeploy contract")); AppContext::getInstance()->displayMessageDialog(QApplication::tr("State status"), QApplication::tr("State reseted ... need to redeploy contract"));
} }
} }
void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contract) void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contract)
{ {
CompilerResult compilerRes = m_compilation.get()->compile(m_doc->toPlainText()); CompilerResult compilerRes = m_compilation->compile(m_doc->toPlainText());
if (!compilerRes.success) if (!compilerRes.success)
{ {
AppContext::getInstance()->displayMessageDialog("debugger","compilation failed"); AppContext::getInstance()->displayMessageDialog("debugger","compilation failed");
@ -96,9 +96,9 @@ void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contra
ContractCallDataEncoder c; ContractCallDataEncoder c;
std::shared_ptr<QContractDefinition> contractDef = QContractDefinition::Contract(m_doc->toPlainText()); std::shared_ptr<QContractDefinition> contractDef = QContractDefinition::Contract(m_doc->toPlainText());
QFunctionDefinition* f = nullptr; QFunctionDefinition* f = nullptr;
for (int k = 0; k < contractDef.get()->functions().size(); k++) for (int k = 0; k < contractDef->functions().size(); k++)
{ {
if (contractDef.get()->functions().at(k)->name() == _tr.functionId) if (contractDef->functions().at(k)->name() == _tr.functionId)
{ {
f = (QFunctionDefinition*)contractDef->functions().at(k); f = (QFunctionDefinition*)contractDef->functions().at(k);
} }
@ -121,7 +121,7 @@ void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contra
void AssemblyDebuggerCtrl::deployContract(QString _source) void AssemblyDebuggerCtrl::deployContract(QString _source)
{ {
CompilerResult compilerRes = m_compilation.get()->compile(_source); CompilerResult compilerRes = m_compilation->compile(_source);
if (!compilerRes.success) if (!compilerRes.success)
{ {
emit dataAvailable(false, DebuggingStatusResult::Compilationfailed); emit dataAvailable(false, DebuggingStatusResult::Compilationfailed);

6
mix/AssemblyDebuggerModel.cpp

@ -72,12 +72,12 @@ DebuggingContent AssemblyDebuggerModel::executeTransaction(bytesConstRef const&
vm.stack(), vm.memory(), gasCost, ext.state().storage(ext.myAddress), levels})); vm.stack(), vm.memory(), gasCost, ext.state().storage(ext.myAddress), levels}));
}; };
m_currentExecution.get()->go(onOp); m_currentExecution->go(onOp);
m_currentExecution.get()->finalize(onOp); m_currentExecution->finalize(onOp);
m_executiveState.completeMine(); m_executiveState.completeMine();
DebuggingContent d; DebuggingContent d;
d.returnValue = m_currentExecution.get()->out().toVector(); d.returnValue = m_currentExecution->out().toVector();
d.machineStates = machineStates; d.machineStates = machineStates;
d.executionCode = code; d.executionCode = code;
d.executionData = data; d.executionData = data;

22
mix/ContractCallDataEncoder.cpp

@ -32,10 +32,6 @@ using namespace dev;
using namespace dev::solidity; using namespace dev::solidity;
using namespace dev::mix; using namespace dev::mix;
ContractCallDataEncoder::ContractCallDataEncoder()
{
}
bytes ContractCallDataEncoder::encodedData() bytes ContractCallDataEncoder::encodedData()
{ {
return m_encodedData; return m_encodedData;
@ -89,22 +85,14 @@ int ContractCallDataEncoder::padding(QString type)
{ {
// TODO : to be improved (load types automatically from solidity library). // TODO : to be improved (load types automatically from solidity library).
if (type.indexOf("uint") != -1) if (type.indexOf("uint") != -1)
{
return integerPadding(type.remove("uint").toInt()); return integerPadding(type.remove("uint").toInt());
}
else if (type.indexOf("int") != -1) else if (type.indexOf("int") != -1)
{
//int
return integerPadding(type.remove("int").toInt()); return integerPadding(type.remove("int").toInt());
}
else if (type.indexOf("bool") != -1) else if (type.indexOf("bool") != -1)
{
return 1; return 1;
}
else if ((type.indexOf("address") != -1)) else if ((type.indexOf("address") != -1))
{
return 20; return 20;
} else
return 0; return 0;
} }
@ -121,18 +109,12 @@ QString ContractCallDataEncoder::formatBool(bool _value)
QString ContractCallDataEncoder::convertToReadable(std::string _v, QVariableDeclaration* _dec) QString ContractCallDataEncoder::convertToReadable(std::string _v, QVariableDeclaration* _dec)
{ {
if (_dec->type().indexOf("int") != -1) if (_dec->type().indexOf("int") != -1)
{
return convertToInt(_v); return convertToInt(_v);
}
else if (_dec->type().indexOf("bool") != -1) else if (_dec->type().indexOf("bool") != -1)
{
return convertToBool(_v); return convertToBool(_v);
}
else else
{
return QString::fromStdString(_v); return QString::fromStdString(_v);
} }
}
QString ContractCallDataEncoder::convertToBool(std::string _v) QString ContractCallDataEncoder::convertToBool(std::string _v)
{ {
@ -141,8 +123,6 @@ QString ContractCallDataEncoder::convertToBool(std::string _v)
QString ContractCallDataEncoder::convertToInt(std::string _v) QString ContractCallDataEncoder::convertToInt(std::string _v)
{ {
qDebug() << "QString::fromStdString(_v);";
qDebug() << QString::fromStdString(_v);
//TO DO to be improve to manage all int, uint size (128, 256, ...) in ethereum QML types task #612. //TO DO to be improve to manage all int, uint size (128, 256, ...) in ethereum QML types task #612.
int x = std::stol(_v, nullptr, 16); int x = std::stol(_v, nullptr, 16);
std::stringstream ss; std::stringstream ss;

3
mix/ContractCallDataEncoder.h

@ -36,7 +36,7 @@ namespace mix
class ContractCallDataEncoder class ContractCallDataEncoder
{ {
public: public:
ContractCallDataEncoder(); ContractCallDataEncoder() {}
/// encode variable in order to be sent as parameter. /// encode variable in order to be sent as parameter.
void encode(QVariableDeclaration* _dec, QString _value); void encode(QVariableDeclaration* _dec, QString _value);
/// encode variable in order to be sent as parameter. /// encode variable in order to be sent as parameter.
@ -51,7 +51,6 @@ public:
bytes encodedData(); bytes encodedData();
private: private:
QMap<QString, int> typePadding;
int padding(QString _type); int padding(QString _type);
bytes m_encodedData; bytes m_encodedData;
static QString convertToReadable(std::string _v, QVariableDeclaration* _dec); static QString convertToReadable(std::string _v, QVariableDeclaration* _dec);

10
mix/qml/Debugger.qml

@ -129,7 +129,7 @@ Rectangle {
font.letterSpacing: 2 font.letterSpacing: 2
width: parent.width width: parent.width
height: 15 height: 15
text: "callstack" text: qsTr("callstack")
} }
ListView { ListView {
@ -175,7 +175,7 @@ Rectangle {
width: parent.width width: parent.width
height: 15 height: 15
anchors.top : parent.top anchors.top : parent.top
text: "debug stack" text: qsTr("debug stack")
} }
TextArea { TextArea {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
@ -201,7 +201,7 @@ Rectangle {
width: parent.width width: parent.width
height: 15 height: 15
anchors.top : parent.top anchors.top : parent.top
text: "debug memory" text: qsTr("debug memory")
} }
TextArea { TextArea {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
@ -227,7 +227,7 @@ Rectangle {
width: parent.width width: parent.width
height: 15 height: 15
anchors.top : parent.top anchors.top : parent.top
text: "debug storage" text: qsTr("debug storage")
} }
TextArea { TextArea {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
@ -253,7 +253,7 @@ Rectangle {
width: parent.width width: parent.width
height: 15 height: 15
anchors.top : parent.top anchors.top : parent.top
text: "debug calldata" text: qsTr("debug calldata")
} }
TextArea { TextArea {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom

Loading…
Cancel
Save