yann300
10 years ago
15 changed files with 797 additions and 784 deletions
@ -0,0 +1,183 @@ |
|||||
|
/*
|
||||
|
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 <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
/** @file ExportState.cpp
|
||||
|
* @author Arkadiy Paronyan <arkadiy@ethdev.com> |
||||
|
* @date 2015 |
||||
|
*/ |
||||
|
|
||||
|
#include "ExportState.h" |
||||
|
#include <QFileDialog> |
||||
|
#include <QTextStream> |
||||
|
#include <libethereum/Client.h> |
||||
|
#include "MainWin.h" |
||||
|
#include "ui_ExportState.h" |
||||
|
|
||||
|
using namespace std; |
||||
|
using namespace dev; |
||||
|
using namespace dev::eth; |
||||
|
|
||||
|
ExportStateDialog::ExportStateDialog(Main* _parent): |
||||
|
QDialog(_parent), |
||||
|
ui(new Ui::ExportState), |
||||
|
m_main(_parent) |
||||
|
{ |
||||
|
ui->setupUi(this); |
||||
|
connect(ui->close, &QPushButton::clicked, this, &ExportStateDialog::close); |
||||
|
connect(ui->accounts, &QListWidget::itemSelectionChanged, this, &ExportStateDialog::generateJSON); |
||||
|
connect(ui->contracts, &QListWidget::itemSelectionChanged, this, &ExportStateDialog::generateJSON); |
||||
|
fillBlocks(); |
||||
|
} |
||||
|
|
||||
|
ExportStateDialog::~ExportStateDialog() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
dev::eth::Client* ExportStateDialog::ethereum() const |
||||
|
{ |
||||
|
return m_main->ethereum(); |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::on_block_editTextChanged() |
||||
|
{ |
||||
|
QString text = ui->block->currentText(); |
||||
|
int i = ui->block->count(); |
||||
|
while (i-- >= 0) |
||||
|
if (ui->block->itemText(i) == text) |
||||
|
return; |
||||
|
fillBlocks(); |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::on_block_currentIndexChanged(int _index) |
||||
|
{ |
||||
|
m_block = ui->block->itemData(_index).toUInt(); |
||||
|
fillContracts(); |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::fillBlocks() |
||||
|
{ |
||||
|
BlockChain const& bc = ethereum()->blockChain(); |
||||
|
QStringList filters = ui->block->currentText().toLower().split(QRegExp("\\s+"), QString::SkipEmptyParts); |
||||
|
const unsigned numLastBlocks = 10; |
||||
|
if (ui->block->count() == 0) |
||||
|
{ |
||||
|
unsigned i = numLastBlocks; |
||||
|
for (auto h = bc.currentHash(); bc.details(h) && i; h = bc.details(h).parent, --i) |
||||
|
{ |
||||
|
auto d = bc.details(h); |
||||
|
ui->block->addItem(QString("#%1 %2").arg(d.number).arg(h.abridged().c_str()), d.number); |
||||
|
if (h == bc.genesisHash()) |
||||
|
break; |
||||
|
} |
||||
|
if (ui->block->currentIndex() < 0) |
||||
|
ui->block->setCurrentIndex(0); |
||||
|
m_recentBlocks = numLastBlocks - i; |
||||
|
} |
||||
|
|
||||
|
int i = ui->block->count(); |
||||
|
while (i > 0 && i >= m_recentBlocks) |
||||
|
ui->block->removeItem(i--); |
||||
|
|
||||
|
h256Set blocks; |
||||
|
for (QString f: filters) |
||||
|
{ |
||||
|
if (f.startsWith("#")) |
||||
|
f = f.remove(0, 1); |
||||
|
if (f.size() == 64) |
||||
|
{ |
||||
|
h256 h(f.toStdString()); |
||||
|
if (bc.isKnown(h)) |
||||
|
blocks.insert(h); |
||||
|
for (auto const& b: bc.withBlockBloom(LogBloom().shiftBloom<3>(sha3(h)), 0, -1)) |
||||
|
blocks.insert(bc.numberHash(b)); |
||||
|
} |
||||
|
else if (f.toLongLong() <= bc.number()) |
||||
|
blocks.insert(bc.numberHash((unsigned)f.toLongLong())); |
||||
|
else if (f.size() == 40) |
||||
|
{ |
||||
|
Address h(f.toStdString()); |
||||
|
for (auto const& b: bc.withBlockBloom(LogBloom().shiftBloom<3>(sha3(h)), 0, -1)) |
||||
|
blocks.insert(bc.numberHash(b)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
for (auto const& h: blocks) |
||||
|
{ |
||||
|
auto d = bc.details(h); |
||||
|
ui->block->addItem(QString("#%1 %2").arg(d.number).arg(h.abridged().c_str()), d.number); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::fillContracts() |
||||
|
{ |
||||
|
ui->accounts->clear(); |
||||
|
ui->contracts->clear(); |
||||
|
ui->accounts->setEnabled(true); |
||||
|
ui->contracts->setEnabled(true); |
||||
|
for (auto i: ethereum()->addresses(m_block)) |
||||
|
{ |
||||
|
QString r = m_main->render(i); |
||||
|
(new QListWidgetItem(QString("%2: %1 [%3]").arg(formatBalance(ethereum()->balanceAt(i)).c_str()).arg(r).arg((unsigned)ethereum()->countAt(i)), ethereum()->codeAt(i).empty() ? ui->accounts : ui->contracts)) |
||||
|
->setData(Qt::UserRole, QByteArray((char const*)i.data(), Address::size)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::generateJSON() |
||||
|
{ |
||||
|
std::stringstream json; |
||||
|
json << "{\n"; |
||||
|
std::string prefix; |
||||
|
for(QListWidgetItem* item: ui->accounts->selectedItems()) |
||||
|
{ |
||||
|
auto hba = item->data(Qt::UserRole).toByteArray(); |
||||
|
auto address = Address((byte const*)hba.data(), Address::ConstructFromPointer); |
||||
|
json << prefix << "\t\"" << toHex(address.ref()) << "\": { \"wei\": \"" << ethereum()->balanceAt(address, m_block) << "\" }"; |
||||
|
prefix = ",\n"; |
||||
|
} |
||||
|
for(QListWidgetItem* item: ui->contracts->selectedItems()) |
||||
|
{ |
||||
|
auto hba = item->data(Qt::UserRole).toByteArray(); |
||||
|
auto address = Address((byte const*)hba.data(), Address::ConstructFromPointer); |
||||
|
json << prefix << "\t\"" << toHex(address.ref()) << "\":\n\t{\n\t\t\"wei\": \"" << ethereum()->balanceAt(address, m_block) << "\",\n"; |
||||
|
json << "\t\t\"code\": \"" << toHex(ethereum()->codeAt(address, m_block)) << "\",\n"; |
||||
|
std::map<u256, u256> storage = ethereum()->storageAt(address, m_block); |
||||
|
if (!storage.empty()) |
||||
|
{ |
||||
|
json << "\t\t\"storage\":\n\t\t{\n"; |
||||
|
for (auto s: storage) |
||||
|
json << "\t\t\t\"" << toHex(s.first) << "\": \"" << toHex(s.second) << "\"" << (s.first == storage.rbegin()->first ? "" : ",") <<"\n"; |
||||
|
json << "\t\t}\n"; |
||||
|
} |
||||
|
json << "\t}"; |
||||
|
prefix = ",\n"; |
||||
|
} |
||||
|
json << "\n}"; |
||||
|
json.flush(); |
||||
|
|
||||
|
ui->json->setEnabled(true); |
||||
|
ui->json->setText(QString::fromStdString(json.str())); |
||||
|
ui->saveButton->setEnabled(true); |
||||
|
} |
||||
|
|
||||
|
void ExportStateDialog::on_saveButton_clicked() |
||||
|
{ |
||||
|
QString fn = QFileDialog::getSaveFileName(this, "Save state", QString(), "JSON Files (*.json)"); |
||||
|
if (!fn.endsWith(".json")) |
||||
|
fn = fn.append(".json"); |
||||
|
ofstream file(fn.toStdString()); |
||||
|
if (file.is_open()) |
||||
|
file << ui->json->toPlainText().toStdString(); |
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
/*
|
||||
|
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 <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
/** @file ExportState.h
|
||||
|
* @author Arkadiy Paronyan <arkadiy@ethdev.com> |
||||
|
* @date 2015 |
||||
|
*/ |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include <memory> |
||||
|
#include <QDialog> |
||||
|
#include <libethcore/Common.h> |
||||
|
|
||||
|
namespace Ui { class ExportState; } |
||||
|
namespace dev { namespace eth { class Client; } } |
||||
|
|
||||
|
class Main; |
||||
|
|
||||
|
class ExportStateDialog: public QDialog |
||||
|
{ |
||||
|
Q_OBJECT |
||||
|
|
||||
|
public: |
||||
|
explicit ExportStateDialog(Main* _parent = 0); |
||||
|
virtual ~ExportStateDialog(); |
||||
|
|
||||
|
private slots: |
||||
|
void on_block_editTextChanged(); |
||||
|
void on_block_currentIndexChanged(int _index); |
||||
|
void on_saveButton_clicked(); |
||||
|
|
||||
|
private: |
||||
|
dev::eth::Client* ethereum() const; |
||||
|
void fillBlocks(); |
||||
|
void fillContracts(); |
||||
|
void generateJSON(); |
||||
|
|
||||
|
private: |
||||
|
std::unique_ptr<Ui::ExportState> ui; |
||||
|
Main* m_main; |
||||
|
int m_recentBlocks = 0; |
||||
|
dev::eth::BlockNumber m_block = dev::eth::LatestBlock; |
||||
|
}; |
@ -0,0 +1,183 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<ui version="4.0"> |
||||
|
<class>ExportState</class> |
||||
|
<widget class="QDialog" name="ExportState"> |
||||
|
<property name="geometry"> |
||||
|
<rect> |
||||
|
<x>0</x> |
||||
|
<y>0</y> |
||||
|
<width>490</width> |
||||
|
<height>522</height> |
||||
|
</rect> |
||||
|
</property> |
||||
|
<property name="windowTitle"> |
||||
|
<string>Export State</string> |
||||
|
</property> |
||||
|
<property name="modal"> |
||||
|
<bool>true</bool> |
||||
|
</property> |
||||
|
<layout class="QGridLayout" name="gridLayout"> |
||||
|
<item row="0" column="0"> |
||||
|
<widget class="QLabel" name="label5"> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>0</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="text"> |
||||
|
<string>&Block</string> |
||||
|
</property> |
||||
|
<property name="buddy"> |
||||
|
<cstring>block</cstring> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="0" column="1"> |
||||
|
<widget class="QComboBox" name="block"> |
||||
|
<property name="editable"> |
||||
|
<bool>true</bool> |
||||
|
</property> |
||||
|
<property name="currentText"> |
||||
|
<string/> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="1" column="0"> |
||||
|
<widget class="QLabel" name="label_7"> |
||||
|
<property name="text"> |
||||
|
<string>&Accounts</string> |
||||
|
</property> |
||||
|
<property name="buddy"> |
||||
|
<cstring>accounts</cstring> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="1" column="1"> |
||||
|
<widget class="QListWidget" name="accounts"> |
||||
|
<property name="enabled"> |
||||
|
<bool>false</bool> |
||||
|
</property> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>1</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="selectionMode"> |
||||
|
<enum>QAbstractItemView::MultiSelection</enum> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="2" column="0"> |
||||
|
<widget class="QLabel" name="label_6"> |
||||
|
<property name="text"> |
||||
|
<string>&Contracts</string> |
||||
|
</property> |
||||
|
<property name="buddy"> |
||||
|
<cstring>contracts</cstring> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="2" column="1"> |
||||
|
<widget class="QListWidget" name="contracts"> |
||||
|
<property name="enabled"> |
||||
|
<bool>false</bool> |
||||
|
</property> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>1</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="selectionMode"> |
||||
|
<enum>QAbstractItemView::MultiSelection</enum> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="3" column="0"> |
||||
|
<widget class="QLabel" name="label_2"> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>0</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="text"> |
||||
|
<string>&JSON</string> |
||||
|
</property> |
||||
|
<property name="alignment"> |
||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> |
||||
|
</property> |
||||
|
<property name="buddy"> |
||||
|
<cstring>json</cstring> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="3" column="1"> |
||||
|
<widget class="QTextEdit" name="json"> |
||||
|
<property name="enabled"> |
||||
|
<bool>false</bool> |
||||
|
</property> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>2</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="readOnly"> |
||||
|
<bool>true</bool> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item row="4" column="1"> |
||||
|
<layout class="QHBoxLayout" name="horizontalLayout"> |
||||
|
<item> |
||||
|
<widget class="QPushButton" name="saveButton"> |
||||
|
<property name="enabled"> |
||||
|
<bool>false</bool> |
||||
|
</property> |
||||
|
<property name="sizePolicy"> |
||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> |
||||
|
<horstretch>0</horstretch> |
||||
|
<verstretch>0</verstretch> |
||||
|
</sizepolicy> |
||||
|
</property> |
||||
|
<property name="text"> |
||||
|
<string>&Save...</string> |
||||
|
</property> |
||||
|
<property name="shortcut"> |
||||
|
<string>Esc</string> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
<item> |
||||
|
<spacer name="horizontalSpacer"> |
||||
|
<property name="orientation"> |
||||
|
<enum>Qt::Horizontal</enum> |
||||
|
</property> |
||||
|
<property name="sizeHint" stdset="0"> |
||||
|
<size> |
||||
|
<width>40</width> |
||||
|
<height>20</height> |
||||
|
</size> |
||||
|
</property> |
||||
|
</spacer> |
||||
|
</item> |
||||
|
<item> |
||||
|
<widget class="QPushButton" name="close"> |
||||
|
<property name="text"> |
||||
|
<string>&Close</string> |
||||
|
</property> |
||||
|
<property name="shortcut"> |
||||
|
<string>Esc</string> |
||||
|
</property> |
||||
|
</widget> |
||||
|
</item> |
||||
|
</layout> |
||||
|
</item> |
||||
|
</layout> |
||||
|
</widget> |
||||
|
<resources/> |
||||
|
<connections/> |
||||
|
</ui> |
@ -1,596 +0,0 @@ |
|||||
/**
|
|
||||
* This file is generated by jsonrpcstub, DO NOT CHANGE IT MANUALLY! |
|
||||
*/ |
|
||||
|
|
||||
#ifndef JSONRPC_CPP_STUB_WEBTHREESTUBCLIENT_H_ |
|
||||
#define JSONRPC_CPP_STUB_WEBTHREESTUBCLIENT_H_ |
|
||||
|
|
||||
#include <jsonrpccpp/client.h> |
|
||||
|
|
||||
class WebThreeStubClient : public jsonrpc::Client |
|
||||
{ |
|
||||
public: |
|
||||
WebThreeStubClient(jsonrpc::IClientConnector &conn, jsonrpc::clientVersion_t type = jsonrpc::JSONRPC_CLIENT_V2) : jsonrpc::Client(conn, type) {} |
|
||||
|
|
||||
std::string web3_sha3(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("web3_sha3",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string web3_clientVersion() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("web3_clientVersion",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string net_version() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("net_version",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string net_peerCount() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("net_peerCount",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool net_listening() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("net_listening",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_protocolVersion() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_protocolVersion",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_hashrate() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_hashrate",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_coinbase() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_coinbase",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool eth_mining() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_mining",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_gasPrice() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_gasPrice",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_accounts() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_accounts",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_blockNumber() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_blockNumber",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getBalance(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getBalance",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getStorageAt(const std::string& param1, const std::string& param2, const std::string& param3) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
p.append(param3); |
|
||||
Json::Value result = this->CallMethod("eth_getStorageAt",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getTransactionCount(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getTransactionCount",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getBlockTransactionCountByHash(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getBlockTransactionCountByHash",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getBlockTransactionCountByNumber(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getBlockTransactionCountByNumber",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getUncleCountByBlockHash(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getUncleCountByBlockHash",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getUncleCountByBlockNumber(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getUncleCountByBlockNumber",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_getCode(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getCode",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_sendTransaction(const Json::Value& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_sendTransaction",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_call(const Json::Value& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_call",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool eth_flush() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_flush",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getBlockByHash(const std::string& param1, bool param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getBlockByHash",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getBlockByNumber(const std::string& param1, bool param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getBlockByNumber",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getTransactionByHash(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getTransactionByHash",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getTransactionByBlockHashAndIndex(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getTransactionByBlockHashAndIndex",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getTransactionByBlockNumberAndIndex(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getTransactionByBlockNumberAndIndex",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getUncleByBlockHashAndIndex(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getUncleByBlockHashAndIndex",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getUncleByBlockNumberAndIndex(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("eth_getUncleByBlockNumberAndIndex",p); |
|
||||
if (result.isObject()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getCompilers() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_getCompilers",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_compileLLL(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_compileLLL",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_compileSerpent(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_compileSerpent",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_compileSolidity(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_compileSolidity",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_newFilter",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_newBlockFilter(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_newBlockFilter",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool eth_uninstallFilter(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_uninstallFilter",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getFilterChanges(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getFilterChanges",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getFilterLogs(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getFilterLogs",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getLogs(const Json::Value& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_getLogs",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_getWork() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("eth_getWork",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool eth_submitWork(const std::string& param1, const std::string& param2, const std::string& param3) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
p.append(param3); |
|
||||
Json::Value result = this->CallMethod("eth_submitWork",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string eth_register(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_register",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool eth_unregister(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_unregister",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value eth_fetchQueuedTransactions(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("eth_fetchQueuedTransactions",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool db_put(const std::string& param1, const std::string& param2, const std::string& param3) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
p.append(param3); |
|
||||
Json::Value result = this->CallMethod("db_put",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string db_get(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("db_get",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool shh_post(const Json::Value& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_post",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string shh_newIdentity() throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p = Json::nullValue; |
|
||||
Json::Value result = this->CallMethod("shh_newIdentity",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool shh_hasIdentity(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_hasIdentity",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string shh_newGroup(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("shh_newGroup",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string shh_addToGroup(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
p.append(param2); |
|
||||
Json::Value result = this->CallMethod("shh_addToGroup",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
std::string shh_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_newFilter",p); |
|
||||
if (result.isString()) |
|
||||
return result.asString(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
bool shh_uninstallFilter(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_uninstallFilter",p); |
|
||||
if (result.isBool()) |
|
||||
return result.asBool(); |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value shh_getFilterChanges(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_getFilterChanges",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
Json::Value shh_getMessages(const std::string& param1) throw (jsonrpc::JsonRpcException) |
|
||||
{ |
|
||||
Json::Value p; |
|
||||
p.append(param1); |
|
||||
Json::Value result = this->CallMethod("shh_getMessages",p); |
|
||||
if (result.isArray()) |
|
||||
return result; |
|
||||
else |
|
||||
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //JSONRPC_CPP_STUB_WEBTHREESTUBCLIENT_H_
|
|
Loading…
Reference in new issue