|
|
@ -20,12 +20,16 @@ |
|
|
|
*/ |
|
|
|
|
|
|
|
#include "OurWebThreeStubServer.h" |
|
|
|
|
|
|
|
#include <QMessageBox> |
|
|
|
#include <libwebthree/WebThree.h> |
|
|
|
#include "MainWin.h" |
|
|
|
using namespace std; |
|
|
|
using namespace dev; |
|
|
|
using namespace dev::eth; |
|
|
|
|
|
|
|
OurWebThreeStubServer::OurWebThreeStubServer(jsonrpc::AbstractServerConnector& _conn, dev::WebThreeDirect& _web3, std::vector<dev::KeyPair> const& _accounts): |
|
|
|
WebThreeStubServer(_conn, _web3, _accounts) |
|
|
|
WebThreeStubServer(_conn, _web3, _accounts), m_web3(&_web3) |
|
|
|
{} |
|
|
|
|
|
|
|
std::string OurWebThreeStubServer::shh_newIdentity() |
|
|
@ -34,3 +38,37 @@ std::string OurWebThreeStubServer::shh_newIdentity() |
|
|
|
emit onNewId(QString::fromStdString(toJS(kp.sec()))); |
|
|
|
return toJS(kp.pub()); |
|
|
|
} |
|
|
|
|
|
|
|
bool OurWebThreeStubServer::authenticate(dev::TransactionSkeleton const& _t) const |
|
|
|
{ |
|
|
|
return true; |
|
|
|
|
|
|
|
// To get the balance of the sender
|
|
|
|
cnote << "Sender has ETH: " << m_web3->ethereum()->postState().balance(_t.from); |
|
|
|
|
|
|
|
Main* main; // don't know this yet, should be a member and set at construction time by Main, who will construct us.
|
|
|
|
|
|
|
|
h256 contractCodeHash = m_web3->ethereum()->postState().codeHash(_t.to); |
|
|
|
|
|
|
|
if (contractCodeHash == EmptySHA3) |
|
|
|
{ |
|
|
|
// recipient has no code - nothing special about this transaction.
|
|
|
|
// TODO: show basic message for value transfer.
|
|
|
|
return true; // or whatever.
|
|
|
|
} |
|
|
|
|
|
|
|
std::string natspecJson = main->lookupNatSpec(contractCodeHash); |
|
|
|
|
|
|
|
if (natspecJson.empty()) |
|
|
|
{ |
|
|
|
// TODO: HUGE warning - we don't know what this will do!
|
|
|
|
return false; // or whatever.
|
|
|
|
} |
|
|
|
|
|
|
|
// otherwise it's a transaction to contract for which we have the natspec:
|
|
|
|
// determine the actual message (embellish with real data) and ask user.
|
|
|
|
|
|
|
|
// QMessageBox::question();
|
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|