diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index f5539b2ba..58b5481fa 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -528,15 +528,42 @@ void Main::on_transactionQueue_currentItemChanged() int i = ui->transactionQueue->currentRow(); if (i >= 0) { - eth::StateDiff d = m_client->postState().fromPending(i).diff(m_client->postState().fromPending(i + 1)); + Transaction tx(m_client->postState().pending()[i]); + auto ss = tx.safeSender(); + h256 th = sha3(rlpList(ss, tx.nonce)); + s << "

" << th << "

"; + s << "From: " << pretty(ss).toStdString() << " " << ss; + if (tx.isCreation()) + s << "
Creates: " << pretty(right160(th)).toStdString() << " " << right160(th); + else + s << "
To: " << pretty(tx.receiveAddress).toStdString() << " " << tx.receiveAddress; + s << "
Value: " << formatBalance(tx.value) << ""; + s << "   #" << tx.nonce << ""; + s << "
Gas price: " << formatBalance(tx.gasPrice) << ""; + s << "
Gas: " << tx.gas << ""; + if (tx.isCreation()) + { + if (tx.data.size()) + s << "

Code

" << disassemble(tx.data); + } + else + { + if (tx.data.size()) + s << htmlDump(tx.data, 16); + } + s << "
"; + + eth::State fs = m_client->postState().fromPending(i); + eth::State ts = m_client->postState().fromPending(i + 1); + eth::StateDiff d = fs.diff(ts); + + s << "Pre: " << fs.rootHash() << "
"; + s << "Post: " << ts.rootHash() << ""; auto indent = " "; - unsigned ii = 0; for (auto const& i: d.accounts) { - if (ii) - s << "
"; - ii++; + s << "
"; eth::AccountDiff const& ad = i.second; s << "" << ad.lead() << " " << " " << render(i.first).toStdString() << ""; @@ -569,7 +596,7 @@ void Main::on_transactionQueue_currentItemChanged() s << "XXX"; else s << " * "; - s << " "; + s << " "; if (i.first > u256(1) << 246) s << (h256)i.first;