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. 24
      mix/ContractCallDataEncoder.cpp
  5. 3
      mix/ContractCallDataEncoder.h
  6. 14
      mix/qml/Debugger.qml

6
mix/AppContext.cpp

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

10
mix/AssemblyDebuggerCtrl.cpp

@ -80,14 +80,14 @@ void AssemblyDebuggerCtrl::keyPressed(int _key)
}
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"));
}
}
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)
{
AppContext::getInstance()->displayMessageDialog("debugger","compilation failed");
@ -96,9 +96,9 @@ void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contra
ContractCallDataEncoder c;
std::shared_ptr<QContractDefinition> contractDef = QContractDefinition::Contract(m_doc->toPlainText());
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);
}
@ -121,7 +121,7 @@ void AssemblyDebuggerCtrl::callContract(TransactionSettings _tr, Address _contra
void AssemblyDebuggerCtrl::deployContract(QString _source)
{
CompilerResult compilerRes = m_compilation.get()->compile(_source);
CompilerResult compilerRes = m_compilation->compile(_source);
if (!compilerRes.success)
{
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}));
};
m_currentExecution.get()->go(onOp);
m_currentExecution.get()->finalize(onOp);
m_currentExecution->go(onOp);
m_currentExecution->finalize(onOp);
m_executiveState.completeMine();
DebuggingContent d;
d.returnValue = m_currentExecution.get()->out().toVector();
d.returnValue = m_currentExecution->out().toVector();
d.machineStates = machineStates;
d.executionCode = code;
d.executionData = data;

24
mix/ContractCallDataEncoder.cpp

@ -32,10 +32,6 @@ using namespace dev;
using namespace dev::solidity;
using namespace dev::mix;
ContractCallDataEncoder::ContractCallDataEncoder()
{
}
bytes ContractCallDataEncoder::encodedData()
{
return m_encodedData;
@ -89,23 +85,15 @@ int ContractCallDataEncoder::padding(QString type)
{
// TODO : to be improved (load types automatically from solidity library).
if (type.indexOf("uint") != -1)
{
return integerPadding(type.remove("uint").toInt());
}
else if (type.indexOf("int") != -1)
{
//int
return integerPadding(type.remove("int").toInt());
}
else if (type.indexOf("bool") != -1)
{
return 1;
}
else if ((type.indexOf("address") != -1))
{
return 20;
}
return 0;
else
return 0;
}
int ContractCallDataEncoder::integerPadding(int bitValue)
@ -121,17 +109,11 @@ QString ContractCallDataEncoder::formatBool(bool _value)
QString ContractCallDataEncoder::convertToReadable(std::string _v, QVariableDeclaration* _dec)
{
if (_dec->type().indexOf("int") != -1)
{
return convertToInt(_v);
}
else if (_dec->type().indexOf("bool") != -1)
{
return convertToBool(_v);
}
else
{
return QString::fromStdString(_v);
}
}
QString ContractCallDataEncoder::convertToBool(std::string _v)
@ -141,8 +123,6 @@ QString ContractCallDataEncoder::convertToBool(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.
int x = std::stol(_v, nullptr, 16);
std::stringstream ss;

3
mix/ContractCallDataEncoder.h

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

14
mix/qml/Debugger.qml

@ -129,7 +129,7 @@ Rectangle {
font.letterSpacing: 2
width: parent.width
height: 15
text: "callstack"
text: qsTr("callstack")
}
ListView {
@ -175,7 +175,7 @@ Rectangle {
width: parent.width
height: 15
anchors.top : parent.top
text: "debug stack"
text: qsTr("debug stack")
}
TextArea {
anchors.bottom: parent.bottom
@ -183,7 +183,7 @@ Rectangle {
font.family: "Verdana"
font.pointSize: 8
height: parent.height - 15
id:debugStackTxt
id: debugStackTxt
readOnly: true;
}
}
@ -201,7 +201,7 @@ Rectangle {
width: parent.width
height: 15
anchors.top : parent.top
text: "debug memory"
text: qsTr("debug memory")
}
TextArea {
anchors.bottom: parent.bottom
@ -227,7 +227,7 @@ Rectangle {
width: parent.width
height: 15
anchors.top : parent.top
text: "debug storage"
text: qsTr("debug storage")
}
TextArea {
anchors.bottom: parent.bottom
@ -235,7 +235,7 @@ Rectangle {
font.family: "Verdana"
font.pointSize: 8
height: parent.height - 15
id:debugStorageTxt
id: debugStorageTxt
readOnly: true;
}
}
@ -253,7 +253,7 @@ Rectangle {
width: parent.width
height: 15
anchors.top : parent.top
text: "debug calldata"
text: qsTr("debug calldata")
}
TextArea {
anchors.bottom: parent.bottom

Loading…
Cancel
Save