mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Added random test creater
This commit is contained in:
		
							parent
							
								
									ea27fbe5f3
								
							
						
					
					
						commit
						5b3c47aa05
					
				| @ -1,12 +1,14 @@ | ||||
| cmake_policy(SET CMP0015 NEW) | ||||
| 
 | ||||
| aux_source_directory(. SRC_LIST) | ||||
| list(REMOVE_ITEM SRC_LIST "./createRandomTest.cpp") | ||||
| 
 | ||||
| include_directories(..) | ||||
| link_directories(../libethcore) | ||||
| link_directories(../libethereum) | ||||
| 
 | ||||
| add_executable(testeth ${SRC_LIST}) | ||||
| add_executable(createRandomTest createRandomTest.cpp vm.cpp) | ||||
| 
 | ||||
| target_link_libraries(testeth ethereum) | ||||
| target_link_libraries(testeth ethcore) | ||||
| @ -14,6 +16,13 @@ target_link_libraries(testeth secp256k1) | ||||
| target_link_libraries(testeth gmp) | ||||
| target_link_libraries(testeth ${CRYPTOPP_LS}) | ||||
| 
 | ||||
| target_link_libraries(createRandomTest ethereum) | ||||
| target_link_libraries(createRandomTest ethcore) | ||||
| target_link_libraries(createRandomTest boost_chrono) | ||||
| target_link_libraries(createRandomTest boost_unit_test_framework) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| if ("${TARGET_PLATFORM}" STREQUAL "w64") | ||||
| 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") | ||||
| 	target_link_libraries(testeth boost_system-mt-s) | ||||
|  | ||||
							
								
								
									
										154
									
								
								createRandomTest.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								createRandomTest.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,154 @@ | ||||
| /*
 | ||||
|     This file is part of cpp-ethereum. | ||||
| 
 | ||||
|     cpp-ethereum is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation, either version 3 of the License, or | ||||
|     (at your option) any later version. | ||||
| 
 | ||||
|     cpp-ethereum is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU General Public License for more details. | ||||
| 
 | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with cpp-ethereum.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| /** @file createRandomTest.cpp
 | ||||
|  * @author Christoph Jentzsch <jentzsch.simulationsoftware@gmail.com> | ||||
|  * @date 2014 | ||||
|  * Creating a random virtual machine test. | ||||
|  */ | ||||
| 
 | ||||
| #include <string> | ||||
| #include <iostream> | ||||
| #include <boost/random.hpp> | ||||
| #include <boost/chrono.hpp> | ||||
| #include <boost/filesystem/path.hpp> | ||||
| #pragma GCC diagnostic ignored "-Wunused-parameter" | ||||
| #include <json_spirit/json_spirit.h> | ||||
| #include <json_spirit/json_spirit_reader_template.h> | ||||
| #include <json_spirit/json_spirit_writer_template.h> | ||||
| #include <libdevcore/CommonIO.h> | ||||
| #include <libdevcore/CommonData.h> | ||||
| #include <libevmface/Instruction.h> | ||||
| #include "vm.h" | ||||
| 
 | ||||
| using namespace std; | ||||
| using namespace json_spirit; | ||||
| using namespace dev; | ||||
| 
 | ||||
| void doMyTests(json_spirit::mValue& v); | ||||
| 
 | ||||
