diff --git a/AccountHolder.cpp b/AccountHolder.cpp
deleted file mode 100644
index e8e42ff18..000000000
--- a/AccountHolder.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- 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 .
- */
-/**
- * @author Christian R
- * @date 2015
- * Unit tests for the account holder used by the WebThreeStubServer.
- */
-
-#include
-#include
-
-namespace dev
-{
-namespace test
-{
-
-BOOST_AUTO_TEST_SUITE(AccountHolderTest)
-
-BOOST_AUTO_TEST_CASE(ProxyAccountUseCase)
-{
- AccountHolder h = AccountHolder(std::function());
- BOOST_CHECK(h.getAllAccounts().empty());
- BOOST_CHECK(h.getRealAccounts().empty());
- Address addr("abababababababababababababababababababab");
- Address addr2("abababababababababababababababababababab");
- int id = h.addProxyAccount(addr);
- BOOST_CHECK(h.getQueuedTransactions(id).empty());
- // register it again
- int secondID = h.addProxyAccount(addr);
- BOOST_CHECK(h.getQueuedTransactions(secondID).empty());
-
- eth::TransactionSkeleton t1;
- eth::TransactionSkeleton t2;
- t1.from = addr;
- t1.data = fromHex("12345678");
- t2.from = addr;
- t2.data = fromHex("abcdef");
- BOOST_CHECK(h.getQueuedTransactions(id).empty());
- h.queueTransaction(t1);
- BOOST_CHECK_EQUAL(1, h.getQueuedTransactions(id).size());
- h.queueTransaction(t2);
- BOOST_REQUIRE_EQUAL(2, h.getQueuedTransactions(id).size());
-
- // second proxy should not see transactions
- BOOST_CHECK(h.getQueuedTransactions(secondID).empty());
-
- BOOST_CHECK(h.getQueuedTransactions(id)[0].data == t1.data);
- BOOST_CHECK(h.getQueuedTransactions(id)[1].data == t2.data);
-
- h.clearQueue(id);
- BOOST_CHECK(h.getQueuedTransactions(id).empty());
- // removing fails because it never existed
- BOOST_CHECK(!h.removeProxyAccount(secondID));
- BOOST_CHECK(h.removeProxyAccount(id));
-}
-
-BOOST_AUTO_TEST_SUITE_END()
-
-}
-}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 90af5122e..bbb351232 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,42 @@
cmake_policy(SET CMP0015 NEW)
aux_source_directory(. SRC_LIST)
-list(REMOVE_ITEM SRC_LIST "./createRandomVMTest.cpp")
-list(REMOVE_ITEM SRC_LIST "./createRandomStateTest.cpp")
-list(REMOVE_ITEM SRC_LIST "./checkRandomVMTest.cpp")
-list(REMOVE_ITEM SRC_LIST "./checkRandomStateTest.cpp")
+
+macro (add_sources)
+ file (RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}/test" "${CMAKE_CURRENT_SOURCE_DIR}")
+ foreach (_src ${ARGN})
+ if (_relPath)
+ list (APPEND SRC "${_relPath}/${_src}")
+ else()
+ list (APPEND SRC "${_src}")
+ endif()
+ endforeach()
+ if (_relPath)
+ # propagate SRCS to parent directory
+ set (SRC ${SRC} PARENT_SCOPE)
+ endif()
+endmacro()
+
+#add_sources(boostTest.cpp)
+
+add_subdirectory(fuzzTesting)
+add_subdirectory(libdevcore)
+add_subdirectory(libdevcrypto)
+add_subdirectory(libethcore)
+add_subdirectory(libethereum)
+add_subdirectory(libevm)
+add_subdirectory(libevmcore)
+add_subdirectory(libnatspec)
+add_subdirectory(libp2p)
+add_subdirectory(libsolidity)
+add_subdirectory(libweb3jsonrpc)
+add_subdirectory(libwhisper)
+
+message(STATUS "${SRC}")
+message("AHA")
+
+set(SRC_LIST ${SRC_LIST} ${SRC})
+message(STATUS "${SRC_LIST}")
if (NOT JSONRPC)
list(REMOVE_ITEM SRC_LIST "./AccountHolder.cpp")
@@ -17,27 +49,23 @@ include_directories(${CRYPTOPP_INCLUDE_DIRS})
include_directories(${JSON_RPC_CPP_INCLUDE_DIRS})
# search for test names and create ctest tests
-enable_testing()
-foreach(file ${SRC_LIST})
- file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/${file} test_list_raw REGEX "BOOST_.*TEST_(SUITE|CASE)")
- set(TestSuite "DEFAULT")
- foreach(test_raw ${test_list_raw})
- string(REGEX REPLACE ".*TEST_(SUITE|CASE)\\(([^ ,\\)]*).*" "\\1 \\2" test ${test_raw})
- if(test MATCHES "^SUITE .*")
- string(SUBSTRING ${test} 6 -1 TestSuite)
- elseif(test MATCHES "^CASE .*")
- string(SUBSTRING ${test} 5 -1 TestCase)
- add_test(NAME ${TestSuite}/${TestCase} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/test COMMAND testeth -t ${TestSuite}/${TestCase})
- endif(test MATCHES "^SUITE .*")
- endforeach(test_raw)
-endforeach(file)
+#enable_testing()
+#foreach(file ${SRC_LIST})
+# file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/${file} test_list_raw REGEX "BOOST_.*TEST_(SUITE|CASE)")
+# set(TestSuite "DEFAULT")
+# foreach(test_raw ${test_list_raw})
+# string(REGEX REPLACE ".*TEST_(SUITE|CASE)\\(([^ ,\\)]*).*" "\\1 \\2" test ${test_raw})
+# if(test MATCHES "^SUITE .*")
+# string(SUBSTRING ${test} 6 -1 TestSuite)
+# elseif(test MATCHES "^CASE .*")
+# string(SUBSTRING ${test} 5 -1 TestCase)
+# add_test(NAME ${TestSuite}/${TestCase} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/test COMMAND testeth -t ${TestSuite}/${TestCase})
+# endif(test MATCHES "^SUITE .*")
+# endforeach(test_raw)
+#endforeach(file)
file(GLOB HEADERS "*.h")
add_executable(testeth ${SRC_LIST} ${HEADERS})
-add_executable(createRandomVMTest createRandomVMTest.cpp vm.cpp TestHelper.cpp Stats.cpp)
-add_executable(createRandomStateTest createRandomStateTest.cpp TestHelper.cpp Stats.cpp)
-add_executable(checkRandomVMTest checkRandomVMTest.cpp vm.cpp TestHelper.cpp Stats.cpp)
-add_executable(checkRandomStateTest checkRandomStateTest.cpp TestHelper.cpp Stats.cpp)
target_link_libraries(testeth ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
target_link_libraries(testeth ${CURL_LIBRARIES})
@@ -57,23 +85,6 @@ if (JSONRPC)
target_link_libraries(testeth ${JSON_RPC_CPP_CLIENT_LIBRARIES})
endif()
-target_link_libraries(createRandomVMTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
-target_link_libraries(createRandomVMTest ethereum)
-target_link_libraries(createRandomVMTest ethcore)
-target_link_libraries(createRandomVMTest testutils)
-target_link_libraries(createRandomStateTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
-target_link_libraries(createRandomStateTest ethereum)
-target_link_libraries(createRandomStateTest ethcore)
-target_link_libraries(createRandomStateTest testutils)
-target_link_libraries(checkRandomVMTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
-target_link_libraries(checkRandomVMTest ethereum)
-target_link_libraries(checkRandomVMTest ethcore)
-target_link_libraries(checkRandomVMTest testutils)
-target_link_libraries(checkRandomStateTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
-target_link_libraries(checkRandomStateTest ethereum)
-target_link_libraries(checkRandomStateTest ethcore)
-target_link_libraries(checkRandomStateTest testutils)
-
enable_testing()
set(CTEST_OUTPUT_ON_FAILURE TRUE)
diff --git a/ClientBase.cpp b/ClientBase.cpp
deleted file mode 100644
index 7597b6612..000000000
--- a/ClientBase.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- 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 .
- */
-/** @file ClientBase.cpp
- * @author Marek Kotewicz
- * @date 2015
- */
-
-#include
-#include
-#include "TestUtils.h"
-
-using namespace std;
-using namespace dev;
-using namespace dev::eth;
-using namespace dev::test;
-
-BOOST_FIXTURE_TEST_SUITE(ClientBase, ParallelClientBaseFixture)
-
-BOOST_AUTO_TEST_CASE(blocks)
-{
- enumerateClients([](Json::Value const& _json, dev::eth::ClientBase& _client) -> void
- {
- auto compareState = [&_client](Json::Value const& _o, string const& _name, BlockNumber _blockNumber) -> void
- {
- Address address(_name);
-
- // balanceAt
- u256 expectedBalance = u256(_o["balance"].asString());
- u256 balance = _client.balanceAt(address, _blockNumber);
- ETH_CHECK_EQUAL(expectedBalance, balance);
-
- // countAt
- u256 expectedCount = u256(_o["nonce"].asString());
- u256 count = _client.countAt(address, _blockNumber);
- ETH_CHECK_EQUAL(expectedCount, count);
-
- // stateAt
- for (string const& pos: _o["storage"].getMemberNames())
- {
- u256 expectedState = u256(_o["storage"][pos].asString());
- u256 state = _client.stateAt(address, u256(pos), _blockNumber);
- ETH_CHECK_EQUAL(expectedState, state);
- }
-
- // codeAt
- bytes expectedCode = fromHex(_o["code"].asString());
- bytes code = _client.codeAt(address, _blockNumber);
- ETH_CHECK_EQUAL_COLLECTIONS(expectedCode.begin(), expectedCode.end(),
- code.begin(), code.end());
- };
-
- for (string const& name: _json["postState"].getMemberNames())
- {
- Json::Value o = _json["postState"][name];
- compareState(o, name, PendingBlock);
- }
-
- for (string const& name: _json["pre"].getMemberNames())
- {
- Json::Value o = _json["pre"][name];
- compareState(o, name, 0);
- }
-
- // number
- unsigned expectedNumber = _json["blocks"].size();
- unsigned number = _client.number();
- ETH_CHECK_EQUAL(expectedNumber, number);
-
- u256 totalDifficulty = u256(_json["genesisBlockHeader"]["difficulty"].asString());
- for (Json::Value const& block: _json["blocks"])
- {
- Json::Value blockHeader = block["blockHeader"];
- Json::Value uncles = block["uncleHeaders"];
- Json::Value transactions = block["transactions"];
- h256 blockHash = h256(fromHex(blockHeader["hash"].asString()));
-
- // just update the difficulty
- for (Json::Value const& uncle: uncles)
- {
- totalDifficulty += u256(uncle["difficulty"].asString());
- }
-
- // hashFromNumber
- h256 expectedHashFromNumber = h256(fromHex(blockHeader["hash"].asString()));
- h256 hashFromNumber = _client.hashFromNumber(jsToInt(blockHeader["number"].asString()));
- ETH_CHECK_EQUAL(expectedHashFromNumber, hashFromNumber);
-
- // blockInfo
- auto compareBlockInfos = [](Json::Value const& _b, BlockInfo _blockInfo) -> void
- {
- LogBloom expectedBlockInfoBloom = LogBloom(fromHex(_b["bloom"].asString()));
- Address expectedBlockInfoCoinbase = Address(fromHex(_b["coinbase"].asString()));
- u256 expectedBlockInfoDifficulty = u256(_b["difficulty"].asString());
- bytes expectedBlockInfoExtraData = fromHex(_b["extraData"].asString());
- u256 expectedBlockInfoGasLimit = u256(_b["gasLimit"].asString());
- u256 expectedBlockInfoGasUsed = u256(_b["gasUsed"].asString());
- h256 expectedBlockInfoHash = h256(fromHex(_b["hash"].asString()));
- h256 expectedBlockInfoMixHash = h256(fromHex(_b["mixHash"].asString()));
- Nonce expectedBlockInfoNonce = Nonce(fromHex(_b["nonce"].asString()));
- u256 expectedBlockInfoNumber = u256(_b["number"].asString());
- h256 expectedBlockInfoParentHash = h256(fromHex(_b["parentHash"].asString()));
- h256 expectedBlockInfoReceiptsRoot = h256(fromHex(_b["receiptTrie"].asString()));
- u256 expectedBlockInfoTimestamp = u256(_b["timestamp"].asString());
- h256 expectedBlockInfoTransactionsRoot = h256(fromHex(_b["transactionsTrie"].asString()));
- h256 expectedBlockInfoUncldeHash = h256(fromHex(_b["uncleHash"].asString()));
- ETH_CHECK_EQUAL(expectedBlockInfoBloom, _blockInfo.logBloom);
- ETH_CHECK_EQUAL(expectedBlockInfoCoinbase, _blockInfo.coinbaseAddress);
- ETH_CHECK_EQUAL(expectedBlockInfoDifficulty, _blockInfo.difficulty);
- ETH_CHECK_EQUAL_COLLECTIONS(
- expectedBlockInfoExtraData.begin(),
- expectedBlockInfoExtraData.end(),
- _blockInfo.extraData.begin(),
- _blockInfo.extraData.end()
- );
- ETH_CHECK_EQUAL(expectedBlockInfoGasLimit, _blockInfo.gasLimit);
- ETH_CHECK_EQUAL(expectedBlockInfoGasUsed, _blockInfo.gasUsed);
- ETH_CHECK_EQUAL(expectedBlockInfoHash, _blockInfo.hash());
- ETH_CHECK_EQUAL(expectedBlockInfoMixHash, _blockInfo.mixHash);
- ETH_CHECK_EQUAL(expectedBlockInfoNonce, _blockInfo.nonce);
- ETH_CHECK_EQUAL(expectedBlockInfoNumber, _blockInfo.number);
- ETH_CHECK_EQUAL(expectedBlockInfoParentHash, _blockInfo.parentHash);
- ETH_CHECK_EQUAL(expectedBlockInfoReceiptsRoot, _blockInfo.receiptsRoot);
- ETH_CHECK_EQUAL(expectedBlockInfoTimestamp, _blockInfo.timestamp);
- ETH_CHECK_EQUAL(expectedBlockInfoTransactionsRoot, _blockInfo.transactionsRoot);
- ETH_CHECK_EQUAL(expectedBlockInfoUncldeHash, _blockInfo.sha3Uncles);
- };
-
- BlockInfo blockInfo = _client.blockInfo(blockHash);
- compareBlockInfos(blockHeader, blockInfo);
-
- // blockDetails
- unsigned expectedBlockDetailsNumber = jsToInt(blockHeader["number"].asString());
- totalDifficulty += u256(blockHeader["difficulty"].asString());
- BlockDetails blockDetails = _client.blockDetails(blockHash);
- ETH_CHECK_EQUAL(expectedBlockDetailsNumber, blockDetails.number);
- ETH_CHECK_EQUAL(totalDifficulty, blockDetails.totalDifficulty);
-
- auto compareTransactions = [](Json::Value const& _t, Transaction _transaction) -> void
- {
- bytes expectedTransactionData = fromHex(_t["data"].asString());
- u256 expectedTransactionGasLimit = u256(_t["gasLimit"].asString());
- u256 expectedTransactionGasPrice = u256(_t["gasPrice"].asString());
- u256 expectedTransactionNonce = u256(_t["nonce"].asString());
- u256 expectedTransactionSignatureR = h256(fromHex(_t["r"].asString()));
- u256 expectedTransactionSignatureS = h256(fromHex(_t["s"].asString()));
-// unsigned expectedTransactionSignatureV = jsToInt(t["v"].asString());
-
- ETH_CHECK_EQUAL_COLLECTIONS(
- expectedTransactionData.begin(),
- expectedTransactionData.end(),
- _transaction.data().begin(),
- _transaction.data().end()
- );
- ETH_CHECK_EQUAL(expectedTransactionGasLimit, _transaction.gas());
- ETH_CHECK_EQUAL(expectedTransactionGasPrice, _transaction.gasPrice());
- ETH_CHECK_EQUAL(expectedTransactionNonce, _transaction.nonce());
- ETH_CHECK_EQUAL(expectedTransactionSignatureR, _transaction.signature().r);
- ETH_CHECK_EQUAL(expectedTransactionSignatureS, _transaction.signature().s);
-// ETH_CHECK_EQUAL(expectedTransactionSignatureV, _transaction.signature().v); // 27 === 0x0, 28 === 0x1, not sure why
- };
-
- Transactions ts = _client.transactions(blockHash);
- TransactionHashes tHashes = _client.transactionHashes(blockHash);
- unsigned tsCount = _client.transactionCount(blockHash);
-
- ETH_REQUIRE(transactions.size() == ts.size());
- ETH_REQUIRE(transactions.size() == tHashes.size());
-
- // transactionCount
- ETH_CHECK_EQUAL(transactions.size(), tsCount);
-
- for (unsigned i = 0; i < tsCount; i++)
- {
- Json::Value t = transactions[i];
-
- // transaction (by block hash and transaction index)
- Transaction transaction = _client.transaction(blockHash, i);
- compareTransactions(t, transaction);
-
- // transaction (by hash)
- Transaction transactionByHash = _client.transaction(transaction.sha3());
- compareTransactions(t, transactionByHash);
-
- // transactions
- compareTransactions(t, ts[i]);
-
- // transactionHashes
- ETH_CHECK_EQUAL(transaction.sha3(), tHashes[i]);
- }
-
- // uncleCount
- unsigned usCount = _client.uncleCount(blockHash);
- ETH_CHECK_EQUAL(uncles.size(), usCount);
-
- for (unsigned i = 0; i < usCount; i++)
- {
- Json::Value u = uncles[i];
-
- // uncle (by hash)
- BlockInfo uncle = _client.uncle(blockHash, i);
- compareBlockInfos(u, uncle);
- }
- }
- });
-}
-
-BOOST_AUTO_TEST_SUITE_END()
diff --git a/ManyFunctions.sol b/ManyFunctions.sol
deleted file mode 100644
index 691d98f46..000000000
--- a/ManyFunctions.sol
+++ /dev/null
@@ -1,1513 +0,0 @@
-
-// Based on input param calls ~100 functions from ~200, random algorithm is really bad.
-contract ManyFunctions {
-
- function start(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**78)
- return left1(r);
- return right1(r);
- }
-
- function finish(uint seed) returns (uint) {
- return seed;
- }
-
- function nextRand(uint seed) returns (uint) {
- var a = 39948330534945941795786356397633709378407037920056054402537049186942880579585;
- return a * seed + 1;
- }
-
- function right100(uint seed) returns (uint) {
- return finish(seed);
- }
-
- function left100(uint seed) returns (uint) {
- return finish(nextRand(seed));
- }
-
- function right1(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**79)
- return right2(r);
- return left2(r);
- }
-
- function left1(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**79)
- return left2(r);
- return right2(r);
- }
-
-
- function right2(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**80)
- return right3(r);
- return left3(r);
- }
-
- function left2(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**80)
- return left3(r);
- return right3(r);
- }
-
-
- function right3(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**81)
- return right4(r);
- return left4(r);
- }
-
- function left3(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**81)
- return left4(r);
- return right4(r);
- }
-
-
- function right4(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**82)
- return right5(r);
- return left5(r);
- }
-
- function left4(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**82)
- return left5(r);
- return right5(r);
- }
-
-
- function right5(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**83)
- return right6(r);
- return left6(r);
- }
-
- function left5(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**83)
- return left6(r);
- return right6(r);
- }
-
-
- function right6(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**84)
- return right7(r);
- return left7(r);
- }
-
- function left6(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**84)
- return left7(r);
- return right7(r);
- }
-
-
- function right7(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**85)
- return right8(r);
- return left8(r);
- }
-
- function left7(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**85)
- return left8(r);
- return right8(r);
- }
-
-
- function right8(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**86)
- return right9(r);
- return left9(r);
- }
-
- function left8(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**86)
- return left9(r);
- return right9(r);
- }
-
-
- function right9(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**87)
- return right10(r);
- return left10(r);
- }
-
- function left9(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**87)
- return left10(r);
- return right10(r);
- }
-
-
- function right10(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**88)
- return right11(r);
- return left11(r);
- }
-
- function left10(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**88)
- return left11(r);
- return right11(r);
- }
-
-
- function right11(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**89)
- return right12(r);
- return left12(r);
- }
-
- function left11(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**89)
- return left12(r);
- return right12(r);
- }
-
-
- function right12(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**90)
- return right13(r);
- return left13(r);
- }
-
- function left12(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**90)
- return left13(r);
- return right13(r);
- }
-
-
- function right13(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**91)
- return right14(r);
- return left14(r);
- }
-
- function left13(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**91)
- return left14(r);
- return right14(r);
- }
-
-
- function right14(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**92)
- return right15(r);
- return left15(r);
- }
-
- function left14(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**92)
- return left15(r);
- return right15(r);
- }
-
-
- function right15(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**93)
- return right16(r);
- return left16(r);
- }
-
- function left15(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**93)
- return left16(r);
- return right16(r);
- }
-
-
- function right16(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**94)
- return right17(r);
- return left17(r);
- }
-
- function left16(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**94)
- return left17(r);
- return right17(r);
- }
-
-
- function right17(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**95)
- return right18(r);
- return left18(r);
- }
-
- function left17(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**95)
- return left18(r);
- return right18(r);
- }
-
-
- function right18(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**96)
- return right19(r);
- return left19(r);
- }
-
- function left18(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**96)
- return left19(r);
- return right19(r);
- }
-
-
- function right19(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**97)
- return right20(r);
- return left20(r);
- }
-
- function left19(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**97)
- return left20(r);
- return right20(r);
- }
-
-
- function right20(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**98)
- return right21(r);
- return left21(r);
- }
-
- function left20(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**98)
- return left21(r);
- return right21(r);
- }
-
-
- function right21(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**99)
- return right22(r);
- return left22(r);
- }
-
- function left21(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**99)
- return left22(r);
- return right22(r);
- }
-
-
- function right22(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**100)
- return right23(r);
- return left23(r);
- }
-
- function left22(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**100)
- return left23(r);
- return right23(r);
- }
-
-
- function right23(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**101)
- return right24(r);
- return left24(r);
- }
-
- function left23(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**101)
- return left24(r);
- return right24(r);
- }
-
-
- function right24(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**102)
- return right25(r);
- return left25(r);
- }
-
- function left24(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**102)
- return left25(r);
- return right25(r);
- }
-
-
- function right25(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**103)
- return right26(r);
- return left26(r);
- }
-
- function left25(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**103)
- return left26(r);
- return right26(r);
- }
-
-
- function right26(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**104)
- return right27(r);
- return left27(r);
- }
-
- function left26(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**104)
- return left27(r);
- return right27(r);
- }
-
-
- function right27(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**105)
- return right28(r);
- return left28(r);
- }
-
- function left27(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**105)
- return left28(r);
- return right28(r);
- }
-
-
- function right28(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**106)
- return right29(r);
- return left29(r);
- }
-
- function left28(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**106)
- return left29(r);
- return right29(r);
- }
-
-
- function right29(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**107)
- return right30(r);
- return left30(r);
- }
-
- function left29(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**107)
- return left30(r);
- return right30(r);
- }
-
-
- function right30(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**108)
- return right31(r);
- return left31(r);
- }
-
- function left30(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**108)
- return left31(r);
- return right31(r);
- }
-
-
- function right31(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**109)
- return right32(r);
- return left32(r);
- }
-
- function left31(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**109)
- return left32(r);
- return right32(r);
- }
-
-
- function right32(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**110)
- return right33(r);
- return left33(r);
- }
-
- function left32(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**110)
- return left33(r);
- return right33(r);
- }
-
-
- function right33(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**111)
- return right34(r);
- return left34(r);
- }
-
- function left33(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**111)
- return left34(r);
- return right34(r);
- }
-
-
- function right34(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**112)
- return right35(r);
- return left35(r);
- }
-
- function left34(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**112)
- return left35(r);
- return right35(r);
- }
-
-
- function right35(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**113)
- return right36(r);
- return left36(r);
- }
-
- function left35(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**113)
- return left36(r);
- return right36(r);
- }
-
-
- function right36(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**114)
- return right37(r);
- return left37(r);
- }
-
- function left36(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**114)
- return left37(r);
- return right37(r);
- }
-
-
- function right37(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**115)
- return right38(r);
- return left38(r);
- }
-
- function left37(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**115)
- return left38(r);
- return right38(r);
- }
-
-
- function right38(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**116)
- return right39(r);
- return left39(r);
- }
-
- function left38(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**116)
- return left39(r);
- return right39(r);
- }
-
-
- function right39(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**117)
- return right40(r);
- return left40(r);
- }
-
- function left39(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**117)
- return left40(r);
- return right40(r);
- }
-
-
- function right40(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**118)
- return right41(r);
- return left41(r);
- }
-
- function left40(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**118)
- return left41(r);
- return right41(r);
- }
-
-
- function right41(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**119)
- return right42(r);
- return left42(r);
- }
-
- function left41(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**119)
- return left42(r);
- return right42(r);
- }
-
-
- function right42(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**120)
- return right43(r);
- return left43(r);
- }
-
- function left42(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**120)
- return left43(r);
- return right43(r);
- }
-
-
- function right43(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**121)
- return right44(r);
- return left44(r);
- }
-
- function left43(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**121)
- return left44(r);
- return right44(r);
- }
-
-
- function right44(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**122)
- return right45(r);
- return left45(r);
- }
-
- function left44(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**122)
- return left45(r);
- return right45(r);
- }
-
-
- function right45(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**123)
- return right46(r);
- return left46(r);
- }
-
- function left45(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**123)
- return left46(r);
- return right46(r);
- }
-
-
- function right46(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**124)
- return right47(r);
- return left47(r);
- }
-
- function left46(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**124)
- return left47(r);
- return right47(r);
- }
-
-
- function right47(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**125)
- return right48(r);
- return left48(r);
- }
-
- function left47(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**125)
- return left48(r);
- return right48(r);
- }
-
-
- function right48(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**126)
- return right49(r);
- return left49(r);
- }
-
- function left48(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**126)
- return left49(r);
- return right49(r);
- }
-
-
- function right49(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**127)
- return right50(r);
- return left50(r);
- }
-
- function left49(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**127)
- return left50(r);
- return right50(r);
- }
-
-
- function right50(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**128)
- return right51(r);
- return left51(r);
- }
-
- function left50(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**128)
- return left51(r);
- return right51(r);
- }
-
-
- function right51(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**129)
- return right52(r);
- return left52(r);
- }
-
- function left51(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**129)
- return left52(r);
- return right52(r);
- }
-
-
- function right52(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**130)
- return right53(r);
- return left53(r);
- }
-
- function left52(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**130)
- return left53(r);
- return right53(r);
- }
-
-
- function right53(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**131)
- return right54(r);
- return left54(r);
- }
-
- function left53(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**131)
- return left54(r);
- return right54(r);
- }
-
-
- function right54(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**132)
- return right55(r);
- return left55(r);
- }
-
- function left54(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**132)
- return left55(r);
- return right55(r);
- }
-
-
- function right55(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**133)
- return right56(r);
- return left56(r);
- }
-
- function left55(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**133)
- return left56(r);
- return right56(r);
- }
-
-
- function right56(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**134)
- return right57(r);
- return left57(r);
- }
-
- function left56(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**134)
- return left57(r);
- return right57(r);
- }
-
-
- function right57(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**135)
- return right58(r);
- return left58(r);
- }
-
- function left57(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**135)
- return left58(r);
- return right58(r);
- }
-
-
- function right58(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**136)
- return right59(r);
- return left59(r);
- }
-
- function left58(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**136)
- return left59(r);
- return right59(r);
- }
-
-
- function right59(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**137)
- return right60(r);
- return left60(r);
- }
-
- function left59(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**137)
- return left60(r);
- return right60(r);
- }
-
-
- function right60(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**138)
- return right61(r);
- return left61(r);
- }
-
- function left60(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**138)
- return left61(r);
- return right61(r);
- }
-
-
- function right61(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**139)
- return right62(r);
- return left62(r);
- }
-
- function left61(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**139)
- return left62(r);
- return right62(r);
- }
-
-
- function right62(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**140)
- return right63(r);
- return left63(r);
- }
-
- function left62(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**140)
- return left63(r);
- return right63(r);
- }
-
-
- function right63(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**141)
- return right64(r);
- return left64(r);
- }
-
- function left63(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**141)
- return left64(r);
- return right64(r);
- }
-
-
- function right64(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**142)
- return right65(r);
- return left65(r);
- }
-
- function left64(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**142)
- return left65(r);
- return right65(r);
- }
-
-
- function right65(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**143)
- return right66(r);
- return left66(r);
- }
-
- function left65(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**143)
- return left66(r);
- return right66(r);
- }
-
-
- function right66(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**144)
- return right67(r);
- return left67(r);
- }
-
- function left66(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**144)
- return left67(r);
- return right67(r);
- }
-
-
- function right67(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**145)
- return right68(r);
- return left68(r);
- }
-
- function left67(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**145)
- return left68(r);
- return right68(r);
- }
-
-
- function right68(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**146)
- return right69(r);
- return left69(r);
- }
-
- function left68(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**146)
- return left69(r);
- return right69(r);
- }
-
-
- function right69(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**147)
- return right70(r);
- return left70(r);
- }
-
- function left69(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**147)
- return left70(r);
- return right70(r);
- }
-
-
- function right70(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**148)
- return right71(r);
- return left71(r);
- }
-
- function left70(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**148)
- return left71(r);
- return right71(r);
- }
-
-
- function right71(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**149)
- return right72(r);
- return left72(r);
- }
-
- function left71(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**149)
- return left72(r);
- return right72(r);
- }
-
-
- function right72(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**150)
- return right73(r);
- return left73(r);
- }
-
- function left72(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**150)
- return left73(r);
- return right73(r);
- }
-
-
- function right73(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**151)
- return right74(r);
- return left74(r);
- }
-
- function left73(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**151)
- return left74(r);
- return right74(r);
- }
-
-
- function right74(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**152)
- return right75(r);
- return left75(r);
- }
-
- function left74(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**152)
- return left75(r);
- return right75(r);
- }
-
-
- function right75(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**153)
- return right76(r);
- return left76(r);
- }
-
- function left75(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**153)
- return left76(r);
- return right76(r);
- }
-
-
- function right76(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**154)
- return right77(r);
- return left77(r);
- }
-
- function left76(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**154)
- return left77(r);
- return right77(r);
- }
-
-
- function right77(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**155)
- return right78(r);
- return left78(r);
- }
-
- function left77(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**155)
- return left78(r);
- return right78(r);
- }
-
-
- function right78(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**156)
- return right79(r);
- return left79(r);
- }
-
- function left78(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**156)
- return left79(r);
- return right79(r);
- }
-
-
- function right79(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**157)
- return right80(r);
- return left80(r);
- }
-
- function left79(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**157)
- return left80(r);
- return right80(r);
- }
-
-
- function right80(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**158)
- return right81(r);
- return left81(r);
- }
-
- function left80(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**158)
- return left81(r);
- return right81(r);
- }
-
-
- function right81(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**159)
- return right82(r);
- return left82(r);
- }
-
- function left81(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**159)
- return left82(r);
- return right82(r);
- }
-
-
- function right82(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**160)
- return right83(r);
- return left83(r);
- }
-
- function left82(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**160)
- return left83(r);
- return right83(r);
- }
-
-
- function right83(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**161)
- return right84(r);
- return left84(r);
- }
-
- function left83(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**161)
- return left84(r);
- return right84(r);
- }
-
-
- function right84(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**162)
- return right85(r);
- return left85(r);
- }
-
- function left84(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**162)
- return left85(r);
- return right85(r);
- }
-
-
- function right85(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**163)
- return right86(r);
- return left86(r);
- }
-
- function left85(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**163)
- return left86(r);
- return right86(r);
- }
-
-
- function right86(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**164)
- return right87(r);
- return left87(r);
- }
-
- function left86(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**164)
- return left87(r);
- return right87(r);
- }
-
-
- function right87(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**165)
- return right88(r);
- return left88(r);
- }
-
- function left87(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**165)
- return left88(r);
- return right88(r);
- }
-
-
- function right88(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**166)
- return right89(r);
- return left89(r);
- }
-
- function left88(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**166)
- return left89(r);
- return right89(r);
- }
-
-
- function right89(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**167)
- return right90(r);
- return left90(r);
- }
-
- function left89(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**167)
- return left90(r);
- return right90(r);
- }
-
-
- function right90(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**168)
- return right91(r);
- return left91(r);
- }
-
- function left90(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**168)
- return left91(r);
- return right91(r);
- }
-
-
- function right91(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**169)
- return right92(r);
- return left92(r);
- }
-
- function left91(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**169)
- return left92(r);
- return right92(r);
- }
-
-
- function right92(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**170)
- return right93(r);
- return left93(r);
- }
-
- function left92(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**170)
- return left93(r);
- return right93(r);
- }
-
-
- function right93(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**171)
- return right94(r);
- return left94(r);
- }
-
- function left93(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**171)
- return left94(r);
- return right94(r);
- }
-
-
- function right94(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**172)
- return right95(r);
- return left95(r);
- }
-
- function left94(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**172)
- return left95(r);
- return right95(r);
- }
-
-
- function right95(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**173)
- return right96(r);
- return left96(r);
- }
-
- function left95(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**173)
- return left96(r);
- return right96(r);
- }
-
-
- function right96(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**174)
- return right97(r);
- return left97(r);
- }
-
- function left96(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**174)
- return left97(r);
- return right97(r);
- }
-
-
- function right97(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**175)
- return right98(r);
- return left98(r);
- }
-
- function left97(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**175)
- return left98(r);
- return right98(r);
- }
-
-
- function right98(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**176)
- return right99(r);
- return left99(r);
- }
-
- function left98(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**176)
- return left99(r);
- return right99(r);
- }
-
-
- function right99(uint seed) returns (uint) {
- var r = nextRand(seed);
- if (r >= 2**177)
- return right100(r);
- return left100(r);
- }
-
- function left99(uint seed) returns (uint) {
- var r = nextRand(nextRand(seed));
- if (r >= 2**177)
- return left100(r);
- return right100(r);
- }
-
-}
\ No newline at end of file
diff --git a/ManyFunctionsGenerator.py b/ManyFunctionsGenerator.py
deleted file mode 100644
index b4f36af0e..000000000
--- a/ManyFunctionsGenerator.py
+++ /dev/null
@@ -1,24 +0,0 @@
-
-n = 100
-
-splitNumBegin = 128 - (n / 2)
-i = 1
-
-template = """
- function right{0}(uint seed) returns (uint) {{
- var r = nextRand(seed);
- if (r >= 2**{2})
- return right{1}(r);
- return left{1}(r);
- }}
-
- function left{0}(uint seed) returns (uint) {{
- var r = nextRand(nextRand(seed));
- if (r >= 2**{2})
- return left{1}(r);
- return right{1}(r);
- }}
-"""
-
-for i in range(1, n):
- print template.format(i, i + 1, i + splitNumBegin)
\ No newline at end of file
diff --git a/MemTrie.cpp b/MemTrie.cpp
deleted file mode 100644
index ab5a13b60..000000000
--- a/MemTrie.cpp
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- 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 .
-*/
-/** @file MemTrie.cpp
- * @author Gav Wood
- * @date 2014
- */
-
-#include "MemTrie.h"
-
-#include
-#include
-#include
-using namespace std;
-using namespace dev;
-using namespace dev::eth;
-
-namespace dev
-{
-
-#define ENABLE_DEBUG_PRINT 0
-
-/*/
-#define APPEND_CHILD appendData
-/*/
-#define APPEND_CHILD appendRaw
-/**/
-
-class MemTrieNode
-{
-public:
- MemTrieNode() {}
- virtual ~MemTrieNode() {}
-
- virtual std::string const& at(bytesConstRef _key) const = 0;
- virtual MemTrieNode* insert(bytesConstRef _key, std::string const& _value) = 0;
- virtual MemTrieNode* remove(bytesConstRef _key) = 0;
- void putRLP(RLPStream& _parentStream) const;
-
-#if ENABLE_DEBUG_PRINT
- void debugPrint(std::string const& _indent = "") const { std::cerr << std::hex << hash256() << ":" << std::dec << std::endl; debugPrintBody(_indent); }
-#endif
-
- /// 256-bit hash of the node - this is a SHA-3/256 hash of the RLP of the node.
- h256 hash256() const { RLPStream s; makeRLP(s); return dev::sha3(s.out()); }
- bytes rlp() const { RLPStream s; makeRLP(s); return s.out(); }
- void mark() { m_hash256 = h256(); }
-
-protected:
- virtual void makeRLP(RLPStream& _intoStream) const = 0;
-
-#if ENABLE_DEBUG_PRINT
- virtual void debugPrintBody(std::string const& _indent = "") const = 0;
-#endif
-
- static MemTrieNode* newBranch(bytesConstRef _k1, std::string const& _v1, bytesConstRef _k2, std::string const& _v2);
-
-private:
- mutable h256 m_hash256;
-};
-
-static const std::string c_nullString;
-
-class TrieExtNode: public MemTrieNode
-{
-public:
- TrieExtNode(bytesConstRef _bytes): m_ext(_bytes.begin(), _bytes.end()) {}
-
- bytes m_ext;
-};
-
-class TrieBranchNode: public MemTrieNode
-{
-public:
- TrieBranchNode(std::string const& _value): m_value(_value)
- {
- memset(m_nodes.data(), 0, sizeof(MemTrieNode*) * 16);
- }
-
- TrieBranchNode(byte _i1, MemTrieNode* _n1, std::string const& _value = std::string()): m_value(_value)
- {
- memset(m_nodes.data(), 0, sizeof(MemTrieNode*) * 16);
- m_nodes[_i1] = _n1;
- }
-
- TrieBranchNode(byte _i1, MemTrieNode* _n1, byte _i2, MemTrieNode* _n2)
- {
- memset(m_nodes.data(), 0, sizeof(MemTrieNode*) * 16);
- m_nodes[_i1] = _n1;
- m_nodes[_i2] = _n2;
- }
-
- virtual ~TrieBranchNode()
- {
- for (auto i: m_nodes)
- delete i;
- }
-
-#if ENABLE_DEBUG_PRINT
- virtual void debugPrintBody(std::string const& _indent) const
- {
-
- if (m_value.size())
- std::cerr << _indent << "@: " << m_value << std::endl;
- for (auto i = 0; i < 16; ++i)
- if (m_nodes[i])
- {
- std::cerr << _indent << std::hex << i << ": " << std::dec;
- m_nodes[i]->debugPrint(_indent + " ");
- }
- }
-#endif
-
- virtual std::string const& at(bytesConstRef _key) const override;
- virtual MemTrieNode* insert(bytesConstRef _key, std::string const& _value) override;
- virtual MemTrieNode* remove(bytesConstRef _key) override;
- virtual void makeRLP(RLPStream& _parentStream) const override;
-
-private:
- /// @returns (byte)-1 when no active branches, 16 when multiple active and the index of the active branch otherwise.
- byte activeBranch() const;
-
- MemTrieNode* rejig();
-
- std::array m_nodes;
- std::string m_value;
-};
-
-class TrieLeafNode: public TrieExtNode
-{
-public:
- TrieLeafNode(bytesConstRef _key, std::string const& _value): TrieExtNode(_key), m_value(_value) {}
-
-#if ENABLE_DEBUG_PRINT
- virtual void debugPrintBody(std::string const& _indent) const
- {
- assert(m_value.size());
- std::cerr << _indent;
- if (m_ext.size())
- std::cerr << toHex(m_ext, 1) << ": ";
- else
- std::cerr << "@: ";
- std::cerr << m_value << std::endl;
- }
-#endif
-
- virtual std::string const& at(bytesConstRef _key) const override { return contains(_key) ? m_value : c_nullString; }
- virtual MemTrieNode* insert(bytesConstRef _key, std::string const& _value) override;
- virtual MemTrieNode* remove(bytesConstRef _key) override;
- virtual void makeRLP(RLPStream& _parentStream) const override;
-
-private:
- bool contains(bytesConstRef _key) const { return _key.size() == m_ext.size() && !memcmp(_key.data(), m_ext.data(), _key.size()); }
-
- std::string m_value;
-};
-
-class TrieInfixNode: public TrieExtNode
-{
-public:
- TrieInfixNode(bytesConstRef _key, MemTrieNode* _next): TrieExtNode(_key), m_next(_next) {}
- virtual ~TrieInfixNode() { delete m_next; }
-
-#if ENABLE_DEBUG_PRINT
- virtual void debugPrintBody(std::string const& _indent) const
- {
- std::cerr << _indent << toHex(m_ext, 1) << ": ";
- m_next->debugPrint(_indent + " ");
- }
-#endif
-
- virtual std::string const& at(bytesConstRef _key) const override { assert(m_next); return contains(_key) ? m_next->at(_key.cropped(m_ext.size())) : c_nullString; }
- virtual MemTrieNode* insert(bytesConstRef _key, std::string const& _value) override;
- virtual MemTrieNode* remove(bytesConstRef _key) override;
- virtual void makeRLP(RLPStream& _parentStream) const override;
-
-private:
- bool contains(bytesConstRef _key) const { return _key.size() >= m_ext.size() && !memcmp(_key.data(), m_ext.data(), m_ext.size()); }
-
- MemTrieNode* m_next;
-};
-
-void MemTrieNode::putRLP(RLPStream& _parentStream) const
-{
- RLPStream s;
- makeRLP(s);
- if (s.out().size() < 32)
- _parentStream.APPEND_CHILD(s.out());
- else
- _parentStream << dev::sha3(s.out());
-}
-
-void TrieBranchNode::makeRLP(RLPStream& _intoStream) const
-{
- _intoStream.appendList(17);
- for (auto i: m_nodes)
- if (i)
- i->putRLP(_intoStream);
- else
- _intoStream << "";
- _intoStream << m_value;
-}
-
-void TrieLeafNode::makeRLP(RLPStream& _intoStream) const
-{
- _intoStream.appendList(2) << hexPrefixEncode(m_ext, true) << m_value;
-}
-
-void TrieInfixNode::makeRLP(RLPStream& _intoStream) const
-{
- assert(m_next);
- _intoStream.appendList(2);
- _intoStream << hexPrefixEncode(m_ext, false);
- m_next->putRLP(_intoStream);
-}
-
-MemTrieNode* MemTrieNode::newBranch(bytesConstRef _k1, std::string const& _v1, bytesConstRef _k2, std::string const& _v2)
-{
- unsigned prefix = commonPrefix(_k1, _k2);
-
- MemTrieNode* ret;
- if (_k1.size() == prefix)
- ret = new TrieBranchNode(_k2[prefix], new TrieLeafNode(_k2.cropped(prefix + 1), _v2), _v1);
- else if (_k2.size() == prefix)
- ret = new TrieBranchNode(_k1[prefix], new TrieLeafNode(_k1.cropped(prefix + 1), _v1), _v2);
- else // both continue after split
- ret = new TrieBranchNode(_k1[prefix], new TrieLeafNode(_k1.cropped(prefix + 1), _v1), _k2[prefix], new TrieLeafNode(_k2.cropped(prefix + 1), _v2));
-
- if (prefix)
- // have shared prefix - split.
- ret = new TrieInfixNode(_k1.cropped(0, prefix), ret);
-
- return ret;
-}
-
-std::string const& TrieBranchNode::at(bytesConstRef _key) const
-{
- if (_key.empty())
- return m_value;
- else if (m_nodes[_key[0]] != nullptr)
- return m_nodes[_key[0]]->at(_key.cropped(1));
- return c_nullString;
-}
-
-MemTrieNode* TrieBranchNode::insert(bytesConstRef _key, std::string const& _value)
-{
- assert(_value.size());
- mark();
- if (_key.empty())
- m_value = _value;
- else
- if (!m_nodes[_key[0]])
- m_nodes[_key[0]] = new TrieLeafNode(_key.cropped(1), _value);
- else
- m_nodes[_key[0]] = m_nodes[_key[0]]->insert(_key.cropped(1), _value);
- return this;
-}
-
-MemTrieNode* TrieBranchNode::remove(bytesConstRef _key)
-{
- if (_key.empty())
- if (m_value.size())
- {
- m_value.clear();
- return rejig();
- }
- else {}
- else if (m_nodes[_key[0]] != nullptr)
- {
- m_nodes[_key[0]] = m_nodes[_key[0]]->remove(_key.cropped(1));
- return rejig();
- }
- return this;
-}
-
-MemTrieNode* TrieBranchNode::rejig()
-{
- mark();
- byte n = activeBranch();
-
- if (n == (byte)-1 && m_value.size())
- {
- // switch to leaf
- auto r = new TrieLeafNode(bytesConstRef(), m_value);
- delete this;
- return r;
- }
- else if (n < 16 && m_value.empty())
- {
- // only branching to n...
- if (auto b = dynamic_cast(m_nodes[n]))
- {
- // switch to infix
- m_nodes[n] = nullptr;
- delete this;
- return new TrieInfixNode(bytesConstRef(&n, 1), b);
- }
- else
- {
- auto x = dynamic_cast(m_nodes[n]);
- assert(x);
- // include in child
- pushFront(x->m_ext, n);
- m_nodes[n] = nullptr;
- delete this;
- return x;
- }
- }
-
- return this;
-}
-
-byte TrieBranchNode::activeBranch() const
-{
- byte n = (byte)-1;
- for (int i = 0; i < 16; ++i)
- if (m_nodes[i] != nullptr)
- {
- if (n == (byte)-1)
- n = (byte)i;
- else
- return 16;
- }
- return n;
-}
-
-MemTrieNode* TrieInfixNode::insert(bytesConstRef _key, std::string const& _value)
-{
- assert(_value.size());
- mark();
- if (contains(_key))
- {
- m_next = m_next->insert(_key.cropped(m_ext.size()), _value);
- return this;
- }
- else
- {
- unsigned prefix = commonPrefix(_key, m_ext);
- if (prefix)
- {
- // one infix becomes two infixes, then insert into the second
- // instead of pop_front()...
- trimFront(m_ext, prefix);
-
- return new TrieInfixNode(_key.cropped(0, prefix), insert(_key.cropped(prefix), _value));
- }
- else
- {
- // split here.
- auto f = m_ext[0];
- trimFront(m_ext, 1);
- MemTrieNode* n = m_ext.empty() ? m_next : this;
- if (n != this)
- {
- m_next = nullptr;
- delete this;
- }
- TrieBranchNode* ret = new TrieBranchNode(f, n);
- ret->insert(_key, _value);
- return ret;
- }
- }
-}
-
-MemTrieNode* TrieInfixNode::remove(bytesConstRef _key)
-{
- if (contains(_key))
- {
- mark();
- m_next = m_next->remove(_key.cropped(m_ext.size()));
- if (auto p = dynamic_cast(m_next))
- {
- // merge with child...
- m_ext.reserve(m_ext.size() + p->m_ext.size());
- for (auto i: p->m_ext)
- m_ext.push_back(i);
- p->m_ext = m_ext;
- p->mark();
- m_next = nullptr;
- delete this;
- return p;
- }
- if (!m_next)
- {
- delete this;
- return nullptr;
- }
- }
- return this;
-}
-
-MemTrieNode* TrieLeafNode::insert(bytesConstRef _key, std::string const& _value)
-{
- assert(_value.size());
- mark();
- if (contains(_key))
- {
- m_value = _value;
- return this;
- }
- else
- {
- // create new trie.
- auto n = MemTrieNode::newBranch(_key, _value, bytesConstRef(&m_ext), m_value);
- delete this;
- return n;
- }
-}
-
-MemTrieNode* TrieLeafNode::remove(bytesConstRef _key)
-{
- if (contains(_key))
- {
- delete this;
- return nullptr;
- }
- return this;
-}
-
-MemTrie::~MemTrie()
-{
- delete m_root;
-}
-
-h256 MemTrie::hash256() const
-{
- return m_root ? m_root->hash256() : sha3(dev::rlp(bytesConstRef()));
-}
-
-bytes MemTrie::rlp() const
-{
- return m_root ? m_root->rlp() : dev::rlp(bytesConstRef());
-}
-
-void MemTrie::debugPrint()
-{
-#if ENABLE_DEBUG_PRINT
- if (m_root)
- m_root->debugPrint();
-#endif
-}
-
-std::string const& MemTrie::at(std::string const& _key) const
-{
- if (!m_root)
- return c_nullString;
- auto h = asNibbles(_key);
- return m_root->at(bytesConstRef(&h));
-}
-
-void MemTrie::insert(std::string const& _key, std::string const& _value)
-{
- if (_value.empty())
- remove(_key);
- auto h = asNibbles(_key);
- m_root = m_root ? m_root->insert(&h, _value) : new TrieLeafNode(bytesConstRef(&h), _value);
-}
-
-void MemTrie::remove(std::string const& _key)
-{
- if (m_root)
- {
- auto h = asNibbles(_key);
- m_root = m_root->remove(&h);
- }
-}
-
-}
-
diff --git a/MemTrie.h b/MemTrie.h
deleted file mode 100644
index 86b09540f..000000000
--- a/MemTrie.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- 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 .
-*/
-/** @file MemTrie.h
- * @author Gav Wood
- * @date 2014
- */
-
-#pragma once
-
-#include
-#include
-
-namespace dev
-{
-
-class MemTrieNode;
-
-/**
- * @brief Merkle Patricia Tree "Trie": a modifed base-16 Radix tree.
- */
-class MemTrie
-{
-public:
- MemTrie(): m_root(nullptr) {}
- ~MemTrie();
-
- h256 hash256() const;
- bytes rlp() const;
-
- void debugPrint();
-
- std::string const& at(std::string const& _key) const;
- void insert(std::string const& _key, std::string const& _value);
- void remove(std::string const& _key);
-
-private:
- MemTrieNode* m_root;
-};
-
-}
diff --git a/PerformaceTester.sol b/PerformaceTester.sol
deleted file mode 100644
index 3b1202cea..000000000
--- a/PerformaceTester.sol
+++ /dev/null
@@ -1,17 +0,0 @@
-contract PerformanceTester {
- function ackermann(uint m, uint n) returns (uint) {
- if (m == 0)
- return n + 1;
-
- if (n == 0)
- return ackermann(m - 1, 1);
-
- return ackermann(m - 1, ackermann(m, n - 1));
- }
-
- function fibonacci(uint n) returns (uint) {
- if (n == 0 || n == 1)
- return n;
- return fibonacci(n - 1) + fibonacci(n - 2);
- }
-}
\ No newline at end of file
diff --git a/TestHelper.cpp b/TestHelper.cpp
index ed844e961..3d0856829 100644
--- a/TestHelper.cpp
+++ b/TestHelper.cpp
@@ -23,9 +23,6 @@
#include
#include
-
-#include
-
#include
#include
#include
@@ -592,7 +589,7 @@ void userDefinedTest(string testTypeFlag, std::function doTests)
+void executeTests(const string& _name, const string& _testPathAppendix, const boost::filesystem::path _pathToFiller, std::function doTests)
{
string testPath = getTestPath();
testPath += _testPathAppendix;
@@ -605,11 +602,12 @@ void executeTests(const string& _name, const string& _testPathAppendix, std::fun
try
{
cnote << "Populating tests...";
+ cout << "boost::filesystem::current_path(): " << boost::filesystem::current_path().string() << endl;
json_spirit::mValue v;
boost::filesystem::path p(__FILE__);
boost::filesystem::path dir = p.parent_path();
- string s = asString(dev::contents(dir.string() + "/" + _name + "Filler.json"));
- BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + dir.string() + "/" + _name + "Filler.json is empty.");
+ string s = asString(dev::contents(_pathToFiller.string() + "/" + _name + "Filler.json"));
+ BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + _pathToFiller.string() + "/" + _name + "Filler.json is empty.");
json_spirit::read_string(s, v);
doTests(v, true);
writeFile(testPath + "/" + _name + ".json", asBytes(json_spirit::write_string(v, true)));
diff --git a/TestHelper.h b/TestHelper.h
index 36a84ecdb..bf4cdc16e 100644
--- a/TestHelper.h
+++ b/TestHelper.h
@@ -24,6 +24,7 @@
#include
#include
+#include
#include "JsonSpiritHeaders.h"
#include
@@ -155,7 +156,7 @@ void checkStorage(std::map _expectedStore, std::map _res
void checkLog(eth::LogEntries _resultLogs, eth::LogEntries _expectedLogs);
void checkCallCreates(eth::Transactions _resultCallCreates, eth::Transactions _expectedCallCreates);
-void executeTests(const std::string& _name, const std::string& _testPathAppendix, std::function doTests);
+void executeTests(const std::string& _name, const std::string& _testPathAppendix, const boost::filesystem::path _pathToFiller, std::function doTests);
void userDefinedTest(std::string testTypeFlag, std::function doTests);
RLPStream createRLPStreamFromTransactionFields(json_spirit::mObject& _tObj);
eth::LastHashes lastHashes(u256 _currentBlockNumber);
diff --git a/TrieHash.cpp b/TrieHash.cpp
deleted file mode 100644
index ccf12c162..000000000
--- a/TrieHash.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- 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 .
-*/
-/** @file TrieHash.cpp
- * @author Gav Wood
- * @date 2014
- */
-
-#include "TrieHash.h"
-
-#include
-#include
-#include
-using namespace std;
-using namespace dev;
-using namespace dev::eth;
-
-namespace dev
-{
-
-/*/
-#define APPEND_CHILD appendData
-/*/
-#define APPEND_CHILD appendRaw
-/**/
-
-#define ENABLE_DEBUG_PRINT 0
-
-#if ENABLE_DEBUG_PRINT
-bool g_hashDebug = false;
-#endif
-
-void hash256aux(HexMap const& _s, HexMap::const_iterator _begin, HexMap::const_iterator _end, unsigned _preLen, RLPStream& _rlp);
-
-void hash256rlp(HexMap const& _s, HexMap::const_iterator _begin, HexMap::const_iterator _end, unsigned _preLen, RLPStream& _rlp)
-{
-#if ENABLE_DEBUG_PRINT
- static std::string s_indent;
- if (_preLen)
- s_indent += " ";
-#endif
-
- if (_begin == _end)
- _rlp << ""; // NULL
- else if (std::next(_begin) == _end)
- {
- // only one left - terminate with the pair.
- _rlp.appendList(2) << hexPrefixEncode(_begin->first, true, _preLen) << _begin->second;
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << toHex(bytesConstRef(_begin->first.data() + _preLen, _begin->first.size() - _preLen), 1) << ": " << _begin->second << " = " << sha3(_rlp.out()) << std::endl;
-#endif
- }
- else
- {
- // find the number of common prefix nibbles shared
- // i.e. the minimum number of nibbles shared at the beginning between the first hex string and each successive.
- unsigned sharedPre = (unsigned)-1;
- unsigned c = 0;
- for (auto i = std::next(_begin); i != _end && sharedPre; ++i, ++c)
- {
- unsigned x = std::min(sharedPre, std::min((unsigned)_begin->first.size(), (unsigned)i->first.size()));
- unsigned shared = _preLen;
- for (; shared < x && _begin->first[shared] == i->first[shared]; ++shared) {}
- sharedPre = std::min(shared, sharedPre);
- }
- if (sharedPre > _preLen)
- {
- // if they all have the same next nibble, we also want a pair.
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << toHex(bytesConstRef(_begin->first.data() + _preLen, sharedPre), 1) << ": " << std::endl;
-#endif
- _rlp.appendList(2) << hexPrefixEncode(_begin->first, false, _preLen, (int)sharedPre);
- hash256aux(_s, _begin, _end, (unsigned)sharedPre, _rlp);
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << "= " << hex << sha3(_rlp.out()) << dec << std::endl;
-#endif
- }
- else
- {
- // otherwise enumerate all 16+1 entries.
- _rlp.appendList(17);
- auto b = _begin;
- if (_preLen == b->first.size())
- {
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << "@: " << b->second << std::endl;
-#endif
- ++b;
- }
- for (auto i = 0; i < 16; ++i)
- {
- auto n = b;
- for (; n != _end && n->first[_preLen] == i; ++n) {}
- if (b == n)
- _rlp << "";
- else
- {
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << std::hex << i << ": " << std::dec << std::endl;
-#endif
- hash256aux(_s, b, n, _preLen + 1, _rlp);
- }
- b = n;
- }
- if (_preLen == _begin->first.size())
- _rlp << _begin->second;
- else
- _rlp << "";
-
-#if ENABLE_DEBUG_PRINT
- if (g_hashDebug)
- std::cerr << s_indent << "= " << hex << sha3(_rlp.out()) << dec << std::endl;
-#endif
- }
- }
-#if ENABLE_DEBUG_PRINT
- if (_preLen)
- s_indent.resize(s_indent.size() - 2);
-#endif
-}
-
-void hash256aux(HexMap const& _s, HexMap::const_iterator _begin, HexMap::const_iterator _end, unsigned _preLen, RLPStream& _rlp)
-{
- RLPStream rlp;
- hash256rlp(_s, _begin, _end, _preLen, rlp);
- if (rlp.out().size() < 32)
- {
- // RECURSIVE RLP
-#if ENABLE_DEBUG_PRINT
- cerr << "[INLINE: " << dec << rlp.out().size() << " < 32]" << endl;
-#endif
- _rlp.APPEND_CHILD(rlp.out());
- }
- else
- {
-#if ENABLE_DEBUG_PRINT
- cerr << "[HASH: " << dec << rlp.out().size() << " >= 32]" << endl;
-#endif
- _rlp << sha3(rlp.out());
- }
-}
-
-h256 hash256(StringMap const& _s)
-{
- // build patricia tree.
- if (_s.empty())
- return sha3(rlp(""));
- HexMap hexMap;
- for (auto i = _s.rbegin(); i != _s.rend(); ++i)
- hexMap[asNibbles(i->first)] = i->second;
- RLPStream s;
- hash256rlp(hexMap, hexMap.cbegin(), hexMap.cend(), 0, s);
- return sha3(s.out());
-}
-
-bytes rlp256(StringMap const& _s)
-{
- // build patricia tree.
- if (_s.empty())
- return rlp("");
- HexMap hexMap;
- for (auto i = _s.rbegin(); i != _s.rend(); ++i)
- hexMap[asNibbles(i->first)] = i->second;
- RLPStream s;
- hash256aux(hexMap, hexMap.cbegin(), hexMap.cend(), 0, s);
- return s.out();
-}
-
-h256 hash256(u256Map const& _s)
-{
- // build patricia tree.
- if (_s.empty())
- return sha3(rlp(""));
- HexMap hexMap;
- for (auto i = _s.rbegin(); i != _s.rend(); ++i)
- hexMap[asNibbles(toBigEndianString(i->first))] = asString(rlp(i->second));
- RLPStream s;
- hash256rlp(hexMap, hexMap.cbegin(), hexMap.cend(), 0, s);
- return sha3(s.out());
-}
-
-}
diff --git a/TrieHash.h b/TrieHash.h
deleted file mode 100644
index be1d84480..000000000
--- a/TrieHash.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- 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 .
-*/
-/** @file TrieHash.h
- * @author Gav Wood
- * @date 2014
- */
-
-#pragma once
-
-#include
-#include
-
-namespace dev
-{
-
-bytes rlp256(StringMap const& _s);
-h256 hash256(StringMap const& _s);
-h256 hash256(u256Map const& _s);
-
-}
diff --git a/bcInvalidHeaderTestFiller.json b/bcInvalidHeaderTestFiller.json
deleted file mode 100644
index 9c9bdacd5..000000000
--- a/bcInvalidHeaderTestFiller.json
+++ /dev/null
@@ -1,887 +0,0 @@
-{
- "log1_wrongBlockNumber" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "number" : "2"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "log1_wrongBloom" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongCoinbase" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "coinbase" : "0x9888f1f195afa192cfee860698584c030f4c9db1"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongDifficulty" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "difficulty" : "10000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "DifferentExtraData1025" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "extraData" : "0x0101020304050607080910111213141516171819202122232410000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongGasLimit" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "gasLimit" : "100000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
-
- ]
- },
-
- "wrongGasUsed" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "gasUsed" : "0"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongNumber" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "number" : "0"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongParentHash" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongParentHash2" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "parentHash" : "0x6151889c8f14ab46e32ee0b1894bc276416385d068a1ade000d0dadef9b08b18"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongReceiptTrie" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongStateRoot" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongTimestamp" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "timestamp" : "0x54c98c80"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongTransactionsTrie" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "transactionsTrie" : "0x55e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "wrongUncleHash" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "uncleHash" : "0x0dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- }
-}
diff --git a/bcJS_API_TestFiller.json b/bcJS_API_TestFiller.json
deleted file mode 100644
index fe7396e59..000000000
--- a/bcJS_API_TestFiller.json
+++ /dev/null
@@ -1,247 +0,0 @@
-{
- "JS_API_Tests" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "70"
- },
- "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
- "storage" : {
- "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "0x01" : "0x42",
- "0x02" : "0x23",
- "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "0x04" : "0x01",
- "0x05" : "0x55114a49"
- }
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
- "balance" : "100000",
- "code" : "0x60003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b5056",
- "nonce" : "0",
- "storage" : {
- "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "0x01" : "0x42",
- "0x02" : "0x23",
- "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "0x05" : "0x54c98c81"
- }
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "0x60406103ca600439600451602451336000819055506000600481905550816001819055508060028190555042600581905550336003819055505050610381806100496000396000f30060003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b505600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000023",
- "gasLimit" : "600000",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "",
- "value" : "100000"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "0xfcfff16f",
- "gasLimit" : "600000",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f",
- "value" : "0x42"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "5",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "314159",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "6",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "7",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "8",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- }
-}
diff --git a/bcUncleHeaderValiditiyFiller.json b/bcUncleHeaderValiditiyFiller.json
deleted file mode 100644
index ee36e230d..000000000
--- a/bcUncleHeaderValiditiyFiller.json
+++ /dev/null
@@ -1,1038 +0,0 @@
-{
- "correct" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131071",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "diffTooLow" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "difficulty",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131071",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "diffTooHigh" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "difficulty",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131073",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "diffTooLow2" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "difficulty",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230847",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "gasLimitTooHigh" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "gasLimit",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230847",
- "extraData" : "0x",
- "gasLimit" : "3141593",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "gasLimitTooLow" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "acde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "gasLimit",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230847",
- "extraData" : "0x",
- "gasLimit" : "3141591",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "142813170",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "wrongParentHash" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "parentHash",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230848",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "bad4fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "bad40b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "1528353694",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "wrongStateRoot" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "stateRoot",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230848",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "bad40b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "1528353694",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "timestampTooLow" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "timestamp",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230848",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "1428353694",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "timestampTooHigh" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "231072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "overwriteAndRedoPoW" : "timestamp",
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "acde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "230848",
- "extraData" : "0x",
- "gasLimit" : "4141592",
- "gasUsed" : "150000",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "1528353694",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- }
-}
diff --git a/bcUncleTestFiller.json b/bcUncleTestFiller.json
deleted file mode 100644
index e67cfeecd..000000000
--- a/bcUncleTestFiller.json
+++ /dev/null
@@ -1,1796 +0,0 @@
-{
- "uncleHeaderAtBlock2" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "1",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "uncleHeaderWithGeneration0" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "0",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncle" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "uncleWithSameBlockNumber" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "3",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "InChainUncle" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "sameAsBlock" : "1"
- }
- ]
- }
- ]
- },
-
- "twoEqualUncle" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "sameAsPreviousSibling" : "1"
- }
- ]
- }
- ]
- },
-
- "twoUncle" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "30"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "3"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- },
- "ccde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1312500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "ccde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b55af905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "threeUncle" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "20"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "2"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "dcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b55af905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "fcdf5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "a55af905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration2" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "40"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "4"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1125000000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration3" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "50"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "5"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "937500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration4" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "60"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "6"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "750000000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "5",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration5" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "70"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "7"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "562500000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "5",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "6",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration6" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "80"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "8"
- },
- "bcde5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "375000000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "5",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "6",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "7",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- },
-
- "oneUncleGeneration7" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "80"
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "nonce" : "8"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "1",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "2",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "3",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "4",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "5",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "6",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "7",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "314159",
- "gasPrice" : "1",
- "nonce" : "8",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "bcde5374fce5edbc8e2a8697c15331677e6ebf0b",
- "difficulty" : "131072",
- "extraData" : "0x",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "hash" : "9de9879b6a81d1b6c4993c63c90a3c9d1e775f14572694778e828bc64972ae04",
- "mixHash" : "b557f905d29ed0fca99d65d0adcce698dee97cf72a13c7cd8d7a7826b8eee770",
- "nonce" : "18a524c1790fa83b",
- "number" : "2",
- "parentHash" : "6134fc6b5d99ee03c4aab1592640f6f9dcbc850668d75d631aee34989b938fae",
- "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "ff640b30d613c35dad43e3693329e1b1ee6350f989cf46a288025a1cbfdab9cd",
- "timestamp" : "0x54c98c82",
- "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- }
- ]
- }
- ]
- }
-}
diff --git a/bcValidBlockTestFiller.json b/bcValidBlockTestFiller.json
deleted file mode 100644
index 3529c61ee..000000000
--- a/bcValidBlockTestFiller.json
+++ /dev/null
@@ -1,493 +0,0 @@
-{
- "diff1024" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "85000",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
-
- },
-
- "gasPrice0" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10"
- },
- "8888f1f195afa192cfee860698584c030f4c9db1" : {
- "balance" : "1500000000000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "85000",
- "gasPrice" : "0",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "gasLimitTooHigh" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "100001",
- "gasPrice" : "0",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "100"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "SimpleTx" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "txOrder" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "8000000000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "7000000000"
- },
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "8000000000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "txEqualValue" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "5000000000"
- },
- "8888f1f195afa192cfee860698584c030f4c9db1" : {
- "balance" : "1500000000000210000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
- },
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "9",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "log1_correct" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "5000000100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "dataTx" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "100",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0xefb4db878627027c81b3bb1c7dd3a18dae3914a49cdd24a3e40ab3bbfbb240c5",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "8888f1f195afa192cfee860698584c030f4c9db1" : {
- "balance" : "1500000000002500000"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "transactions" : [
- {
- "data" : "0x60056013565b6101918061001d6000396000f35b3360008190555056006001600060e060020a6000350480630a874df61461003a57806341c0e1b514610058578063a02b161e14610066578063dbbdf0831461007757005b610045600435610149565b80600160a060020a031660005260206000f35b610060610161565b60006000f35b6100716004356100d4565b60006000f35b61008560043560243561008b565b60006000f35b600054600160a060020a031632600160a060020a031614156100ac576100b1565b6100d0565b8060018360005260205260406000208190555081600060005260206000a15b5050565b600054600160a060020a031633600160a060020a031614158015610118575033600160a060020a0316600182600052602052604060002054600160a060020a031614155b61012157610126565b610146565b600060018260005260205260406000208190555080600060005260206000a15b50565b60006001826000526020526040600020549050919050565b600054600160a060020a031633600160a060020a0316146101815761018f565b600054600160a060020a0316ff5b56",
- "gasLimit" : "50000",
- "gasPrice" : "50",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "",
- "value" : ""
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- },
-
- "DifferentExtraData1024" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "131072",
- "extraData" : "0x42",
- "gasLimit" : "3141592",
- "gasUsed" : "0",
- "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "nonce" : "0x0102030405060708",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "expect" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "5000000100"
- }
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100",
- "nonce" : "0",
- "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }",
- "storage": {}
- }
- },
- "blocks" : [
- {
- "blockHeader" : {
- "extraData" : "0x01020304050607080910111213141516171819202122232410000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000"
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "50000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
- }
- ],
- "uncleHeaders" : [
- ]
- }
- ]
- }
-}
-
-
diff --git a/blockchain.cpp b/blockchain.cpp
deleted file mode 100644
index ec8fb7539..000000000
--- a/blockchain.cpp
+++ /dev/null
@@ -1,697 +0,0 @@
-/*
- 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 .
-*/
-/** @file block.cpp
- * @author Christoph Jentzsch
- * @date 2015
- * block test functions.
- */
-
-#include
-#include
-#include
-#include
-#include "TestHelper.h"
-
-using namespace std;
-using namespace json_spirit;
-using namespace dev;
-using namespace dev::eth;
-
-namespace dev { namespace test {
-
-bytes createBlockRLPFromFields(mObject& _tObj);
-void overwriteBlockHeader(BlockInfo& _current_BlockHeader, mObject& _blObj);
-BlockInfo constructBlock(mObject& _o);
-void updatePoW(BlockInfo& _bi);
-void writeBlockHeaderToJson(mObject& _o, BlockInfo const& _bi);
-RLPStream createFullBlockFromHeader(BlockInfo const& _bi, bytes const& _txs = RLPEmptyList, bytes const& _uncles = RLPEmptyList);
-
-void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
-{
- for (auto& i: _v.get_obj())
- {
- cerr << i.first << endl;
- mObject& o = i.second.get_obj();
-
- BOOST_REQUIRE(o.count("genesisBlockHeader"));
- BlockInfo biGenesisBlock = constructBlock(o["genesisBlockHeader"].get_obj());
-
- BOOST_REQUIRE(o.count("pre"));
- ImportTest importer(o["pre"].get_obj());
- State state(OverlayDB(), BaseState::Empty, biGenesisBlock.coinbaseAddress);
- State stateTemp(OverlayDB(), BaseState::Empty, biGenesisBlock.coinbaseAddress);
- importer.importState(o["pre"].get_obj(), state);
- o["pre"] = fillJsonWithState(state);
- state.commit();
-
- if (_fillin)
- biGenesisBlock.stateRoot = state.rootHash();
- else
- BOOST_CHECK_MESSAGE(biGenesisBlock.stateRoot == state.rootHash(), "root hash does not match");
-
- if (_fillin)
- {
- // find new valid nonce
- updatePoW(biGenesisBlock);
-
- //update genesis block in json file
- writeBlockHeaderToJson(o["genesisBlockHeader"].get_obj(), biGenesisBlock);
- }
-
- // create new "genesis" block
- RLPStream rlpGenesisBlock = createFullBlockFromHeader(biGenesisBlock);
- biGenesisBlock.verifyInternals(&rlpGenesisBlock.out());
- o["genesisRLP"] = "0x" + toHex(rlpGenesisBlock.out());
-
- // construct blockchain
- TransientDirectory td;
- BlockChain bc(rlpGenesisBlock.out(), td.path(), WithExisting::Kill);
-
- if (_fillin)
- {
- BOOST_REQUIRE(o.count("blocks"));
- mArray blArray;
- vector vBiBlocks;
- vBiBlocks.push_back(biGenesisBlock);
- for (auto const& bl: o["blocks"].get_array())
- {
- mObject blObj = bl.get_obj();
-
- // get txs
- TransactionQueue txs;
- ZeroGasPricer gp;
- BOOST_REQUIRE(blObj.count("transactions"));
- for (auto const& txObj: blObj["transactions"].get_array())
- {
- mObject tx = txObj.get_obj();
- importer.importTransaction(tx);
- if (txs.import(importer.m_transaction.rlp()) != ImportResult::Success)
- cnote << "failed importing transaction\n";
- }
-
- // write uncle list
- BlockQueue uncleBlockQueue;
- mArray aUncleList;
- vector vBiUncles;
- mObject uncleHeaderObj_pre;
-
- for (auto const& uHObj: blObj["uncleHeaders"].get_array())
- {
- mObject uncleHeaderObj = uHObj.get_obj();
- if (uncleHeaderObj.count("sameAsPreviousSibling"))
- {
- writeBlockHeaderToJson(uncleHeaderObj_pre, vBiUncles[vBiUncles.size()-1]);
- aUncleList.push_back(uncleHeaderObj_pre);
- vBiUncles.push_back(vBiUncles[vBiUncles.size()-1]);
- continue;
- }
-
- if (uncleHeaderObj.count("sameAsBlock"))
- {
- writeBlockHeaderToJson(uncleHeaderObj_pre, vBiBlocks[(size_t)toInt(uncleHeaderObj["sameAsBlock"])]);
- aUncleList.push_back(uncleHeaderObj_pre);
- vBiUncles.push_back(vBiBlocks[(size_t)toInt(uncleHeaderObj["sameAsBlock"])]);
- continue;
- }
- string overwrite = "false";
- if (uncleHeaderObj.count("overwriteAndRedoPoW"))
- {
- overwrite = uncleHeaderObj["overwriteAndRedoPoW"].get_str();
- uncleHeaderObj.erase("overwriteAndRedoPoW");
- }
-
- BlockInfo uncleBlockFromFields = constructBlock(uncleHeaderObj);
-
- // make uncle header valid
- uncleBlockFromFields.timestamp = (u256)time(0);
- if (vBiBlocks.size() > 2)
- {
- if (uncleBlockFromFields.number - 1 < vBiBlocks.size())
- uncleBlockFromFields.populateFromParent(vBiBlocks[(size_t)uncleBlockFromFields.number - 1]);
- else
- uncleBlockFromFields.populateFromParent(vBiBlocks[vBiBlocks.size() - 2]);
- }
- else
- continue;
-
- if (overwrite != "false")
- {
- uncleBlockFromFields.difficulty = overwrite == "difficulty" ? toInt(uncleHeaderObj["difficulty"]) : uncleBlockFromFields.difficulty;
- uncleBlockFromFields.gasLimit = overwrite == "gasLimit" ? toInt(uncleHeaderObj["gasLimit"]) : uncleBlockFromFields.gasLimit;
- uncleBlockFromFields.gasUsed = overwrite == "gasUsed" ? toInt(uncleHeaderObj["gasUsed"]) : uncleBlockFromFields.gasUsed;
- uncleBlockFromFields.parentHash = overwrite == "parentHash" ? h256(uncleHeaderObj["parentHash"].get_str()) : uncleBlockFromFields.parentHash;
- uncleBlockFromFields.stateRoot = overwrite == "stateRoot" ? h256(uncleHeaderObj["stateRoot"].get_str()) : uncleBlockFromFields.stateRoot;
- if (overwrite == "timestamp")
- {
- uncleBlockFromFields.timestamp = toInt(uncleHeaderObj["timestamp"]);
- uncleBlockFromFields.difficulty = uncleBlockFromFields.calculateDifficulty(vBiBlocks[(size_t)uncleBlockFromFields.number - 1]);
- }
- }
-
- updatePoW(uncleBlockFromFields);
- writeBlockHeaderToJson(uncleHeaderObj, uncleBlockFromFields);
-
- aUncleList.push_back(uncleHeaderObj);
- vBiUncles.push_back(uncleBlockFromFields);
-
- cnote << "import uncle in blockQueue";
-
- RLPStream uncle = createFullBlockFromHeader(uncleBlockFromFields);
- try
- {
- uncleBlockQueue.import(&uncle.out(), bc);
- }
- catch(...)
- {
- cnote << "error in importing uncle! This produces an invalid block (May be by purpose for testing).";
- }
-
- uncleHeaderObj_pre = uncleHeaderObj;
- } //for blObj["uncleHeaders"].get_array()
-
- blObj["uncleHeaders"] = aUncleList;
- bc.sync(uncleBlockQueue, state.db(), 4);
- state.commitToMine(bc);
-
- try
- {
- state.sync(bc);
- state.sync(bc, txs, gp);
- mine(state, bc);
- }
- catch (Exception const& _e)
- {
- cnote << "state sync or mining did throw an exception: " << diagnostic_information(_e);
- return;
- }
- catch (std::exception const& _e)
- {
- cnote << "state sync or mining did throw an exception: " << _e.what();
- return;
- }
-
- blObj["rlp"] = "0x" + toHex(state.blockData());
-
- // write valid txs
- mArray txArray;
- Transactions txList;
- for (auto const& txi: txs.transactions())
- {
- txList.push_back(txi.second);
- mObject txObject;
- txObject["nonce"] = toString(txi.second.nonce());
- txObject["data"] = "0x" + toHex(txi.second.data());
- txObject["gasLimit"] = toString(txi.second.gas());
- txObject["gasPrice"] = toString(txi.second.gasPrice());
- txObject["r"] = "0x" + toString(txi.second.signature().r);
- txObject["s"] = "0x" + toString(txi.second.signature().s);
- txObject["v"] = to_string(txi.second.signature().v + 27);
- txObject["to"] = txi.second.isCreation() ? "" : toString(txi.second.receiveAddress());
- txObject["value"] = toString(txi.second.value());
- txObject = ImportTest::makeAllFieldsHex(txObject);
-
- txArray.push_back(txObject);
- }
-
- blObj["transactions"] = txArray;
-
- BlockInfo current_BlockHeader = state.info();
-
- if (blObj.count("blockHeader"))
- overwriteBlockHeader(current_BlockHeader, blObj);
-
- // write block header
- mObject oBlockHeader;
- writeBlockHeaderToJson(oBlockHeader, current_BlockHeader);
- blObj["blockHeader"] = oBlockHeader;
- vBiBlocks.push_back(current_BlockHeader);
-
- // compare blocks from state and from rlp
- RLPStream txStream;
- txStream.appendList(txList.size());
- for (unsigned i = 0; i < txList.size(); ++i)
- {
- RLPStream txrlp;
- txList[i].streamRLP(txrlp);
- txStream.appendRaw(txrlp.out());
- }
-
- RLPStream uncleStream;
- uncleStream.appendList(vBiUncles.size());
- for (unsigned i = 0; i < vBiUncles.size(); ++i)
- {
- RLPStream uncleRlp;
- vBiUncles[i].streamRLP(uncleRlp, WithNonce);
- uncleStream.appendRaw(uncleRlp.out());
- }
-
- RLPStream block2 = createFullBlockFromHeader(current_BlockHeader, txStream.out(), uncleStream.out());
-
- blObj["rlp"] = "0x" + toHex(block2.out());
-
- if (sha3(RLP(state.blockData())[0].data()) != sha3(RLP(block2.out())[0].data()))
- cnote << "block header mismatch\n";
-
- if (sha3(RLP(state.blockData())[1].data()) != sha3(RLP(block2.out())[1].data()))
- cnote << "txs mismatch\n";
-
- if (sha3(RLP(state.blockData())[2].data()) != sha3(RLP(block2.out())[2].data()))
- cnote << "uncle list mismatch\n" << RLP(state.blockData())[2].data() << "\n" << RLP(block2.out())[2].data();
-
- try
- {
- state.sync(bc);
- bc.import(block2.out(), state.db());
- state.sync(bc);
- state.commit();
- }
- // if exception is thrown, RLP is invalid and no blockHeader, Transaction list, or Uncle list should be given
- catch (...)
- {
- cnote << "block is invalid!\n";
- blObj.erase(blObj.find("blockHeader"));
- blObj.erase(blObj.find("uncleHeaders"));
- blObj.erase(blObj.find("transactions"));
- state = stateTemp; //revert state as if it was before executing this block
- }
- blArray.push_back(blObj);
- } //for blocks
-
- if (o.count("expect") > 0)
- {
- stateOptionsMap expectStateMap;
- State stateExpect(OverlayDB(), BaseState::Empty, biGenesisBlock.coinbaseAddress);
- importer.importState(o["expect"].get_obj(), stateExpect, expectStateMap);
- ImportTest::checkExpectedState(stateExpect, state, expectStateMap, Options::get().checkState ? WhenError::Throw : WhenError::DontThrow);
- o.erase(o.find("expect"));
- }
-
- o["blocks"] = blArray;
- o["postState"] = fillJsonWithState(state);
-
- //make all values hex
- State prestate(OverlayDB(), BaseState::Empty, biGenesisBlock.coinbaseAddress);
- importer.importState(o["pre"].get_obj(), prestate);
- o["pre"] = fillJsonWithState(prestate);
- }//_fillin
-
- else
- {
- for (auto const& bl: o["blocks"].get_array())
- {
- mObject blObj = bl.get_obj();
- bytes blockRLP;
- try
- {
- state.sync(bc);
- blockRLP = importByteArray(blObj["rlp"].get_str());
- bc.import(blockRLP, state.db());
- state.sync(bc);
- }
- // if exception is thrown, RLP is invalid and no blockHeader, Transaction list, or Uncle list should be given
- catch (Exception const& _e)
- {
- cnote << "state sync or block import did throw an exception: " << diagnostic_information(_e);
- BOOST_CHECK(blObj.count("blockHeader") == 0);
- BOOST_CHECK(blObj.count("transactions") == 0);
- BOOST_CHECK(blObj.count("uncleHeaders") == 0);
- continue;
- }
- catch (std::exception const& _e)
- {
- cnote << "state sync or block import did throw an exception: " << _e.what();
- BOOST_CHECK(blObj.count("blockHeader") == 0);
- BOOST_CHECK(blObj.count("transactions") == 0);
- BOOST_CHECK(blObj.count("uncleHeaders") == 0);
- continue;
- }
- catch (...)
- {
- cnote << "state sync or block import did throw an exception\n";
- BOOST_CHECK(blObj.count("blockHeader") == 0);
- BOOST_CHECK(blObj.count("transactions") == 0);
- BOOST_CHECK(blObj.count("uncleHeaders") == 0);
- continue;
- }
-
- BOOST_REQUIRE(blObj.count("blockHeader"));
-
- mObject tObj = blObj["blockHeader"].get_obj();
- BlockInfo blockHeaderFromFields;
- const bytes c_rlpBytesBlockHeader = createBlockRLPFromFields(tObj);
- const RLP c_blockHeaderRLP(c_rlpBytesBlockHeader);
- blockHeaderFromFields.populateFromHeader(c_blockHeaderRLP, IgnoreNonce);
-
- BlockInfo blockFromRlp = bc.info();
-
- //Check the fields restored from RLP to original fields
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.headerHash(WithNonce) == blockFromRlp.headerHash(WithNonce), "hash in given RLP not matching the block hash!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.parentHash == blockFromRlp.parentHash, "parentHash in given RLP not matching the block parentHash!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.sha3Uncles == blockFromRlp.sha3Uncles, "sha3Uncles in given RLP not matching the block sha3Uncles!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.coinbaseAddress == blockFromRlp.coinbaseAddress,"coinbaseAddress in given RLP not matching the block coinbaseAddress!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.stateRoot == blockFromRlp.stateRoot, "stateRoot in given RLP not matching the block stateRoot!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.transactionsRoot == blockFromRlp.transactionsRoot, "transactionsRoot in given RLP not matching the block transactionsRoot!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.receiptsRoot == blockFromRlp.receiptsRoot, "receiptsRoot in given RLP not matching the block receiptsRoot!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.logBloom == blockFromRlp.logBloom, "logBloom in given RLP not matching the block logBloom!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.difficulty == blockFromRlp.difficulty, "difficulty in given RLP not matching the block difficulty!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.number == blockFromRlp.number, "number in given RLP not matching the block number!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.gasLimit == blockFromRlp.gasLimit,"gasLimit in given RLP not matching the block gasLimit!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.gasUsed == blockFromRlp.gasUsed, "gasUsed in given RLP not matching the block gasUsed!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.timestamp == blockFromRlp.timestamp, "timestamp in given RLP not matching the block timestamp!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.extraData == blockFromRlp.extraData, "extraData in given RLP not matching the block extraData!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.mixHash == blockFromRlp.mixHash, "mixHash in given RLP not matching the block mixHash!");
- BOOST_CHECK_MESSAGE(blockHeaderFromFields.nonce == blockFromRlp.nonce, "nonce in given RLP not matching the block nonce!");
-
- BOOST_CHECK_MESSAGE(blockHeaderFromFields == blockFromRlp, "However, blockHeaderFromFields != blockFromRlp!");
-
- //Check transaction list
-
- Transactions txsFromField;
-
- for (auto const& txObj: blObj["transactions"].get_array())
- {
- mObject tx = txObj.get_obj();
-
- BOOST_REQUIRE(tx.count("nonce"));
- BOOST_REQUIRE(tx.count("gasPrice"));
- BOOST_REQUIRE(tx.count("gasLimit"));
- BOOST_REQUIRE(tx.count("to"));
- BOOST_REQUIRE(tx.count("value"));
- BOOST_REQUIRE(tx.count("v"));
- BOOST_REQUIRE(tx.count("r"));
- BOOST_REQUIRE(tx.count("s"));
- BOOST_REQUIRE(tx.count("data"));
-
- try
- {
- Transaction t(createRLPStreamFromTransactionFields(tx).out(), CheckTransaction::Everything);
- txsFromField.push_back(t);
- }
- catch (Exception const& _e)
- {
- BOOST_ERROR("Failed transaction constructor with Exception: " << diagnostic_information(_e));
- }
- catch (exception const& _e)
- {
- cnote << _e.what();
- }
- }
-
- Transactions txsFromRlp;
- RLP root(blockRLP);
- for (auto const& tr: root[1])
- {
- Transaction tx(tr.data(), CheckTransaction::Everything);
- txsFromRlp.push_back(tx);
- }
-
- BOOST_CHECK_MESSAGE(txsFromRlp.size() == txsFromField.size(), "transaction list size does not match");
-
- for (size_t i = 0; i < txsFromField.size(); ++i)
- {
- BOOST_CHECK_MESSAGE(txsFromField[i].data() == txsFromRlp[i].data(), "transaction data in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].gas() == txsFromRlp[i].gas(), "transaction gasLimit in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].gasPrice() == txsFromRlp[i].gasPrice(), "transaction gasPrice in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].nonce() == txsFromRlp[i].nonce(), "transaction nonce in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].signature().r == txsFromRlp[i].signature().r, "transaction r in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].signature().s == txsFromRlp[i].signature().s, "transaction s in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].signature().v == txsFromRlp[i].signature().v, "transaction v in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].receiveAddress() == txsFromRlp[i].receiveAddress(), "transaction receiveAddress in rlp and in field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].value() == txsFromRlp[i].value(), "transaction receiveAddress in rlp and in field do not match");
-
- BOOST_CHECK_MESSAGE(txsFromField[i] == txsFromRlp[i], "transactions from rlp and transaction from field do not match");
- BOOST_CHECK_MESSAGE(txsFromField[i].rlp() == txsFromRlp[i].rlp(), "transactions rlp do not match");
- }
-
- // check uncle list
-
- // uncles from uncle list field
- vector uBlHsFromField;
- if (blObj["uncleHeaders"].type() != json_spirit::null_type)
- for (auto const& uBlHeaderObj: blObj["uncleHeaders"].get_array())
- {
- mObject uBlH = uBlHeaderObj.get_obj();
- BOOST_REQUIRE(uBlH.size() == 16);
- bytes uncleRLP = createBlockRLPFromFields(uBlH);
- const RLP c_uRLP(uncleRLP);
- BlockInfo uncleBlockHeader;
- try
- {
- uncleBlockHeader.populateFromHeader(c_uRLP);
- }
- catch(...)
- {
- BOOST_ERROR("invalid uncle header");
- }
- uBlHsFromField.push_back(uncleBlockHeader);
- }
-
- // uncles from block RLP
- vector uBlHsFromRlp;
- for (auto const& uRLP: root[2])
- {
- BlockInfo uBl;
- uBl.populateFromHeader(uRLP);
- uBlHsFromRlp.push_back(uBl);
- }
-
- BOOST_REQUIRE_EQUAL(uBlHsFromField.size(), uBlHsFromRlp.size());
-
- for (size_t i = 0; i < uBlHsFromField.size(); ++i)
- BOOST_CHECK_MESSAGE(uBlHsFromField[i] == uBlHsFromRlp[i], "block header in rlp and in field do not match");
- }
- }
- }
-}
-
-// helping functions
-
-bytes createBlockRLPFromFields(mObject& _tObj)
-{
- RLPStream rlpStream;
- rlpStream.appendList(_tObj.count("hash") > 0 ? (_tObj.size() - 1) : _tObj.size());
-
- if (_tObj.count("parentHash"))
- rlpStream << importByteArray(_tObj["parentHash"].get_str());
-
- if (_tObj.count("uncleHash"))
- rlpStream << importByteArray(_tObj["uncleHash"].get_str());
-
- if (_tObj.count("coinbase"))
- rlpStream << importByteArray(_tObj["coinbase"].get_str());
-
- if (_tObj.count("stateRoot"))
- rlpStream << importByteArray(_tObj["stateRoot"].get_str());
-
- if (_tObj.count("transactionsTrie"))
- rlpStream << importByteArray(_tObj["transactionsTrie"].get_str());
-
- if (_tObj.count("receiptTrie"))
- rlpStream << importByteArray(_tObj["receiptTrie"].get_str());
-
- if (_tObj.count("bloom"))
- rlpStream << importByteArray(_tObj["bloom"].get_str());
-
- if (_tObj.count("difficulty"))
- rlpStream << bigint(_tObj["difficulty"].get_str());
-
- if (_tObj.count("number"))
- rlpStream << bigint(_tObj["number"].get_str());
-
- if (_tObj.count("gasLimit"))
- rlpStream << bigint(_tObj["gasLimit"].get_str());
-
- if (_tObj.count("gasUsed"))
- rlpStream << bigint(_tObj["gasUsed"].get_str());
-
- if (_tObj.count("timestamp"))
- rlpStream << bigint(_tObj["timestamp"].get_str());
-
- if (_tObj.count("extraData"))
- rlpStream << fromHex(_tObj["extraData"].get_str());
-
- if (_tObj.count("mixHash"))
- rlpStream << importByteArray(_tObj["mixHash"].get_str());
-
- if (_tObj.count("nonce"))
- rlpStream << importByteArray(_tObj["nonce"].get_str());
-
- return rlpStream.out();
-}
-
-void overwriteBlockHeader(BlockInfo& _header, mObject& _blObj)
-{
- auto ho = _blObj["blockHeader"].get_obj();
- if (ho.size() != 14)
- {
- BlockInfo tmp = _header;
- if (ho.count("parentHash"))
- tmp.parentHash = h256(ho["parentHash"].get_str());
- if (ho.count("uncleHash"))
- tmp.sha3Uncles = h256(ho["uncleHash"].get_str());
- if (ho.count("coinbase"))
- tmp.coinbaseAddress = Address(ho["coinbase"].get_str());
- if (ho.count("stateRoot"))
- tmp.stateRoot = h256(ho["stateRoot"].get_str());
- if (ho.count("transactionsTrie"))
- tmp.transactionsRoot = h256(ho["transactionsTrie"].get_str());
- if (ho.count("receiptTrie"))
- tmp.receiptsRoot = h256(ho["receiptTrie"].get_str());
- if (ho.count("bloom"))
- tmp.logBloom = LogBloom(ho["bloom"].get_str());
- if (ho.count("difficulty"))
- tmp.difficulty = toInt(ho["difficulty"]);
- if (ho.count("number"))
- tmp.number = toInt(ho["number"]);
- if (ho.count("gasLimit"))
- tmp.gasLimit = toInt(ho["gasLimit"]);
- if (ho.count("gasUsed"))
- tmp.gasUsed = toInt(ho["gasUsed"]);
- if (ho.count("timestamp"))
- tmp.timestamp = toInt(ho["timestamp"]);
- if (ho.count("extraData"))
- tmp.extraData = importByteArray(ho["extraData"].get_str());
- if (ho.count("mixHash"))
- tmp.mixHash = h256(ho["mixHash"].get_str());
- tmp.noteDirty();
-
- // find new valid nonce
- if (tmp != _header)
- {
- mine(tmp);
- _header = tmp;
- }
- }
- else
- {
- // take the blockheader as is
- const bytes c_blockRLP = createBlockRLPFromFields(ho);
- const RLP c_bRLP(c_blockRLP);
- _header.populateFromHeader(c_bRLP, IgnoreNonce);
- }
-}
-
-BlockInfo constructBlock(mObject& _o)
-{
- BlockInfo ret;
- try
- {
- // construct genesis block
- const bytes c_blockRLP = createBlockRLPFromFields(_o);
- const RLP c_bRLP(c_blockRLP);
- ret.populateFromHeader(c_bRLP, IgnoreNonce);
- }
- catch (Exception const& _e)
- {
- cnote << "block population did throw an exception: " << diagnostic_information(_e);
- }
- catch (std::exception const& _e)
- {
- BOOST_ERROR("Failed block population with Exception: " << _e.what());
- }
- catch(...)
- {
- BOOST_ERROR("block population did throw an unknown exception\n");
- }
- return ret;
-}
-
-void updatePoW(BlockInfo& _bi)
-{
- mine(_bi);
- _bi.noteDirty();
-}
-
-void writeBlockHeaderToJson(mObject& _o, BlockInfo const& _bi)
-{
- _o["parentHash"] = toString(_bi.parentHash);
- _o["uncleHash"] = toString(_bi.sha3Uncles);
- _o["coinbase"] = toString(_bi.coinbaseAddress);
- _o["stateRoot"] = toString(_bi.stateRoot);
- _o["transactionsTrie"] = toString(_bi.transactionsRoot);
- _o["receiptTrie"] = toString(_bi.receiptsRoot);
- _o["bloom"] = toString(_bi.logBloom);
- _o["difficulty"] = "0x" + toHex(toCompactBigEndian(_bi.difficulty), 1);
- _o["number"] = "0x" + toHex(toCompactBigEndian(_bi.number), 1);
- _o["gasLimit"] = "0x" + toHex(toCompactBigEndian(_bi.gasLimit), 1);
- _o["gasUsed"] = "0x" + toHex(toCompactBigEndian(_bi.gasUsed), 1);
- _o["timestamp"] = "0x" + toHex(toCompactBigEndian(_bi.timestamp), 1);
- _o["extraData"] ="0x" + toHex(_bi.extraData);
- _o["mixHash"] = toString(_bi.mixHash);
- _o["nonce"] = toString(_bi.nonce);
- _o["hash"] = toString(_bi.hash());
-}
-
-RLPStream createFullBlockFromHeader(BlockInfo const& _bi, bytes const& _txs, bytes const& _uncles)
-{
- RLPStream rlpStream;
- _bi.streamRLP(rlpStream, WithNonce);
-
- RLPStream ret(3);
- ret.appendRaw(rlpStream.out());
- ret.appendRaw(_txs);
- ret.appendRaw(_uncles);
-
- return ret;
-}
-
-} }// Namespace Close
-
-BOOST_AUTO_TEST_SUITE(BlockChainTests)
-
-BOOST_AUTO_TEST_CASE(bcForkBlockTest)
-{
- dev::test::executeTests("bcForkBlockTest", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcInvalidRLPTest)
-{
- dev::test::executeTests("bcInvalidRLPTest", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcJS_API_Test)
-{
- dev::test::executeTests("bcJS_API_Test", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcValidBlockTest)
-{
- dev::test::executeTests("bcValidBlockTest", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcInvalidHeaderTest)
-{
- dev::test::executeTests("bcInvalidHeaderTest", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcUncleTest)
-{
- dev::test::executeTests("bcUncleTest", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(bcUncleHeaderValiditiy)
-{
- dev::test::executeTests("bcUncleHeaderValiditiy", "/BlockTests", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_CASE(userDefinedFile)
-{
- dev::test::userDefinedTest("--singletest", dev::test::doBlockchainTests);
-}
-
-BOOST_AUTO_TEST_SUITE_END()
-
diff --git a/checkRandomStateTest.cpp b/checkRandomStateTest.cpp
deleted file mode 100644
index 49aca852f..000000000
--- a/checkRandomStateTest.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- 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 .
-*/
-/** @file checkRandomStateTest.cpp
- * @author Christoph Jentzsch
- * @date 2015
- * Check a random test and return 0/1 for success or failure. To be used for efficiency in the random test simulation.
- */
-
-#include
-#include
-#include
-#include
-#include
-#include "TestHelper.h"
-#include "vm.h"
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-
-using namespace std;
-using namespace json_spirit;
-using namespace dev::test;
-using namespace dev;
-
-bool doStateTest(mValue& _v);
-
-int main(int argc, char *argv[])
-{
- g_logVerbosity = 0;
- bool ret = false;
-
- try
- {
- mValue v;
- string s;
- for (int i = 1; i < argc; ++i)
- s += argv[i];
- if (asserts(s.length() > 0))
- {
- cout << "Content of argument is empty\n";
- return 1;
- }
- read_string(s, v);
- ret = doStateTest(v);
- }
- catch (Exception const& _e)
- {
- cout << "Failed test with Exception: " << diagnostic_information(_e) << endl;
- ret = false;
- }
- catch (std::exception const& _e)
- {
- cout << "Failed test with Exception: " << _e.what() << endl;
- ret = false;
- }
- return ret;
-}
-
-bool doStateTest(mValue& _v)
-{
- eth::VMFactory::setKind(eth::VMKind::JIT);
-
- 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("transaction") > 0);
-
- ImportTest importer(o, false);
-
- eth::State theState = importer.m_statePre;
- bytes output;
-
- try
- {
- output = theState.execute(lastHashes(importer.m_environment.currentBlock.number), importer.m_transaction).output;
- }
- catch (Exception const& _e)
- {
- cnote << "state execution did throw an exception: " << diagnostic_information(_e);
- theState.commit();
- }
- catch (std::exception const& _e)
- {
- cnote << "state execution did throw an exception: " << _e.what();
- }
-
- assert(o.count("post") > 0);
- assert(o.count("out") > 0);
-
- //checkOutput(output, o);
- int j = 0;
- if (o["out"].type() == array_type)
- for (auto const& d: o["out"].get_array())
- {
- if (asserts(output[j] == toInt(d)))
- {
- cout << "Output byte [" << j << "] different!";
- return 1;
- }
- ++j;
- }
- else if (o["out"].get_str().find("0x") == 0)
- {
- if (asserts(output == fromHex(o["out"].get_str().substr(2))))
- return 1;
- }
- else
- {
- if (asserts(output == fromHex(o["out"].get_str())))
- return 1;
- }
-
- //checkLog(theState.pending().size() ? theState.log(0) : LogEntries(), importer.m_environment.sub.logs);
- eth::LogEntries logs = theState.pending().size() ? theState.log(0) : eth::LogEntries();
-
- if (assertsEqual(logs.size(), importer.m_environment.sub.logs.size()))
- return 1;
-
- for (size_t i = 0; i < logs.size(); ++i)
- {
- if (assertsEqual(logs[i].address, importer.m_environment.sub.logs[i].address))
- return 1;
- if (assertsEqual(logs[i].topics, importer.m_environment.sub.logs[i].topics))
- return 1;
- if (asserts(logs[i].data == importer.m_environment.sub.logs[i].data))
- return 1;
- }
-
- // check addresses
-#if ETH_FATDB
- auto expectedAddrs = importer.m_statePost.addresses();
- auto resultAddrs = theState.addresses();
- for (auto& expectedPair : expectedAddrs)
- {
- auto& expectedAddr = expectedPair.first;
- auto resultAddrIt = resultAddrs.find(expectedAddr);
- if (resultAddrIt == resultAddrs.end())
- {
- cout << "Missing expected address " << expectedAddr;
- return 1;
- }
- else
- {
- if (importer.m_statePost.balance(expectedAddr) != theState.balance(expectedAddr))
- {
- cout << expectedAddr << ": incorrect balance " << theState.balance(expectedAddr) << ", expected " << importer.m_statePost.balance(expectedAddr);
- return 1;
- }
- if (importer.m_statePost.transactionsFrom(expectedAddr) != theState.transactionsFrom(expectedAddr))
- {
- cout << expectedAddr << ": incorrect txCount " << theState.transactionsFrom(expectedAddr) << ", expected " << importer.m_statePost.transactionsFrom(expectedAddr);
- return 1;
- }
- if (importer.m_statePost.code(expectedAddr) != theState.code(expectedAddr))
- {
- cout << expectedAddr << ": incorrect code";
- return 1;
- }
-
- //checkStorage(importer.m_statePost.storage(expectedAddr), theState.storage(expectedAddr), expectedAddr);
- map _resultStore = theState.storage(expectedAddr);
-
- for (auto&& expectedStorePair : importer.m_statePost.storage(expectedAddr))
- {
- auto& expectedStoreKey = expectedStorePair.first;
- auto resultStoreIt = _resultStore.find(expectedStoreKey);
- if (resultStoreIt == _resultStore.end())
- {
- cout << expectedAddr << ": missing store key " << expectedStoreKey << endl;
- return 1;
- }
- else
- {
- auto& expectedStoreValue = expectedStorePair.second;
- auto& resultStoreValue = resultStoreIt->second;
- if (asserts(expectedStoreValue == resultStoreValue))
- {
- cout << expectedAddr << ": store[" << expectedStoreKey << "] = " << resultStoreValue << ", expected " << expectedStoreValue << endl;
- return 1;
- }
- }
- }
- if (assertsEqual(_resultStore.size(), importer.m_statePost.storage(expectedAddr).size()))
- return 1;
- for (auto&& resultStorePair: _resultStore)
- {
- if (!importer.m_statePost.storage(expectedAddr).count(resultStorePair.first))
- {
- cout << expectedAddr << ": unexpected store key " << resultStorePair.first << endl;
- return 1;
- }
- }
- }
- }
- //checkAddresses