mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge branch 'develop' into p2p
This commit is contained in:
		
						commit
						63f27fb920
					
				| @ -22,6 +22,7 @@ target_link_libraries(testeth ethcore) | ||||
| target_link_libraries(testeth secp256k1) | ||||
| target_link_libraries(testeth solidity) | ||||
| target_link_libraries(testeth webthree) | ||||
| target_link_libraries(testeth natspec) | ||||
| 
 | ||||
| if (JSONRPC) | ||||
| 	target_link_libraries(testeth web3jsonrpc) | ||||
|  | ||||
| @ -91,7 +91,15 @@ bytes compileFirstExpression(const string& _sourceCode, vector<vector<string>> _ | ||||
| { | ||||
| 	Parser parser; | ||||
| 	ASTPointer<SourceUnit> sourceUnit; | ||||
| 	BOOST_REQUIRE_NO_THROW(sourceUnit = parser.parse(make_shared<Scanner>(CharStream(_sourceCode)))); | ||||
| 	try | ||||
| 	{ | ||||
| 		sourceUnit = parser.parse(make_shared<Scanner>(CharStream(_sourceCode))); | ||||
| 	} | ||||
| 	catch(boost::exception const& _e) | ||||
| 	{ | ||||
| 		auto msg = std::string("Parsing source code failed with: \n") + boost::diagnostic_information(_e); | ||||
| 		BOOST_FAIL(msg); | ||||
| 	} | ||||
| 
 | ||||
| 	vector<Declaration const*> declarations; | ||||
| 	declarations.reserve(_globalDeclarations.size() + 1); | ||||
| @ -177,6 +185,66 @@ BOOST_AUTO_TEST_CASE(int_literal) | ||||
| 	BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(int_with_wei_ether_subdenomination) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract test { | ||||
| 			function test () | ||||
| 			{ | ||||
| 				 var x = 1 wei; | ||||
| 			} | ||||
| 		})"; | ||||
| 	bytes code = compileFirstExpression(sourceCode); | ||||
| 
 | ||||
| 	bytes expectation({byte(eth::Instruction::PUSH1), 0x1}); | ||||
| 	BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(int_with_szabo_ether_subdenomination) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract test { | ||||
| 			function test () | ||||
| 			{ | ||||
| 				 var x = 1 szabo; | ||||
| 			} | ||||
| 		})"; | ||||
| 	bytes code = compileFirstExpression(sourceCode); | ||||
| 
 | ||||
| 	bytes expectation({byte(eth::Instruction::PUSH5), 0xe8, 0xd4, 0xa5, 0x10, 0x00}); | ||||
| 	BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(int_with_finney_ether_subdenomination) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract test { | ||||
| 			function test () | ||||
| 			{ | ||||
| 				 var x = 1 finney; | ||||
| 			} | ||||
| 		})"; | ||||
| 	bytes code = compileFirstExpression(sourceCode); | ||||
| 
 | ||||
| 	bytes expectation({byte(eth::Instruction::PUSH7), 0x3, 0x8d, 0x7e, 0xa4, 0xc6, 0x80, 0x00}); | ||||
| 	BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(int_with_ether_ether_subdenomination) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract test { | ||||
| 			function test () | ||||
| 			{ | ||||
| 				 var x = 1 ether; | ||||
| 			} | ||||
| 		})"; | ||||
| 	bytes code = compileFirstExpression(sourceCode); | ||||
| 
 | ||||
