Skip to content

Commit

Permalink
Merge pull request #547 from ethereum/consttransition
Browse files Browse the repository at this point in the history
constantinople transition test
  • Loading branch information
winsvega committed Nov 19, 2018
2 parents b0491a3 + e091b9b commit 74cc22b
Show file tree
Hide file tree
Showing 10 changed files with 799 additions and 26 deletions.

Large diffs are not rendered by default.

27 changes: 22 additions & 5 deletions JSONSchema/bc-filler-schema.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
{
"definitions": {
"BlockchainExpectSection": {
"additionalProperties": false,
"properties": {
"network": {
"$ref": "#/definitions/Networks"
},
"result": {
"$ref": "#/definitions/AccountMap"
}
},
"type": "array"
},
"BadHexData": {
"pattern": "^0x[0-9a-zA-Z]*$",
"type": "string"
Expand Down Expand Up @@ -313,13 +325,18 @@
},
"type": "array"
},
"network": {
"type": "string"
},
"expect": {
"patternProperties": {
"^0x[0-9a-f]*": {
"$ref": "#/definitions/PreStateAccount",
"description": "poststate account address with 0x prefix"
"oneOf": [
{
"$ref": "#/definitions/AccountMap"
},
{
"$ref": "#/definitions/BlockchainExpectSection"
}
}
]
},
"genesisBlockHeader": {
"$ref": "#/definitions/BlockHeader"
Expand Down
39 changes: 39 additions & 0 deletions JSONSchema/definitions.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,44 @@
{
"definitions": {
"AccountMap": {
"additionalProperties": false,
"patternProperties": {
"^0x[0-9a-fA-F]{40}": {
"$ref": "#/definitions/ExpectAccount",
"description": "filler prestate addresses with 0x prefix"
},
"^[0-9a-fA-F]{40}": {
"$ref": "#/definitions/ExpectAccount",
"description": "filler prestate addresses without 0x prefix"
}
},
"type": "object"
},
"ExpectAccount": {
"additionalproperties": true,
"properties": {
"balance": {
"$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
},
"code": {
"type": "string"
},
"nonce": {
"$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
},
"storage": {
"additionalProperties": false,
"patternProperties": {
"^0x[0-9a-f]+": {
"$ref": "#/definitions/PrefixedHexOrInteger",
"description": "storage key with 0x prefix, just the prefix `0x` is null and thus not permitted, a hex quantity is permitted. for the storage value, only hex data is permitted in filled test. Both decimal and hex allowed for the fillers."
}
},
"type": "object"
}
},
"type": "object"
},
"AddressMaybePrefixOrEmpty": {
"oneOf": [
{
Expand Down
14 changes: 0 additions & 14 deletions JSONSchema/st-filler-schema.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,5 @@
{
"definitions": {
"AccountMap": {
"additionalProperties": false,
"patternProperties": {
"^0x[0-9a-fA-F]{40}": {
"$ref": "#/definitions/PreStateAccount",
"description": "filler prestate addresses with 0x prefix"
},
"^[0-9a-fA-F]{40}": {
"$ref": "#/definitions/PreStateAccount",
"description": "filler prestate addresses without 0x prefix"
}
},
"type": "object"
},
"NullSenderTransaction": {
"properties": {
"data": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
{
"ConstantinopleTransition" : {
"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"
},
"network" : "ByzantiumToConstantinopleAt5",
"expect" : {
"1000000000000000000000000000000000000001" : {
"balance" : "9"
},
"0x8888f1f195afa192cfee860698584c030f4c9db1" : {
"balance" : "22250000000000370800"
}
},
"pre" : {

"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
"balance" : "10000000000",
"nonce" : "0",
"code" : "",
"storage": {}
},
"1000000000000000000000000000000000000001" : {
"balance" : "0",
"nonce" : "0",
"code" : "{ [[ (CALLDATALOAD 0) ]] (DIFFICULTY) }",
"storage": {}
}
},
"blocks" : [
{
"blocknumber" : "1",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000001",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
},
{
"blocknumber" : "2",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000002",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "1",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
},
{
"blocknumber" : "3",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000003",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "2",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
},
{
"blocknumber" : "4",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000004",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "3",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
},
{
"blocknumber" : "5",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000005",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "4",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
{
"populateFromBlock" : "2",
"coinbase" : "0cde5374fce5edbc8e2a8697c15331677e6ebf0b",
"overwriteAndRedoPoW" : "coinbase"
}
]
},
{
"blocknumber" : "6",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000006",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "5",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
{
"populateFromBlock" : "3",
"coinbase" : "1cde5374fce5edbc8e2a8697c15331677e6ebf0b",
"overwriteAndRedoPoW" : "coinbase"
},
{
"populateFromBlock" : "3",
"coinbase" : "2cde5374fce5edbc8e2a8697c15331677e6ebf0b",
"overwriteAndRedoPoW" : "coinbase"
}
]
},
{
"blocknumber" : "7",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000007",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "6",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
{
"populateFromBlock" : "4",
"coinbase" : "3cde5374fce5edbc8e2a8697c15331677e6ebf0b",
"overwriteAndRedoPoW" : "coinbase"
}
]
},
{
"blocknumber" : "8",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000008",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "7",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
},
{
"blocknumber" : "9",
"transactions" : [
{
"data" : "0x0000000000000000000000000000000000000000000000000000000000000009",
"gasLimit" : "600000",
"gasPrice" : "1",
"nonce" : "8",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "1000000000000000000000000000000000000001",
"value" : "1"
}
],
"uncleHeaders" : [
]
}
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
},
"1000000000000000000000000000000000000007" : {
"storage" : {
"0x" : "10000000000"
"0x00" : "10000000000"
}
},
"1000000000000000000000000000000000000008" : {
"storage" : {
"0x" : "0"
"0x00" : "0"
}
},
"bf4ed7b27f1d666546e30d74d50d173d20bca754" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
},
"1000000000000000000000000000000000000007" : {
"storage" : {
"0x" : "10000000000"
"0x00" : "10000000000"
}
},
"1000000000000000000000000000000000000008" : {
"storage" : {
"0x" : "0"
"0x00" : "0"
}
},
"bf4ed7b27f1d666546e30d74d50d173d20bca754" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@
},
"1000000000000000000000000000000000000007" : {
"storage" : {
"0x" : "10000000000"
"0x00" : "10000000000"
}
},
"1000000000000000000000000000000000000008" : {
"storage" : {
"0x" : "0"
"0x00" : "0"
}
},
"bf4ed7b27f1d666546e30d74d50d173d20bca754" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"0x06" : "0x01",
"0x07" : "0x01",
"0x08" : "0x01",
"0x09" : "0x4176a",
"0x09" : "0x04176a",
"0x0a" : "0x057ee9",
"0x0b" : "0x5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643",
"0x64" : "0x11"
Expand Down
5 changes: 5 additions & 0 deletions test.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,12 @@ def validateSchema(testFile, schemaFile):
try:
jsonschema.validate(testInput, schema)
except:
from jsonschema import Draft4Validator
_logerror("Validation failed:", "schema", schemaFile, "on", testFile)
v = Draft4Validator(schema)
errors = sorted(v.iter_errors(testInput), key=lambda e: e.path)
for error in errors:
_logerror(error.message)

def validateTestFile(testFile):
if testFile.startswith("./src/VMTestsFiller/"):
Expand Down

0 comments on commit 74cc22b

Please sign in to comment.