mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
merge
This commit is contained in:
parent
ec3384a23f
commit
93fd580b94
@ -1,10 +1,10 @@
|
||||
{
|
||||
"minDifficulty" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "1023",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000000",
|
||||
"gasUsed" : "0",
|
||||
"number" : "0",
|
||||
@ -12,7 +12,7 @@
|
||||
"receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
|
||||
"timestamp" : "0x54c98c81",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"log1_wrongBlockNumber" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -57,13 +57,13 @@
|
||||
"log1_wrongBloom" : {
|
||||
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -92,7 +92,7 @@
|
||||
"blocks" : [
|
||||
{
|
||||
"blockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
},
|
||||
"transactions" : [
|
||||
{
|
||||
@ -113,13 +113,13 @@
|
||||
|
||||
"wrongCoinbase" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -168,13 +168,13 @@
|
||||
|
||||
"wrongDifficulty" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -223,13 +223,13 @@
|
||||
|
||||
"DifferentExtraData" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -257,7 +257,7 @@
|
||||
"blocks" : [
|
||||
{
|
||||
"blockHeader" : {
|
||||
"extraData" : "42"
|
||||
"extraData" : "0x42"
|
||||
},
|
||||
"transactions" : [
|
||||
{
|
||||
@ -278,13 +278,13 @@
|
||||
|
||||
"wrongGasLimit" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -334,13 +334,13 @@
|
||||
|
||||
"wrongGasUsed" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -389,13 +389,13 @@
|
||||
|
||||
"wrongNumber" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -444,13 +444,13 @@
|
||||
|
||||
"wrongParentHash" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -499,13 +499,13 @@
|
||||
|
||||
"wrongReceiptTrie" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -554,13 +554,13 @@
|
||||
|
||||
"wrongStateRoot" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -609,13 +609,13 @@
|
||||
|
||||
"wrongTimestamp" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -664,13 +664,13 @@
|
||||
|
||||
"wrongTransactionsTrie" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -719,13 +719,13 @@
|
||||
|
||||
"wrongUncleHash" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
|
114
bcUncleTestFiller.json
Normal file
114
bcUncleTestFiller.json
Normal file
@ -0,0 +1,114 @@
|
||||
{
|
||||
"minDifficulty" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "1023",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000000",
|
||||
"gasUsed" : "0",
|
||||
"number" : "0",
|
||||
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
|
||||
"timestamp" : "0x54c98c81",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
|
||||
},
|
||||
"pre" : {
|
||||
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||
"balance" : "10000000000000",
|
||||
"nonce" : "0",
|
||||
"code" : "",
|
||||
"storage": {}
|
||||
}
|
||||
},
|
||||
"blocks" : [
|
||||
{
|
||||
"transactions" : [
|
||||
{
|
||||
"data" : "",
|
||||
"gasLimit" : "80000050",
|
||||
"gasPrice" : "1",
|
||||
"nonce" : "0",
|
||||
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
||||
"value" : "10"
|
||||
}
|
||||
],
|
||||
"uncleHeaders" : [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transactions" : [
|
||||
{
|
||||
"data" : "",
|
||||
"gasLimit" : "80000050",
|
||||
"gasPrice" : "1",
|
||||
"nonce" : "1",
|
||||
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
||||
"value" : "10"
|
||||
}
|
||||
],
|
||||
"uncleHeaders" : [
|
||||
{
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0000000000000000000000000000000000000000",
|
||||
"difficulty" : "2049",
|
||||
"extraData" : "0x",
|
||||
"gasLimit" : "99804806",
|
||||
"gasUsed" : "21000",
|
||||
"hash" : "e940823998a293aa03c46423d9a9eec91ddca8e5e67445af9ebd3dff3456b4b2",
|
||||
"mixHash" : "05204ec823225e794cce3f93eebfbd79b654366792ad408c7a206b9c588107d9",
|
||||
"nonce" : "17ed77999bef2e4b",
|
||||
"number" : "2",
|
||||
"parentHash" : "25143742f163f84ac5b5afcb2700f61e24421f756ec9551bd79a254d3310e710",
|
||||
"receiptTrie" : "3d08abeec9cf28f9a518de4c71ebbfc8021f18dec3ccd0a72ad1fc0f168339d4",
|
||||
"seedHash" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"stateRoot" : "66120efd3d0e512866232ed57647a33055770ec98eeaddcdbbdedca49a69f9ca",
|
||||
"timestamp" : "1425490151",
|
||||
"transactionsTrie" : "da09ee96fda181334d323831e7402e3a4727d9b631059d0ef47f03f817f83f34",
|
||||
"uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"transactions" : [
|
||||
{
|
||||
"data" : "",
|
||||
"gasLimit" : "8000000",
|
||||
"gasPrice" : "0",
|
||||
"nonce" : "2",
|
||||
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
||||
"value" : "10"
|
||||
}
|
||||
],
|
||||
"uncleHeaders" : [
|
||||
{
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "1023",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000000",
|
||||
"gasUsed" : "0",
|
||||
"number" : "1",
|
||||
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
|
||||
"timestamp" : "0x54c98c81",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -2,13 +2,13 @@
|
||||
|
||||
"diff1024" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "1024",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -49,13 +49,13 @@
|
||||
|
||||
"gasPrice0" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -95,13 +95,13 @@
|
||||
|
||||
"gasLimitTooHigh" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "1000000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -141,13 +141,13 @@
|
||||
|
||||
"SimpleTx" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -187,13 +187,13 @@
|
||||
|
||||
"txOrder" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -242,13 +242,13 @@
|
||||
|
||||
"txEqualValue" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -297,13 +297,13 @@
|
||||
|
||||
"log1_correct" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "10000",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "100000",
|
||||
"gasUsed" : "0",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
@ -349,13 +349,13 @@
|
||||
|
||||
"dataTx" : {
|
||||
"genesisBlockHeader" : {
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
|
||||
"difficulty" : "023101",
|
||||
"extraData" : "42",
|
||||
"extraData" : "0x42",
|
||||
"gasLimit" : "0x0dddb6",
|
||||
"gasUsed" : "100",
|
||||
"mixBytes" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"seedHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"nonce" : "0x0102030405060708",
|
||||
"number" : "0",
|
||||
|
275
blockchain.cpp
275
blockchain.cpp
@ -31,61 +31,10 @@ using namespace dev::eth;
|
||||
|
||||
namespace dev { namespace test {
|
||||
|
||||
bytes createBlockRLPFromFields(mObject& _tObj)
|
||||
{
|
||||
RLPStream rlpStream;
|
||||
rlpStream.appendList(_tObj.size());
|
||||
bytes createBlockRLPFromFields(mObject& _tObj);
|
||||
void overwriteBlockHeader(BlockInfo& current_BlockHeader, mObject& blObj);
|
||||
|
||||
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 << importByteArray(_tObj["extraData"].get_str());
|
||||
|
||||
if (_tObj.count("seedHash"))
|
||||
rlpStream << importByteArray(_tObj["seedHash"].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 doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
{
|
||||
@ -147,6 +96,7 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
o["genesisBlockHeader"].get_obj()["stateRoot"] = toString(blockFromFields.stateRoot);
|
||||
o["genesisBlockHeader"].get_obj()["nonce"] = toString(blockFromFields.nonce);
|
||||
o["genesisBlockHeader"].get_obj()["mixHash"] = toString(blockFromFields.mixHash);
|
||||
o["genesisBlockHeader"].get_obj()["hash"] = toString(blockFromFields.headerHash(WithNonce));
|
||||
}
|
||||
|
||||
// create new "genesis" block
|
||||
@ -211,13 +161,13 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
txList.push_back(tx);
|
||||
mObject txObject;
|
||||
txObject["nonce"] = toString(tx.nonce());
|
||||
txObject["data"] = toHex(tx.data());
|
||||
txObject["data"] = "0x" + toHex(tx.data());
|
||||
txObject["gasLimit"] = toString(tx.gas());
|
||||
txObject["gasPrice"] = toString(tx.gasPrice());
|
||||
txObject["r"] = "0x" + toString(tx.signature().r);
|
||||
txObject["s"] = "0x" + toString(tx.signature().s);
|
||||
txObject["v"] = to_string(tx.signature().v + 27);
|
||||
txObject["to"] = toString(tx.receiveAddress());
|
||||
txObject["to"] = tx.isCreation() ? "" : toString(tx.receiveAddress());
|
||||
txObject["value"] = toString(tx.value());
|
||||
|
||||
txArray.push_back(txObject);
|
||||
@ -232,78 +182,7 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
|
||||
if (blObj.count("blockHeader"))
|
||||
{
|
||||
if (blObj["blockHeader"].get_obj().size() != 14)
|
||||
{
|
||||
|
||||
BlockInfo tmp = current_BlockHeader;
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("parentHash"))
|
||||
tmp.parentHash = h256(blObj["blockHeader"].get_obj()["parentHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("uncleHash"))
|
||||
tmp.sha3Uncles = h256(blObj["blockHeader"].get_obj()["uncleHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("coinbase"))
|
||||
tmp.coinbaseAddress = Address(blObj["blockHeader"].get_obj()["coinbase"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("stateRoot"))
|
||||
tmp.stateRoot = h256(blObj["blockHeader"].get_obj()["stateRoot"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("transactionsTrie"))
|
||||
tmp.transactionsRoot = h256(blObj["blockHeader"].get_obj()["transactionsTrie"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("receiptTrie"))
|
||||
tmp.receiptsRoot = h256(blObj["blockHeader"].get_obj()["receiptTrie"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("bloom"))
|
||||
tmp.logBloom = LogBloom(blObj["blockHeader"].get_obj()["bloom"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("difficulty"))
|
||||
tmp.difficulty = toInt(blObj["blockHeader"].get_obj()["difficulty"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("number"))
|
||||
tmp.number = toInt(blObj["blockHeader"].get_obj()["number"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("gasLimit"))
|
||||
tmp.gasLimit = toInt(blObj["blockHeader"].get_obj()["gasLimit"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("gasUsed"))
|
||||
tmp.gasUsed = toInt(blObj["blockHeader"].get_obj()["gasUsed"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("timestamp"))
|
||||
tmp.timestamp = toInt(blObj["blockHeader"].get_obj()["timestamp"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("extraData"))
|
||||
tmp.extraData = importByteArray(blObj["blockHeader"].get_obj()["extraData"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("mixHash"))
|
||||
tmp.mixHash = h256(blObj["blockHeader"].get_obj()["mixHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("seedHash"))
|
||||
tmp.seedHash = h256(blObj["blockHeader"].get_obj()["seedHash"].get_str());
|
||||
|
||||
// find new valid nonce
|
||||
|
||||
if (tmp != current_BlockHeader)
|
||||
{
|
||||
current_BlockHeader = tmp;
|
||||
|
||||
ProofOfWork pow;
|
||||
std::pair<MineInfo, Ethash::Proof> ret;
|
||||
while (!ProofOfWork::verify(current_BlockHeader))
|
||||
{
|
||||
ret = pow.mine(current_BlockHeader, 1000, true, true); // tie(ret, blockFromFields.nonce)
|
||||
Ethash::assignResult(ret.second, current_BlockHeader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// take the blockheader as is
|
||||
const bytes c_blockRLP = createBlockRLPFromFields(blObj["blockHeader"].get_obj());
|
||||
const RLP c_bRLP(c_blockRLP);
|
||||
current_BlockHeader.populateFromHeader(c_bRLP, false);
|
||||
}
|
||||
overwriteBlockHeader(current_BlockHeader, blObj);
|
||||
}
|
||||
|
||||
// write block header
|
||||
@ -321,10 +200,11 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
oBlockHeader["gasLimit"] = toString(current_BlockHeader.gasLimit);
|
||||
oBlockHeader["gasUsed"] = toString(current_BlockHeader.gasUsed);
|
||||
oBlockHeader["timestamp"] = toString(current_BlockHeader.timestamp);
|
||||
oBlockHeader["extraData"] = toHex(current_BlockHeader.extraData);
|
||||
oBlockHeader["extraData"] ="0x" + toHex(current_BlockHeader.extraData);
|
||||
oBlockHeader["mixHash"] = toString(current_BlockHeader.mixHash);
|
||||
oBlockHeader["seedHash"] = toString(current_BlockHeader.seedHash);
|
||||
oBlockHeader["nonce"] = toString(current_BlockHeader.nonce);
|
||||
oBlockHeader["hash"] = toString(current_BlockHeader.hash);
|
||||
|
||||
blObj["blockHeader"] = oBlockHeader;
|
||||
|
||||
@ -506,7 +386,9 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
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 in rlp and in transaction 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
|
||||
@ -516,6 +398,137 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
|
||||
}
|
||||
}
|
||||
|
||||
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("seedHash"))
|
||||
rlpStream << importByteArray(_tObj["seedHash"].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& current_BlockHeader, mObject& blObj)
|
||||
{
|
||||
if (blObj["blockHeader"].get_obj().size() != 14)
|
||||
{
|
||||
|
||||
BlockInfo tmp = current_BlockHeader;
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("parentHash"))
|
||||
tmp.parentHash = h256(blObj["blockHeader"].get_obj()["parentHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("uncleHash"))
|
||||
tmp.sha3Uncles = h256(blObj["blockHeader"].get_obj()["uncleHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("coinbase"))
|
||||
tmp.coinbaseAddress = Address(blObj["blockHeader"].get_obj()["coinbase"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("stateRoot"))
|
||||
tmp.stateRoot = h256(blObj["blockHeader"].get_obj()["stateRoot"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("transactionsTrie"))
|
||||
tmp.transactionsRoot = h256(blObj["blockHeader"].get_obj()["transactionsTrie"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("receiptTrie"))
|
||||
tmp.receiptsRoot = h256(blObj["blockHeader"].get_obj()["receiptTrie"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("bloom"))
|
||||
tmp.logBloom = LogBloom(blObj["blockHeader"].get_obj()["bloom"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("difficulty"))
|
||||
tmp.difficulty = toInt(blObj["blockHeader"].get_obj()["difficulty"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("number"))
|
||||
tmp.number = toInt(blObj["blockHeader"].get_obj()["number"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("gasLimit"))
|
||||
tmp.gasLimit = toInt(blObj["blockHeader"].get_obj()["gasLimit"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("gasUsed"))
|
||||
tmp.gasUsed = toInt(blObj["blockHeader"].get_obj()["gasUsed"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("timestamp"))
|
||||
tmp.timestamp = toInt(blObj["blockHeader"].get_obj()["timestamp"]);
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("extraData"))
|
||||
tmp.extraData = importByteArray(blObj["blockHeader"].get_obj()["extraData"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("mixHash"))
|
||||
tmp.mixHash = h256(blObj["blockHeader"].get_obj()["mixHash"].get_str());
|
||||
|
||||
if (blObj["blockHeader"].get_obj().count("seedHash"))
|
||||
tmp.seedHash = h256(blObj["blockHeader"].get_obj()["seedHash"].get_str());
|
||||
|
||||
// find new valid nonce
|
||||
|
||||
if (tmp != current_BlockHeader)
|
||||
{
|
||||
current_BlockHeader = tmp;
|
||||
|
||||
ProofOfWork pow;
|
||||
std::pair<MineInfo, Ethash::Proof> ret;
|
||||
while (!ProofOfWork::verify(current_BlockHeader))
|
||||
{
|
||||
ret = pow.mine(current_BlockHeader, 1000, true, true); // tie(ret, blockFromFields.nonce)
|
||||
Ethash::assignResult(ret.second, current_BlockHeader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// take the blockheader as is
|
||||
const bytes c_blockRLP = createBlockRLPFromFields(blObj["blockHeader"].get_obj());
|
||||
const RLP c_bRLP(c_blockRLP);
|
||||
current_BlockHeader.populateFromHeader(c_bRLP, false);
|
||||
}
|
||||
}
|
||||
} }// Namespace Close
|
||||
|
||||
|
||||
@ -536,6 +549,10 @@ 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(userDefinedFileBc)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user