mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge remote-tracking branch 'ethereum/develop' into sol_jumptable
Conflicts: libsolidity/Compiler.cpp
This commit is contained in:
		
						commit
						9d8fe1a091
					
				| @ -253,7 +253,7 @@ bytes importCode(json_spirit::mObject& _o) | ||||
| 		code.clear(); | ||||
| 		for (auto const& j: _o["code"].get_array()) | ||||
| 			code.push_back(toByte(j)); | ||||
| 	}	 | ||||
| 	} | ||||
| 	return code; | ||||
| } | ||||
| 
 | ||||
| @ -305,6 +305,47 @@ std::string getTestPath() | ||||
| 	return testPath; | ||||
| } | ||||
| 
 | ||||
| void userDefinedTest(string testTypeFlag, std::function<void(json_spirit::mValue&, bool)> doTests) | ||||
| { | ||||
| 	for (int i = 1; i < boost::unit_test::framework::master_test_suite().argc; ++i) | ||||
| 	{ | ||||
| 		string arg = boost::unit_test::framework::master_test_suite().argv[i]; | ||||
| 		if (arg == testTypeFlag) | ||||
| 		{ | ||||
| 			if (i + 1 >= boost::unit_test::framework::master_test_suite().argc) | ||||
| 			{ | ||||
| 				cnote << "Missing filename\nUsage: testeth " << testTypeFlag << " <filename>\n"; | ||||
| 				return; | ||||
| 			} | ||||
| 			string filename = boost::unit_test::framework::master_test_suite().argv[i + 1]; | ||||
| 			int currentVerbosity = g_logVerbosity; | ||||
| 			g_logVerbosity = 12; | ||||
| 			try | ||||
| 			{ | ||||
| 				cnote << "Testing user defined test: " << filename; | ||||
| 				json_spirit::mValue v; | ||||
| 				string s = asString(contents(filename)); | ||||
| 				BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + filename + " is empty. "); | ||||
| 				json_spirit::read_string(s, v); | ||||
| 				doTests(v, false); | ||||
| 			} | ||||
| 			catch (Exception const& _e) | ||||
| 			{ | ||||
| 				BOOST_ERROR("Failed Test with Exception: " << diagnostic_information(_e)); | ||||
| 				g_logVerbosity = currentVerbosity; | ||||
| 			} | ||||
| 			catch (std::exception const& _e) | ||||
| 			{ | ||||
| 				BOOST_ERROR("Failed Test with Exception: " << _e.what()); | ||||
| 				g_logVerbosity = currentVerbosity; | ||||
| 			} | ||||
| 			g_logVerbosity = currentVerbosity; | ||||
| 		} | ||||
| 		else | ||||
| 			continue; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void executeTests(const string& _name, const string& _testPathAppendix, std::function<void(json_spirit::mValue&, bool)> doTests) | ||||
| { | ||||
| 	string testPath = getTestPath(); | ||||
|  | ||||
| @ -71,6 +71,7 @@ void checkOutput(bytes const& _output, json_spirit::mObject& _o); | ||||
| void checkStorage(std::map<u256, u256> _expectedStore, std::map<u256, u256> _resultStore, Address _expectedAddr); | ||||
| void executeTests(const std::string& _name, const std::string& _testPathAppendix, std::function<void(json_spirit::mValue&, bool)> doTests); | ||||
| std::string getTestPath(); | ||||
| void userDefinedTest(std::string testTypeFlag, std::function<void(json_spirit::mValue&, bool)> doTests); | ||||
| 
 | ||||
| template<typename mapType> | ||||
| void checkAddresses(mapType& _expectedAddrs, mapType& _resultAddrs) | ||||
|  | ||||
							
								
								
									
										46
									
								
								jsonrpc.cpp
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								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); | ||||
|  | ||||
							
								
								
									
										717
									
								
								stPreCompiledContractsFiller.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										717
									
								
								stPreCompiledContractsFiller.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,717 @@ | ||||
| { | ||||
|     "CallEcrecover0": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover0_gas500": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) (CALL 500 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover0_Gas499": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) (CALL 499 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover0_0input": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover1": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover2": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) (CALL 1000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallEcrecover3": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code": "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_0": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "0x600160005260206000602060006000600260fff1600051600055", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_1": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (CALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_2": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 5 0xf34578907f) (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_3": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xf34578907f) (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_4": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_4_gas99": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallSha256_5": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 500 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "10000000", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_0": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "0x600160005260206000602060006000600360fff1600051600055", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_1": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (CALL 500 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_2": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 5 0xf34578907f) (CALL 500 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_3": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xf34578907f) (CALL 500 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_4": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 100 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_4_gas99": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 99 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "365224", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
|     "CallRipemd160_5": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|              "currentGasLimit" : "10000000", | ||||
|              "currentDifficulty" : "256", | ||||
|              "currentTimestamp" : 1, | ||||
|              "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|          }, | ||||
|          "pre" : { | ||||
|              "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                  "balance" : "20000000", | ||||
|                  "nonce" : 0, | ||||
|                  "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 500 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", | ||||
|                  "storage": {} | ||||
|              }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "10000000", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|      }, | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										1334
									
								
								stSystemOperationsTestFiller.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1334
									
								
								stSystemOperationsTestFiller.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										11
									
								
								state.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								state.cpp
									
									
									
									
									
								
							| @ -43,7 +43,6 @@ namespace dev {  namespace test { | ||||
| 
 | ||||
| void doStateTests(json_spirit::mValue& v, bool _fillin) | ||||
| { | ||||
| 	cout << "start state test\n"; | ||||
| 	for (auto& i: v.get_obj()) | ||||
| 	{ | ||||
| 		cnote << i.first; | ||||
| @ -118,4 +117,14 @@ BOOST_AUTO_TEST_CASE(stSystemOperationsTest) | ||||
| 	dev::test::executeTests("stSystemOperationsTest", "/StateTests", dev::test::doStateTests); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(stPreCompiledContracts) | ||||
| { | ||||
| 	dev::test::executeTests("stPreCompiledContracts", "/StateTests", dev::test::doStateTests); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(userDefinedFileState) | ||||
| { | ||||
| 	dev::test::userDefinedTest("--statetest", dev::test::doStateTests); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
|  | ||||
							
								
								
									
										35
									
								
								vm.cpp
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								vm.cpp
									
									
									
									
									
								
							| @ -20,6 +20,7 @@ | ||||
|  * vm test functions. | ||||
|  */ | ||||
| 
 | ||||
| #include <boost/filesystem.hpp> | ||||
| #include "vm.h" | ||||
| 
 | ||||
| using namespace std; | ||||
| @ -423,32 +424,42 @@ BOOST_AUTO_TEST_CASE(vmPushDupSwapTest) | ||||
| 	dev::test::executeTests("vmPushDupSwapTest", "/VMTests", dev::test::doVMTests); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(userDefinedFile) | ||||
| BOOST_AUTO_TEST_CASE(vmRandom) | ||||
| { | ||||
| 	if (boost::unit_test::framework::master_test_suite().argc == 2) | ||||
| 	string testPath = getTestPath(); | ||||
| 	testPath += "/VMTests/RandomTests"; | ||||
| 
 | ||||
| 	vector<boost::filesystem::path> testFiles; | ||||
| 	boost::filesystem::directory_iterator iterator(testPath); | ||||
| 	for(; iterator != boost::filesystem::directory_iterator(); ++iterator) | ||||
| 		if (boost::filesystem::is_regular_file(iterator->path()) && iterator->path().extension() == ".json") | ||||
| 			testFiles.push_back(iterator->path()); | ||||
| 
 | ||||
| 	for (auto& path: testFiles) | ||||
| 	{ | ||||
| 		string filename = boost::unit_test::framework::master_test_suite().argv[1]; | ||||
| 		int currentVerbosity = g_logVerbosity; | ||||
| 		g_logVerbosity = 12; | ||||
| 		try | ||||
| 		{ | ||||
| 			cnote << "Testing VM..." << "user defined test"; | ||||
| 			cnote << "Testing ..." << path.filename(); | ||||
| 			json_spirit::mValue v; | ||||
| 			string s = asString(contents(filename)); | ||||
| 			BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + filename + " is empty. "); | ||||
| 			string s = asString(dev::contents(path.string())); | ||||
| 			BOOST_REQUIRE_MESSAGE(s.length() > 0, "Content of " + path.string() + " is empty. Have you cloned the 'tests' repo branch develop and set ETHEREUM_TEST_PATH to its path?"); | ||||
| 			json_spirit::read_string(s, v); | ||||
| 			dev::test::doVMTests(v, false); | ||||
| 			doVMTests(v, false); | ||||
| 		} | ||||
| 		catch (Exception const& _e) | ||||
| 		{ | ||||
| 			BOOST_ERROR("Failed VM Test with Exception: " << diagnostic_information(_e)); | ||||
| 			BOOST_ERROR("Failed test with Exception: " << diagnostic_information(_e)); | ||||
| 		} | ||||
| 		catch (std::exception const& _e) | ||||
| 		{ | ||||
| 			BOOST_ERROR("Failed VM Test with Exception: " << _e.what()); | ||||
| 			BOOST_ERROR("Failed test with Exception: " << _e.what()); | ||||
| 		} | ||||
| 		g_logVerbosity = currentVerbosity; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(userDefinedFileVM) | ||||
| { | ||||
| 	dev::test::userDefinedTest("--vmtest", dev::test::doVMTests); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
|  | ||||
| @ -1725,7 +1725,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x62122ff4600016600057", | ||||
|                 "code" : "0x62122ff460000b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -1753,7 +1753,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x62122f6a600016600057", | ||||
|                 "code" : "0x62122f6a60000b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -1781,7 +1781,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x6212faf4600116600057", | ||||
|                 "code" : "0x6212faf460010b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -1809,7 +1809,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x62126af4600116600057", | ||||
|                 "code" : "0x62126af460010b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -1837,7 +1837,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x62126af4605016600057", | ||||
|                 "code" : "0x62126af460500b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -2005,7 +2005,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x66f000000000000161ffff16600057", | ||||
|                 "code" : "0x66f000000000000161ffff0b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -2033,7 +2033,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x60ff68f0000000000000000116600057", | ||||
|                 "code" : "0x60ff68f000000000000000010b600055", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|  | ||||
| @ -19,37 +19,13 @@ class WebThreeStubClient | ||||
|             delete this->client; | ||||
|         } | ||||
| 
 | ||||
|         std::string account() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("account",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value accounts() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("accounts",p); | ||||
|     if (result.isArray()) | ||||
|         return result; | ||||
|      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) | ||||
|         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->client->CallMethod("addToGroup",p); | ||||
|             Json::Value result = this->client->CallMethod("db_get",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -57,12 +33,13 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string balanceAt(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         std::string db_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("balanceAt",p); | ||||
|             Json::Value result = this->client->CallMethod("db_getString",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -70,51 +47,14 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value blockByHash(const std::string& param1) 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("blockByHash",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value blockByNumber(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("blockByNumber",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string call(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("call",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool 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("db_put",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
| @ -122,24 +62,39 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string codeAt(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("codeAt",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|             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()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string coinbase() throw (jsonrpc::JsonRpcException) | ||||
|         Json::Value eth_accounts() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("coinbase",p); | ||||
|             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  | ||||
| @ -147,12 +102,38 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string compile(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("compile",p); | ||||
|             Json::Value result = this->client->CallMethod("eth_blockByHash",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value eth_blockByNumber(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_blockByNumber",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string eth_call(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_call",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -160,12 +141,63 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         double countAt(const std::string& 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("countAt",p); | ||||
|             Json::Value result = this->client->CallMethod("eth_changed",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string eth_codeAt(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_codeAt",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->client->CallMethod("eth_coinbase",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string eth_compile(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_compile",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         double eth_countAt(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             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 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 eth_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,13 +242,24 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string getString(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) | ||||
|         bool eth_listening() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("eth_listening",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string eth_lll(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| p.append(param2); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("getString",p); | ||||
|             Json::Value result = this->client->CallMethod("eth_lll",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -238,49 +267,24 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool haveIdentity(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         bool eth_mining() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("eth_mining",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         int eth_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("haveIdentity",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool listening() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("listening",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool mining() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("mining",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         int 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,13 +305,89 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string newGroup(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) | ||||
|         int eth_number() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             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 eth_peerCount() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("eth_peerCount",p); | ||||
|     if (result.isInt()) | ||||
|         return result.asInt(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool eth_setCoinbase(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             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 eth_setDefaultBlock(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_setDefaultBlock",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool eth_setListening(const bool& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_setListening",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool eth_setMining(const bool& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_setMining",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         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("newGroup",p); | ||||
|             Json::Value result = this->client->CallMethod("eth_stateAt",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -315,11 +395,12 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string newIdentity() throw (jsonrpc::JsonRpcException) | ||||
|         std::string eth_transact(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("newIdentity",p); | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_transact",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -327,66 +408,68 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         int number() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("number",p); | ||||
|     if (result.isInt()) | ||||
|         return result.asInt(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         int peerCount() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("peerCount",p); | ||||
|     if (result.isInt()) | ||||
|         return result.asInt(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool post(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("post",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool put(const std::string& param1, const std::string& param2, const std::string& param3) 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); | ||||
| p.append(param3); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("put",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 putString(const std::string& param1, const std::string& param2, const std::string& param3) 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); | ||||
| p.append(param3); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("putString",p); | ||||
|             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 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("eth_uncleByHash",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         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("eth_uncleByNumber",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool eth_uninstallFilter(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("eth_uninstallFilter",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
| @ -394,64 +477,26 @@ p.append(param3); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool setCoinbase(const std::string& param1) 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("setCoinbase",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|             Json::Value result = this->client->CallMethod("shh_addToGroup",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) | ||||
|         Json::Value shh_changed(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("setDefaultBlock",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool setListening(const bool& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("setListening",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool setMining(const bool& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("setMining",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value shhChanged(const int& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("shhChanged",p); | ||||
|             Json::Value result = this->client->CallMethod("shh_changed",p); | ||||
|     if (result.isArray()) | ||||
|         return result; | ||||
|      else  | ||||
| @ -459,25 +504,12 @@ p.append(param3); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         int shhNewFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         bool shh_haveIdentity(const std::string& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("shhNewFilter",p); | ||||
|     if (result.isInt()) | ||||
|         return result.asInt(); | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         bool shhUninstallFilter(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("shh_haveIdentity",p); | ||||
|     if (result.isBool()) | ||||
|         return result.asBool(); | ||||
|      else  | ||||
| @ -485,13 +517,26 @@ p.append(param3); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string stateAt(const std::string& param1, const std::string& param2) throw (jsonrpc::JsonRpcException) | ||||
|         int shh_newFilter(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             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()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         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("stateAt",p); | ||||
|             Json::Value result = this->client->CallMethod("shh_newGroup",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -499,12 +544,11 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         std::string transact(const Json::Value& param1) throw (jsonrpc::JsonRpcException) | ||||
|         std::string shh_newIdentity() throw (jsonrpc::JsonRpcException) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("transact",p); | ||||
|             p = Json::nullValue; | ||||
|             Json::Value result = this->client->CallMethod("shh_newIdentity",p); | ||||
|     if (result.isString()) | ||||
|         return result.asString(); | ||||
|      else  | ||||
| @ -512,68 +556,25 @@ p.append(param2); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value transactionByHash(const std::string& 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("transactionByHash",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()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value 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("transactionByNumber",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      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) | ||||
|         { | ||||
|             Json::Value p; | ||||
|             p.append(param1); | ||||
| p.append(param2); | ||||
| 
 | ||||
|             Json::Value result = this->client->CallMethod("uncleByHash",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      else  | ||||
|          throw jsonrpc::JsonRpcException(jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString()); | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Json::Value 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("uncleByNumber",p); | ||||
|     if (result.isObject()) | ||||
|         return result; | ||||
|      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  | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user