aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCJentzsch <jentzsch.software@gmail.com>2015-03-04 07:24:06 +0800
committerGav Wood <i@gavwood.com>2015-03-06 19:46:23 +0800
commit3e88362dff2ad0b5c190361995a26b7f5bb3b346 (patch)
treed3aa300795c03b670421605ce2783299a0443fcd
parent298919844b3f6548e200637a0446a4bbd0251b75 (diff)
downloaddexon-solidity-3e88362dff2ad0b5c190361995a26b7f5bb3b346.tar.gz
dexon-solidity-3e88362dff2ad0b5c190361995a26b7f5bb3b346.tar.zst
dexon-solidity-3e88362dff2ad0b5c190361995a26b7f5bb3b346.zip
more block tests + bugfix for longer chains
-rw-r--r--bcBlockChainTestFiller.json15
-rw-r--r--bcInvalidHeaderTestFiller.json (renamed from blInvalidHeaderTestFiller.json)427
-rw-r--r--bcValidBlockTestFiller.json (renamed from blValidBlockTestFiller.json)320
-rw-r--r--blockchain.cpp45
4 files changed, 431 insertions, 376 deletions
diff --git a/bcBlockChainTestFiller.json b/bcBlockChainTestFiller.json
index 050def25..75ed6294 100644
--- a/bcBlockChainTestFiller.json
+++ b/bcBlockChainTestFiller.json
@@ -39,6 +39,21 @@
],
"uncleHeaders" : [
]
+ },
+ {
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "8000000",
+ "gasPrice" : "0",
+ "nonce" : "1",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "10"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
]
}
diff --git a/blInvalidHeaderTestFiller.json b/bcInvalidHeaderTestFiller.json
index 482eafc5..bba00834 100644
--- a/blInvalidHeaderTestFiller.json
+++ b/bcInvalidHeaderTestFiller.json
@@ -1,8 +1,5 @@
{
"log1_wrongBlockNumber" : {
- "blockHeader" : {
- "number" : "2"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -33,25 +30,30 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "number" : "2"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"log1_wrongBloom" : {
- "blockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
- },
+
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -68,6 +70,7 @@
"transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
},
+
"pre" : {
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
"balance" : "10000000000",
@@ -82,25 +85,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongCoinbase" : {
- "blockHeader" : {
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -131,25 +138,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongDifficulty" : {
- "blockHeader" : {
- "difficulty" : "10000"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -180,25 +191,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "difficulty" : "10000"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"DifferentExtraData" : {
- "blockHeader" : {
- "extraData" : "42"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -229,25 +244,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "extraData" : "42"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongGasLimit" : {
- "blockHeader" : {
- "gasLimit" : "100000"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -278,25 +297,30 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "gasLimit" : "100000"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
+
]
},
"wrongGasUsed" : {
- "blockHeader" : {
- "gasUsed" : "0"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -327,25 +351,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "gasUsed" : "0"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongNumber" : {
- "blockHeader" : {
- "number" : "0"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -376,25 +404,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "number" : "0"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongParentHash" : {
- "blockHeader" : {
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -425,25 +457,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
- "wrongReceiptTrie" : {
- "blockHeader" : {
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- },
+ "wrongReceiptTrie" : {
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -474,25 +510,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongStateRoot" : {
- "blockHeader" : {
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -523,25 +563,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongTimestamp" : {
- "blockHeader" : {
- "timestamp" : "0x54c98c80"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -572,25 +616,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "timestamp" : "0x54c98c80"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
- "wrongTransactionsTrie" : {
- "blockHeader" : {
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- },
+ "wrongTransactionsTrie" : {
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -621,25 +669,29 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "transactionsTrie" : "0x55e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
"wrongUncleHash" : {
- "blockHeader" : {
- "uncleHash" : "0x0dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
"genesisBlockHeader" : {
"bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
@@ -670,18 +722,25 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "blockHeader" : {
+ "uncleHash" : "0x0dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
}
}
diff --git a/blValidBlockTestFiller.json b/bcValidBlockTestFiller.json
index 8099c0dd..3ce79cf4 100644
--- a/blValidBlockTestFiller.json
+++ b/bcValidBlockTestFiller.json
@@ -1,43 +1,4 @@
{
- "diffTooLowToChange" : {
- "genesisBlockHeader" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "1023",
- "extraData" : "42",
- "gasLimit" : "100000",
- "gasUsed" : "0",
- "nonce" : "0x498e88f5c14b0b60d6e14ce9c6cc958cbe16a1df8dd90210e50d2d77562a348d",
- "number" : "0",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "pre" : {
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "10000000000",
- "nonce" : "0",
- "code" : "",
- "storage": {}
- }
- },
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "850",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
- }
- ],
- "uncleHeaders" : [
- ]
- },
"diff1024" : {
"genesisBlockHeader" : {
@@ -64,19 +25,24 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "850",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "850",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "10"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
+
},
"gasPrice0" : {
@@ -104,18 +70,22 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "850",
- "gasPrice" : "0",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "85000",
+ "gasPrice" : "0",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "10"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
@@ -144,18 +114,22 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "850",
- "gasPrice" : "0",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "1000001",
+ "gasPrice" : "0",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
@@ -184,18 +158,22 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "500",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "10"
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "500",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "10"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
@@ -224,27 +202,31 @@
"storage": {}
}
},
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "500",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "7000000000"
- },
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "500",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "8000000000"
+ "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" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
@@ -273,27 +255,31 @@
"storage": {}
}
},
- "transactions" : [
- {
- "data" : "",
- "gasLimit" : "500",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
- },
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "500",
- "gasPrice" : "9",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "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" : [
+ ]
}
- ],
- "uncleHeaders" : [
]
},
@@ -328,54 +314,64 @@
"storage": {}
}
},
- "transactions" : [
+ "blocks" : [
{
- "data" : "",
- "gasLimit" : "5000",
- "gasPrice" : "10",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "5000000000"
+ "transactions" : [
+ {
+ "data" : "",
+ "gasLimit" : "50000",
+ "gasPrice" : "10",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "5000000000"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
}
- ],
- "uncleHeaders" : [
- ],
-
- "firstBlockTest" : {
- "block" : {
- "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
- "difficulty" : "023101",
- "extraData" : "42",
- "gasLimit" : "0x0dddb6",
- "gasUsed" : "100",
- "nonce" : "0x498e88f5c14b0b60d6e14ce9c6cc958cbe16a1df8dd90210e50d2d77562a348d",
- "number" : "62",
- "parentHash" : "0xefb4db878627027c81b3bb1c7dd3a18dae3914a49cdd24a3e40ab3bbfbb240c5",
- "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
- "timestamp" : "0x54c98c81",
- "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
- },
- "pre" : {
- },
- "transactions" : [
- {
- "data" : "0x60056013565b6101918061001d6000396000f35b3360008190555056006001600060e060020a6000350480630a874df61461003a57806341c0e1b514610058578063a02b161e14610066578063dbbdf0831461007757005b610045600435610149565b80600160a060020a031660005260206000f35b610060610161565b60006000f35b6100716004356100d4565b60006000f35b61008560043560243561008b565b60006000f35b600054600160a060020a031632600160a060020a031614156100ac576100b1565b6100d0565b8060018360005260205260406000208190555081600060005260206000a15b5050565b600054600160a060020a031633600160a060020a031614158015610118575033600160a060020a0316600182600052602052604060002054600160a060020a031614155b61012157610126565b610146565b600060018260005260205260406000208190555080600060005260206000a15b50565b60006001826000526020526040600020549050919050565b600054600160a060020a031633600160a060020a0316146101815761018f565b600054600160a060020a0316ff5b56",
- "gasLimit" : "0x0f3e6f",
- "gasPrice" : "0x09184e72a000",
- "nonce" : "0",
- "r" : "0xd4287e915ebac7a8af390560fa53c8f0b7f13802ba0393d7afa5823c2560ca89",
- "s" : "0xae75db31a34f7e386ad459646de98ec3a1c88cc91b11620b4ffd86871f579942",
- "to" : "",
- "v" : "0x1b",
- "value" : ""
- }
- ],
- }
+ ]
+ },
+ "dataTx" : {
+ "genesisBlockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "023101",
+ "extraData" : "42",
+ "gasLimit" : "0x0dddb6",
+ "gasUsed" : "100",
+ "nonce" : "0x498e88f5c14b0b60d6e14ce9c6cc958cbe16a1df8dd90210e50d2d77562a348d",
+ "number" : "62",
+ "parentHash" : "0xefb4db878627027c81b3bb1c7dd3a18dae3914a49cdd24a3e40ab3bbfbb240c5",
+ "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a",
+ "timestamp" : "0x54c98c81",
+ "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "pre" : {
+ },
+ "blocks" : [
+ {
+ "transactions" : [
+ {
+ "data" : "0x60056013565b6101918061001d6000396000f35b3360008190555056006001600060e060020a6000350480630a874df61461003a57806341c0e1b514610058578063a02b161e14610066578063dbbdf0831461007757005b610045600435610149565b80600160a060020a031660005260206000f35b610060610161565b60006000f35b6100716004356100d4565b60006000f35b61008560043560243561008b565b60006000f35b600054600160a060020a031632600160a060020a031614156100ac576100b1565b6100d0565b8060018360005260205260406000208190555081600060005260206000a15b5050565b600054600160a060020a031633600160a060020a031614158015610118575033600160a060020a0316600182600052602052604060002054600160a060020a031614155b61012157610126565b610146565b600060018260005260205260406000208190555080600060005260206000a15b50565b60006001826000526020526040600020549050919050565b600054600160a060020a031633600160a060020a0316146101815761018f565b600054600160a060020a0316ff5b56",
+ "gasLimit" : "0x0f3e6f",
+ "gasPrice" : "0x09184e72a000",
+ "nonce" : "0",
+ "r" : "0xd4287e915ebac7a8af390560fa53c8f0b7f13802ba0393d7afa5823c2560ca89",
+ "s" : "0xae75db31a34f7e386ad459646de98ec3a1c88cc91b11620b4ffd86871f579942",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : ""
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ }
+ ]
}
}
+
diff --git a/blockchain.cpp b/blockchain.cpp
index 7dad5b4f..69ea8fa2 100644
--- a/blockchain.cpp
+++ b/blockchain.cpp
@@ -81,7 +81,7 @@ bytes createBlockRLPFromFields(mObject& _tObj)
return rlpStream.out();
}
-void doBlockTests(json_spirit::mValue& _v, bool _fillin)
+void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
{
for (auto& i: _v.get_obj())
{
@@ -271,7 +271,6 @@ void doBlockTests(json_spirit::mValue& _v, bool _fillin)
if (tmp != current_BlockHeader)
{
current_BlockHeader = tmp;
- cout << "new header!\n";
ProofOfWork pow;
MineInfo ret;
while (!ProofOfWork::verify(current_BlockHeader.headerHash(WithoutNonce), current_BlockHeader.nonce, current_BlockHeader.difficulty))
@@ -343,14 +342,9 @@ void doBlockTests(json_spirit::mValue& _v, bool _fillin)
try
{
- ImportTest importerTmp(o["pre"].get_obj());
- State stateTmp(Address(), OverlayDB(), BaseState::Empty);
- importerTmp.importState(o["pre"].get_obj(), stateTmp);
- stateTmp.commit();
- BlockChain bcTmp(block.out(), getDataDir() + "/tmpBlockChain.bc", true);
- stateTmp.sync(bcTmp);
- bc.import(block2.out(), stateTmp.db());
- stateTmp.sync(bcTmp);
+ state.sync(bc);
+ bc.import(block2.out(), state.db());
+ state.sync(bc);
}
// if exception is thrown, RLP is invalid and no blockHeader, Transaction list, or Uncle list should be given
catch (...)
@@ -505,32 +499,23 @@ BOOST_AUTO_TEST_SUITE(BlockChainTests)
BOOST_AUTO_TEST_CASE(bcBlockChainTest)
{
- dev::test::executeTests("bcBlockChainTest", "/BlockTests", dev::test::doBlockTests);
+ dev::test::executeTests("bcBlockChainTest", "/BlockTests", dev::test::doBlockchainTests);
}
-//BOOST_AUTO_TEST_CASE(blValidBlockTest)
-//{
-// dev::test::executeTests("blValidBlockTest", "/BlockTests", dev::test::doBlockTests);
-//}
-
-//BOOST_AUTO_TEST_CASE(blInvalidTransactionRLP)
-//{
-// dev::test::executeTests("blInvalidTransactionRLP", "/BlockTests", dev::test::doBlockTests);
-//}
+BOOST_AUTO_TEST_CASE(bcValidBlockTest)
+{
+ dev::test::executeTests("bcValidBlockTest", "/BlockTests", dev::test::doBlockchainTests);
+}
-//BOOST_AUTO_TEST_CASE(blInvalidHeaderTest)
-//{
-// dev::test::executeTests("blInvalidHeaderTest", "/BlockTests", dev::test::doBlockTests);
-//}
+BOOST_AUTO_TEST_CASE(bcInvalidHeaderTest)
+{
+ dev::test::executeTests("bcInvalidHeaderTest", "/BlockTests", dev::test::doBlockchainTests);
+}
-//BOOST_AUTO_TEST_CASE(blForkBlocks)
-//{
-// dev::test::executeTests("blForkBlocks", "/BlockTests", dev::test::doBlockTests);
-//}
-BOOST_AUTO_TEST_CASE(userDefinedFileBl)
+BOOST_AUTO_TEST_CASE(userDefinedFileBc)
{
- dev::test::userDefinedTest("--bltest", dev::test::doBlockTests);
+ dev::test::userDefinedTest("--bctest", dev::test::doBlockchainTests);
}
BOOST_AUTO_TEST_SUITE_END()