| 	bytes expectation({byte(eth::Instruction::PUSH8), 0xd, 0xe0, 0xb6, 0xb3, 0xa7, 0x64, 0x00, 0x00}); | ||||
| 	BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(comparison) | ||||
| { | ||||
| 	char const* sourceCode = "contract test {\n" | ||||
|  | ||||
| @ -904,6 +904,34 @@ BOOST_AUTO_TEST_CASE(invalid_parameter_names_in_named_args) | ||||
| 	BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(disallow_declaration_of_void_type) | ||||
| { | ||||
| 	char const* sourceCode = "contract c { function f() { var x = f(); } }"; | ||||
| 	BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(overflow_caused_by_ether_units) | ||||
| { | ||||
| 	char const* sourceCodeFine = R"( | ||||
| 		contract c { | ||||
| 			function c () | ||||
| 			{ | ||||
| 				 a = 115792089237316195423570985008687907853269984665640564039458; | ||||
| 			} | ||||
| 			uint256 a; | ||||
| 		})"; | ||||
| 	BOOST_CHECK_NO_THROW(parseTextAndResolveNames(sourceCodeFine)); | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract c { | ||||
| 			function c () | ||||
| 			{ | ||||
| 				 a = 115792089237316195423570985008687907853269984665640564039458 ether; | ||||
| 			} | ||||
| 			uint256 a; | ||||
| 		})"; | ||||
| 	BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -660,6 +660,38 @@ BOOST_AUTO_TEST_CASE(multiple_visibility_specifiers) | ||||
| 	BOOST_CHECK_THROW(parseText(text), ParserError); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(literal_constants_with_ether_subdenominations) | ||||
| { | ||||
| 	char const* text = R"( | ||||
| 		contract c { | ||||
| 			function c () | ||||
| 			{ | ||||
| 				 a = 1 wei; | ||||
| 				 b = 2 szabo; | ||||
| 				 c = 3 finney; | ||||
| 				 b = 4 ether; | ||||
| 			} | ||||
| 			uint256 a; | ||||
| 			uint256 b; | ||||
| 			uint256 c; | ||||
| 			uint256 d; | ||||
| 		})"; | ||||
| 	BOOST_CHECK_NO_THROW(parseTextExplainError(text)); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(literal_constants_with_ether_subdenominations_in_expressions) | ||||
| { | ||||
| 	char const* text = R"( | ||||
| 		contract c { | ||||
| 			function c () | ||||
| 			{ | ||||
| 				 a = 1 wei * 100 wei + 7 szabo - 3; | ||||
| 			} | ||||
| 			uint256 a; | ||||
| 		})"; | ||||
| 	BOOST_CHECK_NO_THROW(parseTextExplainError(text)); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -255,6 +255,15 @@ BOOST_AUTO_TEST_CASE(comments_mixed_in_sequence) | ||||
| 	BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "documentation comment "); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(ether_subdenominations) | ||||
| { | ||||
| 	Scanner scanner(CharStream("wei szabo finney ether")); | ||||
| 	BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::SubWei); | ||||
| 	BOOST_CHECK_EQUAL(scanner.next(), Token::SubSzabo); | ||||
| 	BOOST_CHECK_EQUAL(scanner.next(), Token::SubFinney); | ||||
| 	BOOST_CHECK_EQUAL(scanner.next(), Token::SubEther); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
| 
 | ||||
| } | ||||
|  | ||||
							
								
								
									
										112
									
								
								natspec.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								natspec.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | ||||
| /*
 | ||||
| 	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 natspec.cpp
 | ||||
|  * @author Marek Kotewicz <marek@ethdev.com> | ||||
|  * @date 2015 | ||||
|  */ | ||||
| 
 | ||||
| #include <boost/test/unit_test.hpp> | ||||
| #include <libdevcore/Log.h> | ||||
| #include <libnatspec/NatspecExpressionEvaluator.h> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE(natspec) | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_eval_function_exists) | ||||
| { | ||||
| 	// given
 | ||||
| 	NatspecExpressionEvaluator e; | ||||
| 	// when
 | ||||
| 	string result = e.evalExpression("`typeof evaluateExpression`").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "function"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_js_eval) | ||||
| { | ||||
| 	// given
 | ||||
| 	NatspecExpressionEvaluator e; | ||||
| 	// when
 | ||||
| 	string result = e.evalExpression("`1 + 2`").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "3"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_create_custom_function) | ||||
| { | ||||
| 	// given
 | ||||
| 	NatspecExpressionEvaluator e; | ||||
| 	// when
 | ||||
| 	auto x = e.evalExpression("`test = function (x) { return x + 'ok'; }`"); // ommit var, make it global
 | ||||
| 	string result = e.evalExpression("`test(5)`").toStdString(); | ||||
| 	string result2 = e.evalExpression("`typeof test`").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "5ok"); | ||||
| 	BOOST_CHECK_EQUAL(result2, "function"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_js_eval_separated_expressions) | ||||
| { | ||||
| 	// given
 | ||||
| 	NatspecExpressionEvaluator e; | ||||
| 	// when
 | ||||
| 	string result = e.evalExpression("`x = 1` + `y = 2` will be equal `x + y`").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "1 + 2 will be equal 3"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_js_eval_input_params) | ||||
| { | ||||
| 	// given
 | ||||
| 	char const* abi = R"([ | ||||
| 	{ | ||||
| 		"name": "f", | ||||
| 		"constant": false, | ||||
| 		"type": "function", | ||||
| 		"inputs": [ | ||||
| 		{ | ||||
| 			"name": "a", | ||||
| 			"type": "uint256" | ||||
| 		} | ||||
| 		], | ||||
| 		"outputs": [ | ||||
| 		{ | ||||
| 			"name": "d", | ||||
| 			"type": "uint256" | ||||
| 		} | ||||
| 		] | ||||
| 	} | ||||
| 	])"; | ||||
| 	NatspecExpressionEvaluator e(abi, "'f'", "[4]"); | ||||
| 	// when
 | ||||