| int main(int argc, char *argv[]) | ||||
| { | ||||
| 	if (argc!=2) | ||||
| 	{ | ||||
| 		cout << "usage: createRandomTest <filename>\n"; | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	// create random code
 | ||||
| 
 | ||||
| 	boost::random::mt19937 gen; | ||||
| 
 | ||||
| 	auto now = boost::chrono::steady_clock::now().time_since_epoch(); | ||||
| 	auto timeSinceEpoch = boost::chrono::duration_cast<boost::chrono::nanoseconds>(now).count(); | ||||
| 	gen.seed(static_cast<unsigned int>(timeSinceEpoch)); | ||||
| 	boost::random::uniform_int_distribution<> lengthOfCodeDist(2, 16); | ||||
| 	boost::random::uniform_int_distribution<> opcodeDist(0, 255); | ||||
| 	boost::random::variate_generator<boost::mt19937&, | ||||
| 			boost::random::uniform_int_distribution<> > randGen(gen, opcodeDist); | ||||
| 
 | ||||
| 	int lengthOfCode  = lengthOfCodeDist(gen); | ||||
| 	string randomCode; | ||||
| 
 | ||||
| 	for (int i = 0; i < lengthOfCode; ++i) | ||||
| 	{ | ||||
| 		randomCode += toHex(toCompactBigEndian(randGen())); | ||||
| 	} | ||||
| 
 | ||||
| 	// read template test file
 | ||||
| 
 | ||||
| 	mValue v; | ||||
| 	boost::filesystem::path p(__FILE__); | ||||
| 	boost::filesystem::path dir = p.parent_path(); | ||||
| 	string s = asString(contents(dir.string() + "/randomTestFiller.json")); | ||||
| 	read_string(s, v); | ||||
| 
 | ||||
| 	// insert new random code
 | ||||
| 	v.get_obj().find("randomVMtest")->second.get_obj().find("pre")->second.get_obj().begin()->second.get_obj()["code"] = "0x" + randomCode; | ||||
| 
 | ||||
| 	// execute code in vm
 | ||||
| 	doMyTests(v); | ||||
| 
 | ||||
| 	// write new test
 | ||||
| 	string filename = argv[1]; | ||||
| 	writeFile(filename, asBytes(json_spirit::write_string(v, true))); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| void doMyTests(json_spirit::mValue& v) | ||||
| { | ||||
| 	for (auto& i: v.get_obj()) | ||||
| 	{ | ||||
| 		mObject& o = i.second.get_obj(); | ||||
| 
 | ||||
| 		assert(o.count("env") > 0); | ||||
| 		assert(o.count("pre") > 0); | ||||
| 		assert(o.count("exec") > 0); | ||||
| 
 | ||||
| 		eth::VM vm; | ||||
| 		test::FakeExtVM fev; | ||||
| 		fev.importEnv(o["env"].get_obj()); | ||||
| 		fev.importState(o["pre"].get_obj()); | ||||
| 
 | ||||
| 		o["pre"] = mValue(fev.exportState()); | ||||
| 
 | ||||
| 		fev.importExec(o["exec"].get_obj()); | ||||
| 		if (!fev.code) | ||||
| 		{ | ||||
| 			fev.thisTxCode = get<3>(fev.addresses.at(fev.myAddress)); | ||||
| 			fev.code = &fev.thisTxCode; | ||||
| 		} | ||||
| 
 | ||||
| 		vm.reset(fev.gas); | ||||
| 		bytes output; | ||||
| 		try | ||||
| 		{ | ||||
| 			output = vm.go(fev).toBytes(); | ||||
| 		} | ||||
| 		catch (Exception const& _e) | ||||
| 		{ | ||||
| 			cnote << "VM did throw an exception: " << diagnostic_information(_e); | ||||
| 		} | ||||
| 		catch (std::exception const& _e) | ||||
| 		{ | ||||
| 			cnote << "VM did throw an exception: " << _e.what(); | ||||
| 		} | ||||
| 
 | ||||
| 		// delete null entries in storage for the sake of comparison
 | ||||
| 
 | ||||
| 		for (auto  &a: fev.addresses) | ||||
| 		{ | ||||
| 			vector<u256> keystoDelete; | ||||
| 			for (auto &s: get<2>(a.second)) | ||||
| 			{ | ||||
| 				if (s.second == 0) | ||||
| 					keystoDelete.push_back(s.first); | ||||
| 			} | ||||
| 			for (auto const key: keystoDelete ) | ||||
| 			{ | ||||
| 				get<2>(a.second).erase(key); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		o["env"] = mValue(fev.exportEnv()); | ||||
| 		o["exec"] = mValue(fev.exportExec()); | ||||
| 		o["post"] = mValue(fev.exportState()); | ||||
| 		o["callcreates"] = fev.exportCallCreates(); | ||||
| 		o["out"] = "0x" + toHex(output); | ||||
| 		fev.push(o, "gas", vm.gas()); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										29
									
								
								randomTestFiller.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								randomTestFiller.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| { | ||||
|     "randomVMtest": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "random", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										21
									
								
								vm.cpp
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								vm.cpp
									
									
									
									
									
								
							| @ -22,6 +22,7 @@ | ||||
| 
 | ||||
| #include "vm.h" | ||||
| #include <libdevcore/CommonIO.h> | ||||
| #include <boost/filesystem/path.hpp> | ||||
| 
 | ||||
| #define FILL_TESTS | ||||
| 
 | ||||
| @ -97,7 +98,7 @@ bool FakeExtVM::call(Address _receiveAddress, u256 _value, bytesConstRef _data, | ||||
| 			{ | ||||
| 				cnote << "not able to call to : " << myAddress << "\n"; | ||||
| 				cnote << "in FakeExtVM you can only make a call to " << na << "\n"; | ||||
| 				BOOST_THROW_EXCEPTION(FakeExtVMFailure() << errinfo_comment("Address not callable in FakeExtVM\n") << errinfo_wrongAddress(myAddress)); | ||||
| 				BOOST_THROW_EXCEPTION(FakeExtVMFailure() << errinfo_comment("Address not callable in FakeExtVM\n") << errinfo_wrongAddress(toString(myAddress))); | ||||
| 				return false; | ||||
| 			} | ||||
| 		} | ||||
| @ -123,7 +124,7 @@ bool FakeExtVM::call(Address _receiveAddress, u256 _value, bytesConstRef _data, | ||||
| 			{ | ||||
| 				cnote << "not able to call to : " << (_codeAddressOverride ? _codeAddressOverride : _receiveAddress) << "\n"; | ||||
| 				cnote << "in FakeExtVM you can only make a call to " << na << "\n"; | ||||
| 				BOOST_THROW_EXCEPTION(FakeExtVMFailure() << errinfo_comment("Address not callable in FakeExtVM\n") << errinfo_wrongAddress(_codeAddressOverride ? _codeAddressOverride : _receiveAddress)); | ||||
| 				BOOST_THROW_EXCEPTION(FakeExtVMFailure() << errinfo_comment("Address not callable in FakeExtVM\n") << errinfo_wrongAddress(toString(_codeAddressOverride ? _codeAddressOverride : _receiveAddress))); | ||||
| 				return false; | ||||
| 			} | ||||
| 		} | ||||
| @ -610,16 +611,26 @@ void doTests(json_spirit::mValue& v, bool _fillin) | ||||
| 
 | ||||
| void executeTests(const string& _name) | ||||
| { | ||||
| 	const char* testPath = getenv("ETHEREUM_TEST_PATH"); | ||||
| 	if (testPath == NULL) | ||||
| 	{ | ||||
| 		cnote << " could not find environment variable ETHEREUM_TEST_PATH \n"; | ||||
| 		testPath = "../../../tests/vmtests"; | ||||
| 	} | ||||
| 
 | ||||
| #ifdef FILL_TESTS | ||||
| 	try | ||||
| 	{ | ||||
| 		cnote << "Populating VM tests..."; | ||||
| 		json_spirit::mValue v; | ||||
| 		string s = asString(contents("../../../cpp-ethereum/test/" + _name + "Filler.json")); | ||||
| 		boost::filesystem::path p(__FILE__); | ||||
| 		boost::filesystem::path dir = p.parent_path(); | ||||
| 		string s = asString(contents(dir.string() + "/" + _name + "Filler.json")); | ||||
| 		BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + _name + "Filler.json is empty."); | ||||
| 		json_spirit::read_string(s, v); | ||||
| 		dev::test::doTests(v, true); | ||||
| 		writeFile("../../../tests/vmtests/" + _name + ".json", asBytes(json_spirit::write_string(v, true))); | ||||
| 
 | ||||
| 		writeFile(*testPath + "/" + _name + ".json", asBytes(json_spirit::write_string(v, true))); | ||||
| 	} | ||||
| 	catch (Exception const& _e) | ||||
| 	{ | ||||
| @ -635,7 +646,7 @@ void executeTests(const string& _name) | ||||
| 	{ | ||||
| 		cnote << "Testing VM..." << _name; | ||||
| 		json_spirit::mValue v; | ||||
| 		string s = asString(contents("../../../tests/vmtests/" + _name + ".json")); | ||||
| 		string s = asString(contents(*testPath + "/" + _name + ".json")); | ||||
| 		BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + _name + ".json is empty. Have you cloned the 'tests' repo branch develop?"); | ||||
| 		json_spirit::read_string(s, v); | ||||
| 		dev::test::doTests(v, false); | ||||
|  | ||||
| @ -281,6 +281,91 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "mul4": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "{ [[ 0 ]] (* 0x8000000000000000000000000000000000000000000000000000000000000000 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "mul5": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "{ [[ 0 ]] (* 0x8000000000000000000000000000000000000000000000000000000000000000 0x8000000000000000000000000000000000000000000000000000000000000000) }", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "mul6": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "{ [[ 0 ]] (* 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     "sub0": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|  | ||||
| @ -530,6 +530,61 @@ | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
|     "jump0_jumpdest0": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "0x602360085860015d600257", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "jump0_jumpdest1": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "0x602360075860015d600257", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "jumpi0": { | ||||
|         "env" : { | ||||
| @ -559,6 +614,34 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "jumpi1_jumpdest": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|         "currentNumber" : "0", | ||||
|         "currentGasLimit" : "1000000", | ||||
|         "currentDifficulty" : "256", | ||||
|         "currentTimestamp" : 1, | ||||
|         "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|         "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|             "balance" : "1000000000000000000", | ||||
|             "nonce" : 0, | ||||
|             "code" : "0x60236001600a5960015d600257", | ||||
|             "storage": {} | ||||
|         } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "1000000000000000000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "jumpi1": { | ||||
|         "env" : { | ||||
|         "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|  | ||||
| @ -129,7 +129,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -255,6 +255,42 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "callcodeToReturn1": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "10000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", | ||||
|                 "storage": {} | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x6001600157603760005560026000f2", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "100000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000000000000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     "CallToNameRegistratorOutOfGas": { | ||||
|         "env" : { | ||||
| @ -274,7 +310,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -310,7 +346,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -346,7 +382,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -382,7 +418,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -419,7 +455,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -455,7 +491,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -525,7 +561,7 @@ | ||||
|             }, | ||||
|             "cd1722f3947def4cf144679da39c4c32bdc35681" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -561,7 +597,7 @@ | ||||
|             }, | ||||
|             "cd1722f3947def4cf144679da39c4c32bdc35681" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -597,7 +633,7 @@ | ||||
|             }, | ||||
|             "cd1722f3947def4cf144679da39c4c32bdc35681" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -723,7 +759,7 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -759,7 +795,43 @@ | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "100000", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000000000000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|   "callcodeToNameRegistrator0": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "10000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", | ||||
|                 "storage": {} | ||||
|             }, | ||||
|             "945304eb96065b2a98b57a48a06ae28d285a71b5" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
| @ -790,7 +862,7 @@ | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x600035560f6009590060203560003557", | ||||
|                 "code" : "0x600035560f600a59005d60203560003557", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
| @ -841,7 +913,7 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "ABAcalls0": { | ||||
|     "ABAcalls1": { | ||||
|          "env" : { | ||||
|              "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|              "currentNumber" : "0", | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user