aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Jentzsch <jentzsch.software@gmail.com>2014-11-11 05:26:29 +0800
committerChristoph Jentzsch <jentzsch.software@gmail.com>2014-11-11 05:26:29 +0800
commit5654600311ea12f2dd2c023840894870b86e809e (patch)
tree712283b1e1030afd4e47e64b8b520ed30fd73b8a
parentd3910593a08bf1718b35136d2119462c36e12920 (diff)
parent4c05e6c96767b6b4aec9ee33c48119df40788024 (diff)
downloaddexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar.gz
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar.bz2
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar.lz
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar.xz
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.tar.zst
dexon-solidity-5654600311ea12f2dd2c023840894870b86e809e.zip
Merge remote-tracking branch 'upstream/develop' into NewStateTests
-rw-r--r--jsonrpc.cpp46
-rw-r--r--solidityEndToEndTest.cpp198
-rw-r--r--webthreestubclient.h333
3 files changed, 355 insertions, 222 deletions
diff --git a/jsonrpc.cpp b/jsonrpc.cpp
index 68c30734..4c748a95 100644
--- a/jsonrpc.cpp
+++ b/jsonrpc.cpp
@@ -74,14 +74,14 @@ BOOST_FIXTURE_TEST_SUITE(environment, Setup)
BOOST_AUTO_TEST_CASE(jsonrpc_defaultBlock)
{
cnote << "Testing jsonrpc defaultBlock...";
- int defaultBlock = jsonrpcClient->defaultBlock();
+ int defaultBlock = jsonrpcClient->eth_defaultBlock();
BOOST_CHECK_EQUAL(defaultBlock, web3->ethereum()->getDefault());
}
BOOST_AUTO_TEST_CASE(jsonrpc_gasPrice)
{
cnote << "Testing jsonrpc gasPrice...";
- string gasPrice = jsonrpcClient->gasPrice();
+ string gasPrice = jsonrpcClient->eth_gasPrice();
BOOST_CHECK_EQUAL(gasPrice, toJS(10 * dev::eth::szabo));
}
@@ -90,11 +90,11 @@ BOOST_AUTO_TEST_CASE(jsonrpc_isListening)
cnote << "Testing jsonrpc isListening...";
web3->startNetwork();
- bool listeningOn = jsonrpcClient->listening();
+ bool listeningOn = jsonrpcClient->eth_listening();
BOOST_CHECK_EQUAL(listeningOn, web3->isNetworkStarted());
web3->stopNetwork();
- bool listeningOff = jsonrpcClient->listening();
+ bool listeningOff = jsonrpcClient->eth_listening();
BOOST_CHECK_EQUAL(listeningOff, web3->isNetworkStarted());
}
@@ -103,11 +103,11 @@ BOOST_AUTO_TEST_CASE(jsonrpc_isMining)
cnote << "Testing jsonrpc isMining...";
web3->ethereum()->startMining();
- bool miningOn = jsonrpcClient->mining();
+ bool miningOn = jsonrpcClient->eth_mining();
BOOST_CHECK_EQUAL(miningOn, web3->ethereum()->isMining());
web3->ethereum()->stopMining();
- bool miningOff = jsonrpcClient->mining();
+ bool miningOff = jsonrpcClient->eth_mining();
BOOST_CHECK_EQUAL(miningOff, web3->ethereum()->isMining());
}
@@ -116,7 +116,7 @@ BOOST_AUTO_TEST_CASE(jsonrpc_accounts)
cnote << "Testing jsonrpc accounts...";
std::vector <dev::KeyPair> keys = {KeyPair::create(), KeyPair::create()};
jsonrpcServer->setAccounts(keys);
- Json::Value k = jsonrpcClient->accounts();
+ Json::Value k = jsonrpcClient->eth_accounts();
jsonrpcServer->setAccounts({});
BOOST_CHECK_EQUAL(k.isArray(), true);
BOOST_CHECK_EQUAL(k.size(), keys.size());
@@ -133,10 +133,10 @@ BOOST_AUTO_TEST_CASE(jsonrpc_accounts)
BOOST_AUTO_TEST_CASE(jsonrpc_number)
{
cnote << "Testing jsonrpc number2...";
- int number = jsonrpcClient->number();
+ int number = jsonrpcClient->eth_number();
BOOST_CHECK_EQUAL(number, web3->ethereum()->number() + 1);
dev::eth::mine(*(web3->ethereum()), 1);
- int numberAfter = jsonrpcClient->number();
+ int numberAfter = jsonrpcClient->eth_number();
BOOST_CHECK_EQUAL(number + 1, numberAfter);
BOOST_CHECK_EQUAL(numberAfter, web3->ethereum()->number() + 1);
}
@@ -144,7 +144,7 @@ BOOST_AUTO_TEST_CASE(jsonrpc_number)
BOOST_AUTO_TEST_CASE(jsonrpc_peerCount)
{
cnote << "Testing jsonrpc peerCount...";
- int peerCount = jsonrpcClient->peerCount();
+ int peerCount = jsonrpcClient->eth_peerCount();
BOOST_CHECK_EQUAL(web3->peerCount(), peerCount);
}
@@ -152,10 +152,10 @@ BOOST_AUTO_TEST_CASE(jsonrpc_setListening)
{
cnote << "Testing jsonrpc setListening...";
- jsonrpcClient->setListening(true);
+ jsonrpcClient->eth_setListening(true);
BOOST_CHECK_EQUAL(web3->isNetworkStarted(), true);
- jsonrpcClient->setListening(false);
+ jsonrpcClient->eth_setListening(false);
BOOST_CHECK_EQUAL(web3->isNetworkStarted(), false);
}
@@ -163,10 +163,10 @@ BOOST_AUTO_TEST_CASE(jsonrpc_setMining)
{
cnote << "Testing jsonrpc setMining...";
- jsonrpcClient->setMining(true);
+ jsonrpcClient->eth_setMining(true);
BOOST_CHECK_EQUAL(web3->ethereum()->isMining(), true);
- jsonrpcClient->setMining(false);
+ jsonrpcClient->eth_setMining(false);
BOOST_CHECK_EQUAL(web3->ethereum()->isMining(), false);
}
@@ -175,14 +175,14 @@ BOOST_AUTO_TEST_CASE(jsonrpc_stateAt)
cnote << "Testing jsonrpc stateAt...";
dev::KeyPair key = KeyPair::create();
auto address = key.address();
- string stateAt = jsonrpcClient->stateAt(toJS(address), "0");
+ string stateAt = jsonrpcClient->eth_stateAt(toJS(address), "0");
BOOST_CHECK_EQUAL(toJS(web3->ethereum()->stateAt(address, jsToU256("0"), 0)), stateAt);
}
BOOST_AUTO_TEST_CASE(jsonrpc_transact)
{
cnote << "Testing jsonrpc transact...";
- string coinbase = jsonrpcClient->coinbase();
+ string coinbase = jsonrpcClient->eth_coinbase();
BOOST_CHECK_EQUAL(jsToAddress(coinbase), web3->ethereum()->address());
dev::KeyPair key = KeyPair::create();
@@ -190,14 +190,14 @@ BOOST_AUTO_TEST_CASE(jsonrpc_transact)
auto receiver = KeyPair::create();
web3->ethereum()->setAddress(address);
- coinbase = jsonrpcClient->coinbase();
+ coinbase = jsonrpcClient->eth_coinbase();
BOOST_CHECK_EQUAL(jsToAddress(coinbase), web3->ethereum()->address());
BOOST_CHECK_EQUAL(jsToAddress(coinbase), address);
jsonrpcServer->setAccounts({key});
auto balance = web3->ethereum()->balanceAt(address, 0);
- string balanceString = jsonrpcClient->balanceAt(toJS(address));
- double countAt = jsonrpcClient->countAt(toJS(address));
+ string balanceString = jsonrpcClient->eth_balanceAt(toJS(address));
+ double countAt = jsonrpcClient->eth_countAt(toJS(address));
BOOST_CHECK_EQUAL(countAt, (double)(uint64_t)web3->ethereum()->countAt(address));
BOOST_CHECK_EQUAL(countAt, 0);
@@ -206,7 +206,7 @@ BOOST_AUTO_TEST_CASE(jsonrpc_transact)
dev::eth::mine(*(web3->ethereum()), 1);
balance = web3->ethereum()->balanceAt(address, 0);
- balanceString = jsonrpcClient->balanceAt(toJS(address));
+ balanceString = jsonrpcClient->eth_balanceAt(toJS(address));
BOOST_CHECK_EQUAL(toJS(balance), balanceString);
BOOST_CHECK_EQUAL(jsToDecimal(balanceString), "1500000000000000000");
@@ -223,13 +223,13 @@ BOOST_AUTO_TEST_CASE(jsonrpc_transact)
t["gas"] = toJS(gas);
t["gasPrice"] = toJS(gasPrice);
- jsonrpcClient->transact(t);
+ jsonrpcClient->eth_transact(t);
jsonrpcServer->setAccounts({});
dev::eth::mine(*(web3->ethereum()), 1);
- countAt = jsonrpcClient->countAt(toJS(address));
+ countAt = jsonrpcClient->eth_countAt(toJS(address));
auto balance2 = web3->ethereum()->balanceAt(receiver.address());
- string balanceString2 = jsonrpcClient->balanceAt(toJS(receiver.address()));
+ string balanceString2 = jsonrpcClient->eth_balanceAt(toJS(receiver.address()));
BOOST_CHECK_EQUAL(countAt, (double)(uint64_t)web3->ethereum()->countAt(address));
BOOST_CHECK_EQUAL(countAt, 1);
diff --git a/solidityEndToEndTest.cpp b/solidityEndToEndTest.cpp
index 35c2a3b0..796adcb1 100644
--- a/solidityEndToEndTest.cpp
+++ b/solidityEndToEndTest.cpp
@@ -60,6 +60,16 @@ public:
return callFunction(_index, toBigEndian(_argument1));
}
+ bool testSolidityAgainstCpp(byte _index, std::function<u256(u256)> const& _cppfun, u256 const& _argument1)
+ {
+ return toBigEndian(_cppfun(_argument1)) == callFunction(_index, toBigEndian(_argument1));
+ }
+
+ bool testSolidityAgainstCpp(byte _index, std::function<u256()> const& _cppfun)
+ {
+ return toBigEndian(_cppfun()) == callFunction(_index, bytes());
+ }
+
private:
void sendMessage(bytes const& _data, bool _isCreation)
{
@@ -123,11 +133,19 @@ BOOST_AUTO_TEST_CASE(recursive_calls)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, u256(0)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(0, u256(1)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(0, u256(2)) == toBigEndian(u256(2)));
- BOOST_CHECK(callFunction(0, u256(3)) == toBigEndian(u256(6)));
- BOOST_CHECK(callFunction(0, u256(4)) == toBigEndian(u256(24)));
+ std::function<u256(u256)> recursive_calls_cpp = [&recursive_calls_cpp](u256 const& n) -> u256
+ {
+ if (n <= 1)
+ return 1;
+ else
+ return n * recursive_calls_cpp(n - 1);
+ };
+
+ BOOST_CHECK(testSolidityAgainstCpp(0, recursive_calls_cpp, u256(0)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, recursive_calls_cpp, u256(1)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, recursive_calls_cpp, u256(2)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, recursive_calls_cpp, u256(3)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, recursive_calls_cpp, u256(4)));
}
BOOST_AUTO_TEST_CASE(while_loop)
@@ -140,11 +158,22 @@ BOOST_AUTO_TEST_CASE(while_loop)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, u256(0)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(0, u256(1)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(0, u256(2)) == toBigEndian(u256(2)));
- BOOST_CHECK(callFunction(0, u256(3)) == toBigEndian(u256(6)));
- BOOST_CHECK(callFunction(0, u256(4)) == toBigEndian(u256(24)));
+
+ auto while_loop_cpp = [](u256 const& n) -> u256
+ {
+ u256 nfac = 1;
+ u256 i = 2;
+ while (i <= n)
+ nfac *= i++;
+
+ return nfac;
+ };
+
+ BOOST_CHECK(testSolidityAgainstCpp(0, while_loop_cpp, u256(0)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, while_loop_cpp, u256(1)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, while_loop_cpp, u256(2)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, while_loop_cpp, u256(3)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, while_loop_cpp, u256(4)));
}
BOOST_AUTO_TEST_CASE(break_outside_loop)
@@ -182,18 +211,43 @@ BOOST_AUTO_TEST_CASE(nested_loops)
"}\n";
ExecutionFramework framework;
framework.compileAndRun(sourceCode);
- BOOST_CHECK(framework.callFunction(0, u256(0)) == toBigEndian(u256(0)));
- BOOST_CHECK(framework.callFunction(0, u256(1)) == toBigEndian(u256(1)));
- BOOST_CHECK(framework.callFunction(0, u256(2)) == toBigEndian(u256(1)));
- BOOST_CHECK(framework.callFunction(0, u256(3)) == toBigEndian(u256(2)));
- BOOST_CHECK(framework.callFunction(0, u256(4)) == toBigEndian(u256(2)));
- BOOST_CHECK(framework.callFunction(0, u256(5)) == toBigEndian(u256(4)));
- BOOST_CHECK(framework.callFunction(0, u256(6)) == toBigEndian(u256(5)));
- BOOST_CHECK(framework.callFunction(0, u256(7)) == toBigEndian(u256(5)));
- BOOST_CHECK(framework.callFunction(0, u256(8)) == toBigEndian(u256(7)));
- BOOST_CHECK(framework.callFunction(0, u256(9)) == toBigEndian(u256(8)));
- BOOST_CHECK(framework.callFunction(0, u256(10)) == toBigEndian(u256(10)));
- BOOST_CHECK(framework.callFunction(0, u256(11)) == toBigEndian(u256(10)));
+
+ auto nested_loops_cpp = [](u256 n) -> u256
+ {
+ while (n > 1)
+ {
+ if (n == 10)
+ break;
+ while (n > 5)
+ {
+ if (n == 8)
+ break;
+ n--;
+ if (n == 6)
+ continue;
+ return n;
+ }
+ n--;
+ if (n == 3)
+ continue;
+ break;
+ }
+
+ return n;
+ };
+
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(0)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(1)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(2)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(3)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(4)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(5)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(6)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(7)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(8)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(9)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(10)));
+ BOOST_CHECK(framework.testSolidityAgainstCpp(0, nested_loops_cpp, u256(11)));
}
BOOST_AUTO_TEST_CASE(calling_other_functions)
@@ -214,11 +268,34 @@ BOOST_AUTO_TEST_CASE(calling_other_functions)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(2, u256(0)) == toBigEndian(u256(0)));
- BOOST_CHECK(callFunction(2, u256(1)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(2, u256(2)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(2, u256(8)) == toBigEndian(u256(1)));
- BOOST_CHECK(callFunction(2, u256(127)) == toBigEndian(u256(1)));
+
+ auto evenStep_cpp = [](u256 const& n) -> u256
+ {
+ return n / 2;
+ };
+
+ auto oddStep_cpp = [](u256 const& n) -> u256
+ {
+ return 3 * n + 1;
+ };
+
+ auto collatz_cpp = [&evenStep_cpp, &oddStep_cpp] (u256 n) -> u256 {
+ u256 y;
+ while ((y = n) > 1)
+ {
+ if (n % 2 == 0)
+ n = evenStep_cpp(n);
+ else
+ n = oddStep_cpp(n);
+ }
+ return y;
+ };
+
+ BOOST_CHECK(testSolidityAgainstCpp(2, collatz_cpp, u256(0)));
+ BOOST_CHECK(testSolidityAgainstCpp(2, collatz_cpp, u256(1)));
+ BOOST_CHECK(testSolidityAgainstCpp(2, collatz_cpp, u256(2)));
+ BOOST_CHECK(testSolidityAgainstCpp(2, collatz_cpp, u256(8)));
+ BOOST_CHECK(testSolidityAgainstCpp(2, collatz_cpp, u256(127)));
}
BOOST_AUTO_TEST_CASE(many_local_variables)
@@ -270,8 +347,15 @@ BOOST_AUTO_TEST_CASE(short_circuiting)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, u256(0)) == toBigEndian(u256(0)));
- BOOST_CHECK(callFunction(0, u256(1)) == toBigEndian(u256(8)));
+
+ auto short_circuiting_cpp = [](u256 n) -> u256
+ {
+ n == 0 || (n = 8) > 0;
+ return n;
+ };
+
+ BOOST_CHECK(testSolidityAgainstCpp(0, short_circuiting_cpp, u256(0)));
+ BOOST_CHECK(testSolidityAgainstCpp(0, short_circuiting_cpp, u256(1)));
}
BOOST_AUTO_TEST_CASE(high_bits_cleaning)
@@ -284,7 +368,14 @@ BOOST_AUTO_TEST_CASE(high_bits_cleaning)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, bytes()) == toBigEndian(u256(9)));
+ auto high_bits_cleaning_cpp = []() -> u256
+ {
+ uint32_t x = uint32_t(0xffffffff) + 10;
+ if (x >= 0xffffffff)
+ return 0;
+ return x;
+ };
+ BOOST_CHECK(testSolidityAgainstCpp(0, high_bits_cleaning_cpp));
}
BOOST_AUTO_TEST_CASE(sign_extension)
@@ -297,7 +388,14 @@ BOOST_AUTO_TEST_CASE(sign_extension)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, bytes()) == toBigEndian(u256(0xff)));
+ auto sign_extension_cpp = []() -> u256
+ {
+ int64_t x = -int32_t(0xff);
+ if (x >= 0xff)
+ return 0;
+ return u256(x) * -1;
+ };
+ BOOST_CHECK(testSolidityAgainstCpp(0, sign_extension_cpp));
}
BOOST_AUTO_TEST_CASE(small_unsigned_types)
@@ -309,7 +407,12 @@ BOOST_AUTO_TEST_CASE(small_unsigned_types)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, bytes()) == toBigEndian(u256(0xfe0000)));
+ auto small_unsigned_types_cpp = []() -> u256
+ {
+ uint32_t x = uint32_t(0xffffff) * 0xffffff;
+ return x / 0x100;
+ };
+ BOOST_CHECK(testSolidityAgainstCpp(0, small_unsigned_types_cpp));
}
BOOST_AUTO_TEST_CASE(small_signed_types)
@@ -320,7 +423,36 @@ BOOST_AUTO_TEST_CASE(small_signed_types)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK(callFunction(0, bytes()) == toBigEndian(u256(200)));
+ auto small_signed_types_cpp = []() -> u256
+ {
+ return -int32_t(10) * -int64_t(20);
+ };
+ BOOST_CHECK(testSolidityAgainstCpp(0, small_signed_types_cpp));
+}
+
+BOOST_AUTO_TEST_CASE(state_smoke_test)
+{
+ char const* sourceCode = "contract test {\n"
+ " uint256 value1;\n"
+ " uint256 value2;\n"
+ " function get(uint8 which) returns (uint256 value) {\n"
+ " if (which == 0) return value1;\n"
+ " else return value2;\n"
+ " }\n"
+ " function set(uint8 which, uint256 value) {\n"
+ " if (which == 0) value1 = value;\n"
+ " else value2 = value;\n"
+ " }\n"
+ "}\n";
+ compileAndRun(sourceCode);
+ BOOST_CHECK(callFunction(0, bytes(1, 0x00)) == toBigEndian(u256(0)));
+ BOOST_CHECK(callFunction(0, bytes(1, 0x01)) == toBigEndian(u256(0)));
+ BOOST_CHECK(callFunction(1, bytes(1, 0x00) + toBigEndian(u256(0x1234))) == bytes());
+ BOOST_CHECK(callFunction(1, bytes(1, 0x01) + toBigEndian(u256(0x8765))) == bytes());
+ BOOST_CHECK(callFunction(0, bytes(1, 0x00)) == toBigEndian(u256(0x1234)));
+ BOOST_CHECK(callFunction(0, bytes(1, 0x01)) == toBigEndian(u256(0x8765)));
+ BOOST_CHECK(callFunction(1, bytes(1, 0x00) + toBigEndian(u256(0x3))) == bytes());
+ BOOST_CHECK(callFunction(0, bytes(1, 0x00)) == toBigEndian(u256(0x3)));
}
BOOST_AUTO_TEST_SUITE_END()
diff --git a/webthreestubclient.h b/webthreestubclient.h
index 6beee5bb..179c620a 100644
--- a/webthreestubclient.h
+++ b/webthreestubclient.h
@@ -19,11 +19,13 @@ class WebThreeStubClient
delete this->client;
}
- std::string account() throw (jsonrpc::JsonRpcException)
+ std::string db_get(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
- p = Json::nullValue;
- Json::Value result = this->client->CallMethod("account",p);
+ p.append(param1);
+p.append(param2);
+
+ Json::Value result = this->client->CallMethod("db_get",p);
if (result.isString())
return result.asString();
else
@@ -31,38 +33,68 @@ class WebThreeStubClient
}
- Json::Value accounts() throw (jsonrpc::JsonRpcException)
+ std::string db_getString(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
- p = Json::nullValue;
- Json::Value result = this->client->CallMethod("accounts",p);
- if (result.isArray())
- return result;
+ p.append(param1);
+p.append(param2);
+
+ Json::Value result = this->client->CallMethod("db_getString",p);
+ if (result.isString())
+ return result.asString();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- std::string addToGroup(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
+ 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->client->CallMethod("addToGroup",p);
- if (result.isString())
- return result.asString();
+ Json::Value result = this->client->CallMethod("db_put",p);
+ if (result.isBool())
+ return result.asBool();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- std::string balanceAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ bool db_putString(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->client->CallMethod("balanceAt",p);
+ Json::Value result = this->client->CallMethod("db_putString",p);
+ if (result.isBool())
+ return result.asBool();
+ 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->client->CallMethod("eth_accounts",p);
+ if (result.isArray())
+ return result;
+ else
+ throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
+
+ }
+
+ std::string eth_balanceAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ {
+ Json::Value p;
+ p.append(param1);
+
+ Json::Value result = this->client->CallMethod("eth_balanceAt",p);
if (result.isString())
return result.asString();
else
@@ -70,12 +102,12 @@ p.append(param2);
}
- Json::Value blockByHash(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_blockByHash(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("blockByHash",p);
+ Json::Value result = this->client->CallMethod("eth_blockByHash",p);
if (result.isObject())
return result;
else
@@ -83,12 +115,12 @@ p.append(param2);
}
- Json::Value blockByNumber(const int& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_blockByNumber(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("blockByNumber",p);
+ Json::Value result = this->client->CallMethod("eth_blockByNumber",p);
if (result.isObject())
return result;
else
@@ -96,12 +128,12 @@ p.append(param2);
}
- std::string call(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
+ std::string eth_call(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("call",p);
+ Json::Value result = this->client->CallMethod("eth_call",p);
if (result.isString())
return result.asString();
else
@@ -109,12 +141,12 @@ p.append(param2);
}
- bool changed(const int& param1) throw (jsonrpc::JsonRpcException)
+ bool eth_changed(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("changed",p);
+ Json::Value result = this->client->CallMethod("eth_changed",p);
if (result.isBool())
return result.asBool();
else
@@ -122,12 +154,12 @@ p.append(param2);
}
- std::string codeAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ std::string eth_codeAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("codeAt",p);
+ Json::Value result = this->client->CallMethod("eth_codeAt",p);
if (result.isString())
return result.asString();
else
@@ -135,11 +167,11 @@ p.append(param2);
}
- std::string coinbase() throw (jsonrpc::JsonRpcException)
+ std::string eth_coinbase() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("coinbase",p);
+ Json::Value result = this->client->CallMethod("eth_coinbase",p);
if (result.isString())
return result.asString();
else
@@ -147,12 +179,12 @@ p.append(param2);
}
- std::string compile(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ std::string eth_compile(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("compile",p);
+ Json::Value result = this->client->CallMethod("eth_compile",p);
if (result.isString())
return result.asString();
else
@@ -160,12 +192,12 @@ p.append(param2);
}
- double countAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ double eth_countAt(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("countAt",p);
+ Json::Value result = this->client->CallMethod("eth_countAt",p);
if (result.isDouble())
return result.asDouble();
else
@@ -173,11 +205,11 @@ p.append(param2);
}
- int defaultBlock() throw (jsonrpc::JsonRpcException)
+ int eth_defaultBlock() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("defaultBlock",p);
+ Json::Value result = this->client->CallMethod("eth_defaultBlock",p);
if (result.isInt())
return result.asInt();
else
@@ -185,11 +217,11 @@ p.append(param2);
}
- std::string gasPrice() throw (jsonrpc::JsonRpcException)
+ std::string eth_gasPrice() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("gasPrice",p);
+ Json::Value result = this->client->CallMethod("eth_gasPrice",p);
if (result.isString())
return result.asString();
else
@@ -197,26 +229,12 @@ p.append(param2);
}
- std::string get(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_getMessages(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
- Json::Value result = this->client->CallMethod("get",p);
- if (result.isString())
- return result.asString();
- else
- throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
-
- }
-
- Json::Value getMessages(const int& param1) throw (jsonrpc::JsonRpcException)
- {
- Json::Value p;
- p.append(param1);
-
- Json::Value result = this->client->CallMethod("getMessages",p);
+ Json::Value result = this->client->CallMethod("eth_getMessages",p);
if (result.isArray())
return result;
else
@@ -224,26 +242,11 @@ p.append(param2);
}
- std::string getString(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
- {
- Json::Value p;
- p.append(param1);
-p.append(param2);
-
- Json::Value result = this->client->CallMethod("getString",p);
- if (result.isString())
- return result.asString();
- else
- throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
-
- }
-
- bool haveIdentity(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ bool eth_listening() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
- p.append(param1);
-
- Json::Value result = this->client->CallMethod("haveIdentity",p);
+ p = Json::nullValue;
+ Json::Value result = this->client->CallMethod("eth_listening",p);
if (result.isBool())
return result.asBool();
else
@@ -251,23 +254,24 @@ p.append(param2);
}
- bool listening() throw (jsonrpc::JsonRpcException)
+ std::string eth_lll(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
- p = Json::nullValue;
- Json::Value result = this->client->CallMethod("listening",p);
- if (result.isBool())
- return result.asBool();
+ p.append(param1);
+
+ Json::Value result = this->client->CallMethod("eth_lll",p);
+ if (result.isString())
+ return result.asString();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool mining() throw (jsonrpc::JsonRpcException)
+ bool eth_mining() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("mining",p);
+ Json::Value result = this->client->CallMethod("eth_mining",p);
if (result.isBool())
return result.asBool();
else
@@ -275,12 +279,12 @@ p.append(param2);
}
- int newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
+ int eth_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("newFilter",p);
+ Json::Value result = this->client->CallMethod("eth_newFilter",p);
if (result.isInt())
return result.asInt();
else
@@ -288,12 +292,12 @@ p.append(param2);
}
- int newFilterString(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ int eth_newFilterString(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("newFilterString",p);
+ Json::Value result = this->client->CallMethod("eth_newFilterString",p);
if (result.isInt())
return result.asInt();
else
@@ -301,37 +305,23 @@ p.append(param2);
}
- std::string 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->client->CallMethod("newGroup",p);
- if (result.isString())
- return result.asString();
- else
- throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
-
- }
-
- std::string newIdentity() throw (jsonrpc::JsonRpcException)
+ int eth_number() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("newIdentity",p);
- if (result.isString())
- return result.asString();
+ Json::Value result = this->client->CallMethod("eth_number",p);
+ if (result.isInt())
+ return result.asInt();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- int number() throw (jsonrpc::JsonRpcException)
+ int eth_peerCount() throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p = Json::nullValue;
- Json::Value result = this->client->CallMethod("number",p);
+ Json::Value result = this->client->CallMethod("eth_peerCount",p);
if (result.isInt())
return result.asInt();
else
@@ -339,24 +329,25 @@ p.append(param2);
}
- int peerCount() throw (jsonrpc::JsonRpcException)
+ bool eth_setCoinbase(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
- p = Json::nullValue;
- Json::Value result = this->client->CallMethod("peerCount",p);
- if (result.isInt())
- return result.asInt();
+ p.append(param1);
+
+ Json::Value result = this->client->CallMethod("eth_setCoinbase",p);
+ if (result.isBool())
+ return result.asBool();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool post(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
+ bool eth_setDefaultBlock(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("post",p);
+ Json::Value result = this->client->CallMethod("eth_setDefaultBlock",p);
if (result.isBool())
return result.asBool();
else
@@ -364,14 +355,12 @@ p.append(param2);
}
- bool put(const std::string& param1, const std::string& param2, const std::string& param3) throw (jsonrpc::JsonRpcException)
+ bool eth_setListening(const bool& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
-p.append(param3);
- Json::Value result = this->client->CallMethod("put",p);
+ Json::Value result = this->client->CallMethod("eth_setListening",p);
if (result.isBool())
return result.asBool();
else
@@ -379,14 +368,12 @@ p.append(param3);
}
- bool putString(const std::string& param1, const std::string& param2, const std::string& param3) throw (jsonrpc::JsonRpcException)
+ bool eth_setMining(const bool& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
-p.append(param3);
- Json::Value result = this->client->CallMethod("putString",p);
+ Json::Value result = this->client->CallMethod("eth_setMining",p);
if (result.isBool())
return result.asBool();
else
@@ -394,90 +381,95 @@ p.append(param3);
}
- bool setCoinbase(const std::string& param1) throw (jsonrpc::JsonRpcException)
+ std::string eth_stateAt(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
+p.append(param2);
- Json::Value result = this->client->CallMethod("setCoinbase",p);
- if (result.isBool())
- return result.asBool();
+ Json::Value result = this->client->CallMethod("eth_stateAt",p);
+ if (result.isString())
+ return result.asString();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool setDefaultBlock(const int& param1) throw (jsonrpc::JsonRpcException)
+ std::string eth_transact(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("setDefaultBlock",p);
- if (result.isBool())
- return result.asBool();
+ Json::Value result = this->client->CallMethod("eth_transact",p);
+ if (result.isString())
+ return result.asString();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool setListening(const bool& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_transactionByHash(const std::string& param1, const int& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
+p.append(param2);
- Json::Value result = this->client->CallMethod("setListening",p);
- if (result.isBool())
- return result.asBool();
+ Json::Value result = this->client->CallMethod("eth_transactionByHash",p);
+ if (result.isObject())
+ return result;
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool setMining(const bool& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_transactionByNumber(const int& param1, const int& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
+p.append(param2);
- Json::Value result = this->client->CallMethod("setMining",p);
- if (result.isBool())
- return result.asBool();
+ Json::Value result = this->client->CallMethod("eth_transactionByNumber",p);
+ if (result.isObject())
+ return result;
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- Json::Value shhChanged(const int& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_uncleByHash(const std::string& param1, const int& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
+p.append(param2);
- Json::Value result = this->client->CallMethod("shhChanged",p);
- if (result.isArray())
+ Json::Value result = this->client->CallMethod("eth_uncleByHash",p);
+ if (result.isObject())
return result;
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- int shhNewFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value eth_uncleByNumber(const int& param1, const int& param2) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
+p.append(param2);
- Json::Value result = this->client->CallMethod("shhNewFilter",p);
- if (result.isInt())
- return result.asInt();
+ Json::Value result = this->client->CallMethod("eth_uncleByNumber",p);
+ if (result.isObject())
+ return result;
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool shhUninstallFilter(const int& param1) throw (jsonrpc::JsonRpcException)
+ bool eth_uninstallFilter(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("shhUninstallFilter",p);
+ Json::Value result = this->client->CallMethod("eth_uninstallFilter",p);
if (result.isBool())
return result.asBool();
else
@@ -485,13 +477,13 @@ p.append(param3);
}
- std::string stateAt(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException)
+ 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->client->CallMethod("stateAt",p);
+ Json::Value result = this->client->CallMethod("shh_addToGroup",p);
if (result.isString())
return result.asString();
else
@@ -499,81 +491,90 @@ p.append(param2);
}
- std::string transact(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
+ Json::Value shh_changed(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("transact",p);
- if (result.isString())
- return result.asString();
+ Json::Value result = this->client->CallMethod("shh_changed",p);
+ if (result.isArray())
+ return result;
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- Json::Value transactionByHash(const std::string& param1, const int& param2) throw (jsonrpc::JsonRpcException)
+ bool shh_haveIdentity(const std::string& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
- Json::Value result = this->client->CallMethod("transactionByHash",p);
- if (result.isObject())
- return result;
+ Json::Value result = this->client->CallMethod("shh_haveIdentity",p);
+ if (result.isBool())
+ return result.asBool();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- Json::Value transactionByNumber(const int& param1, const int& param2) throw (jsonrpc::JsonRpcException)
+ int shh_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
- Json::Value result = this->client->CallMethod("transactionByNumber",p);
- if (result.isObject())
- return result;
+ Json::Value result = this->client->CallMethod("shh_newFilter",p);
+ if (result.isInt())
+ return result.asInt();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- Json::Value uncleByHash(const std::string& param1, const int& param2) throw (jsonrpc::JsonRpcException)
+ 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->client->CallMethod("uncleByHash",p);
- if (result.isObject())
- return result;
+ Json::Value result = this->client->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_newIdentity() throw (jsonrpc::JsonRpcException)
+ {
+ Json::Value p;
+ p = Json::nullValue;
+ Json::Value result = this->client->CallMethod("shh_newIdentity",p);
+ if (result.isString())
+ return result.asString();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- Json::Value uncleByNumber(const int& param1, const int& param2) throw (jsonrpc::JsonRpcException)
+ bool shh_post(const Json::Value& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
-p.append(param2);
- Json::Value result = this->client->CallMethod("uncleByNumber",p);
- if (result.isObject())
- return result;
+ Json::Value result = this->client->CallMethod("shh_post",p);
+ if (result.isBool())
+ return result.asBool();
else
throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString());
}
- bool uninstallFilter(const int& param1) throw (jsonrpc::JsonRpcException)
+ bool shh_uninstallFilter(const int& param1) throw (jsonrpc::JsonRpcException)
{
Json::Value p;
p.append(param1);
- Json::Value result = this->client->CallMethod("uninstallFilter",p);
+ Json::Value result = this->client->CallMethod("shh_uninstallFilter",p);
if (result.isBool())
return result.asBool();
else