aboutsummaryrefslogtreecommitdiffstats
path: root/JSONSchema/st-schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'JSONSchema/st-schema.json')
-rw-r--r--JSONSchema/st-schema.json354
1 files changed, 138 insertions, 216 deletions
diff --git a/JSONSchema/st-schema.json b/JSONSchema/st-schema.json
index 7b1536dae..fa4ad181a 100644
--- a/JSONSchema/st-schema.json
+++ b/JSONSchema/st-schema.json
@@ -1,169 +1,47 @@
{
"definitions": {
- "EmptyString": {
- "type": "string",
- "pattern": "^$"
- },
- "HexData": {
- "description": "Hex data. see https://github.com/ethereum/wiki/wiki/JSON-RPC#hex-value-encoding",
- "pattern": "^0x([0-9a-fA-F][0-9a-fA-F])*$",
- "type": "string"
- },
- "HexQuantity": {
- "description": "Hex quantity. see https://github.com/ethereum/wiki/wiki/JSON-RPC#hex-value-encoding",
- "pattern": "(^0x0$)|(^0x[1-9a-fA-F][0-9a-fA-F]*$)",
- "type": "string"
- },
- "ConfusedHexType": {
- "anyOf": [
- { "$ref": "#/definitions/HexData" },
- { "$ref": "#/definitions/HexQuantity" }
- ]
- },
- "HexDataOrEmpty": {
- "oneOf": [
- { "$ref": "#/definitions/HexData" },
- { "$ref": "#/definitions/EmptyString" }
- ]
- },
- "HexNoPrefix" : {
- "pattern": "^([0-9a-fA-F][0-9a-fA-F])+$",
- "type": "string"
- },
- "HexMaybePrefix": {
- "oneOf": [
- { "$ref": "#/definitions/HexNoPrefix" },
- { "$ref": "#/definitions/HexData" }
- ]
- },
- "HexMaybePrefixOrEmpty": {
- "oneOf": [
- { "$ref": "#/definitions/HexMaybePrefix" },
- { "$ref": "#/definitions/EmptyString" }
- ]
- },
- "IntegerString": {
- "pattern": "^[0-9]+$",
- "type": "string"
- },
- "IntegerOrEmpty": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerString" },
- { "$ref": "#/definitions/EmptyString" }
- ]
- },
- "IntegerOrNumber": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerString" },
- { "type": "number" }
- ]
- },
- "IntegerOrNumberOrConfusedHex": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerOrNumber" },
- { "$ref": "#/definitions/ConfusedHexType" }
- ]
- },
- "IntegerOrEmptyOrHexQuantity": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerOrEmpty" },
- { "$ref": "#/definitions/HexQuantity" }
- ]
- },
- "IntegerOrHexQuantity": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerString" },
- { "$ref": "#/definitions/HexQuantity" }
- ]
- },
- "IntegerOrConfusedHex": {
- "anyOf": [
- { "$ref": "#/definitions/IntegerString" },
- { "$ref": "#/definitions/ConfusedHexType" }
- ]
- },
- "IntegerOrEmptyOrConfusedHex": {
- "oneOf": [
- { "$ref": "#/definitions/IntegerOrEmpty" },
- { "$ref": "#/definitions/ConfusedHexType" }
- ]
- },
- "PreStateAccount": {
- "type": "object",
- "additionalproperties": true,
- "properties": {
- "balance": { "$ref": "#/definitions/ConfusedHexType" },
- "code": { "$ref": "#/definitions/HexMaybePrefixOrEmpty" },
- "nonce": { "$ref": "#/definitions/ConfusedHexType" },
- "storage": {
- "type": "object",
- "additionalProperties": false,
- "patternProperties": {
- "^0x[0-9a-f]+": {
- "description": "storage key with 0x. data is HexData",
- "$ref": "#/definitions/HexData"
- }
- }
- }
- },
- "required": [
- "balance",
- "code",
- "nonce"
- ]
- },
- "TxSigR": {
- "oneOf": [
- { "enum" : [ "0x00" ] }
- ]
- },
- "TxSigS": {
- "oneOf": [
- { "enum" : [ "0x00" ] }
- ]
- },
- "TxSigV": {
- "description": "a value of 0 is an invalid chainId, but used in a test case",
- "oneOf": [
- { "enum" : [ "0x00", "0x01" ] }
- ]
- },
- "HexLen40": {
- "pattern": "^0x[0-9a-fA-F]{40}$",
- "type": "string"
- },
- "HexNoPrefixLen40": {
- "pattern": "^[0-9a-fA-F]{40}$",
- "type": "string"
- },
- "AddressMaybePrefixOrEmpty" : {
- "oneOf": [
- { "$ref": "#/definitions/HexLen40" },
- { "$ref": "#/definitions/HexNoPrefixLen40" },
- { "$ref": "#/definitions/EmptyString" }
- ]
- },
- "Transaction": {
- "type": "object",
+ "NullSenderTransaction": {
"additionalProperties": true,
"not": {
- "required": ["r, s, v"]
+ "required": [
+ "secretKey"
+ ]
},
"properties": {
"data": {
- "items": { "$ref": "#/definitions/HexDataOrEmpty" },
+ "items": {
+ "$ref": "#/definitions/HexMaybePrefixOrEmpty"
+ },
"type": "array"
},
"gasLimit": {
- "items": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
+ "items": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
"type": "array"
},
- "gasPrice": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
- "nonce": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
- "secretKey": { "$ref": "#/definitions/HexMaybePrefix" },
- "to": { "$ref": "#/definitions/AddressMaybePrefixOrEmpty"},
+ "gasPrice": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
+ "nonce": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
+ "r": {
+ "$ref": "#/definitions/TxSigR"
+ },
+ "s": {
+ "$ref": "#/definitions/TxSigS"
+ },
+ "to": {
+ "$ref": "#/definitions/AddressMaybePrefixOrEmpty"
+ },
+ "v": {
+ "$ref": "#/definitions/TxSigV"
+ },
"value": {
- "items": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
+ "items": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
"type": "array"
}
},
@@ -172,34 +50,80 @@
"gasLimit",
"gasPrice",
"nonce",
- "secretKey",
+ "r",
+ "s",
+ "v",
"to",
"value"
- ]
+ ],
+ "type": "object"
},
- "NullSenderTransaction": {
- "type": "object",
+ "PreStateAccount": {
+ "additionalproperties": true,
+ "properties": {
+ "balance": {
+ "$ref": "#/definitions/ConfusedHexType"
+ },
+ "code": {
+ "$ref": "#/definitions/HexMaybePrefixOrEmpty"
+ },
+ "nonce": {
+ "$ref": "#/definitions/ConfusedHexType"
+ },
+ "storage": {
+ "additionalProperties": false,
+ "patternProperties": {
+ "^0x[0-9a-f]+": {
+ "$ref": "#/definitions/HexData",
+ "description": "storage key with 0x. data is HexData"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "balance",
+ "code",
+ "nonce"
+ ],
+ "type": "object"
+ },
+ "Transaction": {
"additionalProperties": true,
"not": {
- "required": ["secretKey"]
+ "required": [
+ "r, s, v"
+ ]
},
"properties": {
"data": {
- "items": { "$ref": "#/definitions/HexMaybePrefixOrEmpty" },
+ "items": {
+ "$ref": "#/definitions/HexDataOrEmpty"
+ },
"type": "array"
},
"gasLimit": {
- "items": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
+ "items": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
"type": "array"
},
- "gasPrice": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
- "nonce": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
- "r": { "$ref": "#/definitions/TxSigR" },
- "s": { "$ref": "#/definitions/TxSigS" },
- "to": { "$ref": "#/definitions/AddressMaybePrefixOrEmpty"},
- "v": { "$ref": "#/definitions/TxSigV" },
+ "gasPrice": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
+ "nonce": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
+ "secretKey": {
+ "$ref": "#/definitions/HexMaybePrefix"
+ },
+ "to": {
+ "$ref": "#/definitions/AddressMaybePrefixOrEmpty"
+ },
"value": {
- "items": { "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex" },
+ "items": {
+ "$ref": "#/definitions/IntegerOrEmptyOrConfusedHex"
+ },
"type": "array"
}
},
@@ -208,54 +132,48 @@
"gasLimit",
"gasPrice",
"nonce",
- "r",
- "s",
- "v",
+ "secretKey",
"to",
"value"
+ ],
+ "type": "object"
+ },
+ "TxSigR": {
+ "oneOf": [
+ {
+ "enum": [
+ "0x00"
+ ]
+ }
]
},
- "TransactionResults": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "hash": {
- "$ref": "#/definitions/HexData"
- },
- "logs": {},
- "indexes": {
- "additionalProperties": false,
- "properties": {
- "data": {
- "type": "integer"
- },
- "gas": {
- "type": "integer"
- },
- "value": {
- "type": "integer"
- }
- },
- "required": [
- "data",
- "gas",
- "value"
- ],
- "type": "object"
- }
- },
- "required": [
- "hash",
- "indexes"
- ],
- "type": "object"
- },
- "type": "array"
+ "TxSigS": {
+ "oneOf": [
+ {
+ "enum": [
+ "0x00"
+ ]
+ }
+ ]
+ },
+ "TxSigV": {
+ "description": "a value of 0 is an invalid chainId, but used in a test case",
+ "oneOf": [
+ {
+ "enum": [
+ "0x00",
+ "0x01"
+ ]
+ }
+ ]
}
},
"patternProperties": {
"^.*$": {
"properties": {
+ "_info": {
+ "$ref": "#/definitions/Info"
+ },
"env": {
"additionalproperties": false,
"properties": {
@@ -294,22 +212,22 @@
"post": {
"additionalProperties": false,
"properties": {
- "EIP150": {
+ "Byzantium": {
"$ref": "#/definitions/TransactionResults"
},
- "EIP158": {
+ "Constantinople": {
"$ref": "#/definitions/TransactionResults"
},
- "Frontier": {
+ "EIP150": {
"$ref": "#/definitions/TransactionResults"
},
- "Homestead": {
+ "EIP158": {
"$ref": "#/definitions/TransactionResults"
},
- "Byzantium": {
+ "Frontier": {
"$ref": "#/definitions/TransactionResults"
},
- "Constantinople": {
+ "Homestead": {
"$ref": "#/definitions/TransactionResults"
}
},
@@ -319,16 +237,20 @@
"additionalProperties": false,
"patternProperties": {
"^0x[0-9a-f]*": {
- "description": "prestate account address with 0x prefix",
- "$ref": "#/definitions/PreStateAccount"
+ "$ref": "#/definitions/PreStateAccount",
+ "description": "prestate account address with 0x prefix"
}
},
"type": "object"
},
"transaction": {
"oneOf": [
- { "$ref": "#/definitions/Transaction" },
- { "$ref": "#/definitions/NullSenderTransaction" }
+ {
+ "$ref": "#/definitions/Transaction"
+ },
+ {
+ "$ref": "#/definitions/NullSenderTransaction"
+ }
]
}
},