| 	string result = e.evalExpression("Will multiply `a` by 7 and return `a * 7`.").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "Will multiply 4 by 7 and return 28."); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(natspec_js_eval_error) | ||||
| { | ||||
| 	// given
 | ||||
| 	NatspecExpressionEvaluator e; | ||||
| 	// when
 | ||||
| 	string result = e.evalExpression("`test(`").toStdString(); | ||||
| 	// then
 | ||||
| 	BOOST_CHECK_EQUAL(result, "`test(`"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_SUITE_END() | ||||
| @ -303,6 +303,34 @@ | ||||
|              "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|              "data" : "" | ||||
|          } | ||||
|      } | ||||
|      }, | ||||
|     "RefundOverflow" : { | ||||
|            "env" : { | ||||
|                "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", | ||||
|                "currentDifficulty" : "45678256", | ||||
|                "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", | ||||
|                "currentNumber" : "0", | ||||
|                "currentTimestamp" : 1, | ||||
|                "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" | ||||
|            }, | ||||
|            "pre" : { | ||||
|                "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                    "balance" : "400", | ||||
|                    "code" : "0x", | ||||
|                    "nonce" : "0", | ||||
|                    "storage" : { | ||||
|                    } | ||||
|                } | ||||
|            }, | ||||
|            "transaction" : { | ||||
|                "data" : "", | ||||
|                "gasLimit" : "5789604461865809771178549250434395392663499233282028201972879200395656482016", | ||||
|                "gasPrice" : "20", | ||||
|                "nonce" : "0", | ||||
|                "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|                "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|                "value" : "" | ||||
|            } | ||||
|        } | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -33,6 +33,76 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "testRandomTest": { | ||||
|         "env" : { | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", | ||||
|             "currentDifficulty" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentNumber" : "300", | ||||
|             "currentTimestamp" : "2", | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "code" : "0x424443444243434383f0155af055", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "data" : "", | ||||
|             "gasLimit" : "10000", | ||||
|             "gasPrice" : "1", | ||||
|             "nonce" : "0", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "value" : "100000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "createWithInvalidOpcode": { | ||||
|         "env" : { | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", | ||||
|             "currentDifficulty" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentNumber" : "300", | ||||
|             "currentTimestamp" : "2", | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "0x444242424245434253f0", | ||||
|                 "storage": {} | ||||
|             }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : { | ||||
|             "nonce" : "0", | ||||
|             "gasPrice" : "1", | ||||
|             "gasLimit" : "10000", | ||||
|             "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", | ||||
|             "value" : "100000", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "data" : "" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "createNameRegistratorOOG_MemExpansionInsufficientBalance": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|  | ||||
| @ -169,7 +169,7 @@ | ||||
|         }, | ||||
|         "pre" : | ||||
|         { | ||||
|             "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000", | ||||
|                 "code" : "", | ||||
|                 "nonce" : "0", | ||||
| @ -189,6 +189,68 @@ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "TransactionFromCoinbaseHittingBlockGasLimit" : { | ||||
|         "env" : { | ||||
|             "currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|             "currentDifficulty" : "45678256", | ||||
|             "currentGasLimit" : "1100", | ||||
|             "currentNumber" : "0", | ||||
|             "currentTimestamp" : 1, | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" | ||||
|         }, | ||||
|         "pre" : | ||||
|         { | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "1000000", | ||||
|                 "code" : "", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : | ||||
|         { | ||||
|             "data" : "", | ||||
|             "gasLimit" : "1100", | ||||
|             "gasPrice" : "1", | ||||
|             "nonce" : "", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|             "value" : "10" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "TransactionFromCoinbaseHittingBlockGasLimit1" : { | ||||
|         "env" : { | ||||
|             "currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|             "currentDifficulty" : "45678256", | ||||
|             "currentGasLimit" : "1100", | ||||
|             "currentNumber" : "0", | ||||
|             "currentTimestamp" : 1, | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" | ||||
|         }, | ||||
|         "pre" : | ||||
|         { | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "100000", | ||||
|                 "code" : "", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "transaction" : | ||||
|         { | ||||
|             "data" : "", | ||||
|             "gasLimit" : "1101", | ||||
|             "gasPrice" : "1", | ||||
|             "nonce" : "", | ||||
|             "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", | ||||
|             "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|             "value" : "10" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "ContractStoreClearsSuccess" : { | ||||
|         "env" : { | ||||
|             "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", | ||||
|  | ||||
| @ -193,5 +193,89 @@ | ||||
|             "gasPrice" : "100000000000000", | ||||
|             "gas" : "10000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "sha3_bigSize": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "1", | ||||
|             "gas" : "0x10000000000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "sha3_bigOffset": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "{ [[ 0 ]] (SHA3 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 2)}", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "1", | ||||
|             "gas" : "0x10000000000" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "sha3_bigOffset2": { | ||||
|         "env" : { | ||||
|             "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", | ||||
|             "currentNumber" : "0", | ||||
|             "currentGasLimit" : "1000000", | ||||
|             "currentDifficulty" : "256", | ||||
|             "currentTimestamp" : 1, | ||||
|             "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" | ||||
|         }, | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|                 "nonce" : 0, | ||||
|                 "code" : "{ [[ 0 ]] (SHA3 0x1000000 2)}", | ||||
|                 "storage": {} | ||||
|             } | ||||
|         }, | ||||
|         "exec" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", | ||||
|             "data" : "", | ||||
|             "gasPrice" : "1", | ||||
|             "gas" : "0x100000000" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user