aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoichi Hirai <i@yoichihirai.com>2017-06-14 01:32:19 +0800
committerYoichi Hirai <i@yoichihirai.com>2017-06-14 01:53:09 +0800
commitf2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d (patch)
tree3759937eecb0e7a366423049dc6ffc49641809a0 /src
parentb9303ecbfe2d032ac1d439ab6b3da3c07b22134a (diff)
downloadtangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.gz
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.bz2
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.lz
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.xz
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.zst
tangerine-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.zip
Add modexp tess from Pyethereum
Diffstat (limited to 'src')
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_22411_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_155000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_25000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_35000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_155000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_25000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_35000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_155000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_25000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_35000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_155000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_25000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_35000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_28948_11579_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_22000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_155000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_25000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_35000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_1000000Filler.json178
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_155000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_20500Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_22000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_35000Filler.json176
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_3711_37111_25000Filler.json176
96 files changed, 17012 insertions, 0 deletions
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_1000000Filler.json
new file mode 100644
index 000000000..d96267b0d
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_0_0_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9858"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824516",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175484",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_155000Filler.json
new file mode 100644
index 000000000..0034411a7
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_0_0_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b390"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824516",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175484",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_20500Filler.json
new file mode 100644
index 000000000..d92ba61da
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_0_0_0_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa62c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825894",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174106",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_22000Filler.json
new file mode 100644
index 000000000..d4947ea57
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_0_0_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xac08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824516",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175484",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_25000Filler.json
new file mode 100644
index 000000000..2a2c3777a
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_0_0_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb7c0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824516",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175484",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_35000Filler.json
new file mode 100644
index 000000000..dc08c09fe
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_0_0_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xded0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824516",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175484",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_1000000Filler.json
new file mode 100644
index 000000000..832889816
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_1_0_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9958"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_155000Filler.json
new file mode 100644
index 000000000..5190167c9
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_1_0_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b490"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_20500Filler.json
new file mode 100644
index 000000000..4fe82a282
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_0_1_0_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa72c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825638",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174362",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_22000Filler.json
new file mode 100644
index 000000000..809a92a2d
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_1_0_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xad08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_25000Filler.json
new file mode 100644
index 000000000..7ec03c16d
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_1_0_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb8c0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_35000Filler.json
new file mode 100644
index 000000000..436f724e3
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_1_0_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xdfd0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_1000000Filler.json
new file mode 100644
index 000000000..7eb163255
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_3_100_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf99d8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_155000Filler.json
new file mode 100644
index 000000000..863ae2cab
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_3_100_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b510"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_20500Filler.json
new file mode 100644
index 000000000..ffbfb0bc2
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_0_3_100_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa7ac"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825510",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174490",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_22000Filler.json
new file mode 100644
index 000000000..69a260ee2
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_3_100_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xad88"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_25000Filler.json
new file mode 100644
index 000000000..15b473e0f
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_3_100_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb940"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_35000Filler.json
new file mode 100644
index 000000000..55d0ccd5b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_0_3_100_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe050"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_1000000Filler.json
new file mode 100644
index 000000000..13f1c5b32
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_0_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9958"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_155000Filler.json
new file mode 100644
index 000000000..abf7d39e7
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_0_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b490"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_20500Filler.json
new file mode 100644
index 000000000..0b79f8683
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_1_0_0_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa72c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825638",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174362",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_22000Filler.json
new file mode 100644
index 000000000..95719e5a1
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_0_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xad08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_25000Filler.json
new file mode 100644
index 000000000..5dd99ecbe
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_0_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb8c0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_35000Filler.json
new file mode 100644
index 000000000..fa1aec1a7
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_0_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xdfd0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824257",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175743",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_1000000Filler.json
new file mode 100644
index 000000000..aa324649f
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_1_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf99d8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_155000Filler.json
new file mode 100644
index 000000000..4823ec787
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_1_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b510"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_20500Filler.json
new file mode 100644
index 000000000..a399c3ea8
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_1_0_1_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa7ac"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825510",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174490",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_22000Filler.json
new file mode 100644
index 000000000..f1cc29671
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_1_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xad88"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_25000Filler.json
new file mode 100644
index 000000000..c21e06c1b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_1_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb940"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_35000Filler.json
new file mode 100644
index 000000000..ab9977003
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_0_1_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe050"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824129",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175871",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_1000000Filler.json
new file mode 100644
index 000000000..99ddbe8ef
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_1_1_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9a58"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_155000Filler.json
new file mode 100644
index 000000000..8f15c501e
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_1_1_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b590"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_20500Filler.json
new file mode 100644
index 000000000..c619d53aa
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_1_1_1_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa82c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825382",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174618",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_22000Filler.json
new file mode 100644
index 000000000..e345844cf
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_1_1_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xae08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_25000Filler.json
new file mode 100644
index 000000000..5e92e3a9e
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_1_1_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb9c0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_35000Filler.json
new file mode 100644
index 000000000..2ae337f95
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_1_1_1_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe0d0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_22411_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_22411_22000Filler.json
new file mode 100644
index 000000000..63ac7c355
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_22411_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_22411_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf1c8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999806270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "193730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_1000000Filler.json
new file mode 100644
index 000000000..f90896c99
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_37120_37111_0_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0xfdd18"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999638991",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "361009",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_155000Filler.json
new file mode 100644
index 000000000..52ffaccdd
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_155000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_0_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x2f850"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999673526",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "326474",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_20500Filler.json
new file mode 100644
index 000000000..7e0a6bba1
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_0_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0xeaec"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999808026",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "191974",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_22000Filler.json
new file mode 100644
index 000000000..8d292c203
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_0_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0xf0c8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999806526",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "193474",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_25000Filler.json
new file mode 100644
index 000000000..49f817d64
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_25000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_0_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0xfc80"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999803526",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "196474",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_35000Filler.json
new file mode 100644
index 000000000..2e1056a0d
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_35000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_0_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x12390"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999793526",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "206474",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_1000000Filler.json
new file mode 100644
index 000000000..c260dcdd5
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_37120_37111_1_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfde18"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999638732",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "361268",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_155000Filler.json
new file mode 100644
index 000000000..983abec3f
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_155000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_1_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2f950"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999673270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "326730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_20500Filler.json
new file mode 100644
index 000000000..a6710ac3a
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_1_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xebec"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999807770",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "192230",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_25000Filler.json
new file mode 100644
index 000000000..bd55be068
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_25000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_1_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfd80"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999803270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "196730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_35000Filler.json
new file mode 100644
index 000000000..2b6e8e0ea
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_35000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_1_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x12490"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999793270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "206730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_1000000Filler.json
new file mode 100644
index 000000000..775912d6b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_37120_37111_37111_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0xfff58"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x3961ec903a448e057fbc76e10170d02f15b9b65c2f7fc8215f611ec6dc74cf91"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999630152",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "369848",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_155000Filler.json
new file mode 100644
index 000000000..98a717043
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_155000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_37111_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x31a90"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999664758",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "335242",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_20500Filler.json
new file mode 100644
index 000000000..80e16af5b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_37111_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x10d2c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999799258",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "200742",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_22000Filler.json
new file mode 100644
index 000000000..cbcfa5c27
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_37111_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x11308"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999797758",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "202242",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_25000Filler.json
new file mode 100644
index 000000000..5c3cbdbad
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_25000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_37111_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x11ec0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999794758",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "205242",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_35000Filler.json
new file mode 100644
index 000000000..013daa96b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_35000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_37111_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit": [
+ "0x145d0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999784758",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "215242",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_1000000Filler.json
new file mode 100644
index 000000000..e6f0cbdcf
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_37120_37111_97_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfde18"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xeff31f7855752a3582db9a0d965d5063f23d94003e66f8c5a8f8e8fe2ab24753"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999638732",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "361268",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_155000Filler.json
new file mode 100644
index 000000000..b076ba6db
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_155000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_97_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2f950"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999673270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "326730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_20500Filler.json
new file mode 100644
index 000000000..eea7a99eb
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_97_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xebec"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999807770",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "192230",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_22000Filler.json
new file mode 100644
index 000000000..fd0094173
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_97_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf1c8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999806270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "193730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_25000Filler.json
new file mode 100644
index 000000000..8c21e9f33
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_25000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_97_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfd80"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999803270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "196730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_35000Filler.json
new file mode 100644
index 000000000..66e430f63
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_35000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_37120_37111_97_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x12490"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999793270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "206730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_1000000Filler.json
new file mode 100644
index 000000000..78c28205b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_39936_1_55201_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfa318"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999821738",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "178262",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_155000Filler.json
new file mode 100644
index 000000000..683a61237
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_39936_1_55201_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2be50"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999821738",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "178262",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_20500Filler.json
new file mode 100644
index 000000000..d91ebd4d3
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_39936_1_55201_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb0ec"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823142",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176858",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_22000Filler.json
new file mode 100644
index 000000000..10160d57c
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_39936_1_55201_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb6c8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999821738",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "178262",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_25000Filler.json
new file mode 100644
index 000000000..bd7f385e0
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_39936_1_55201_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xc280"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999821738",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "178262",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_35000Filler.json
new file mode 100644
index 000000000..3f5de6462
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_39936_1_55201_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe990"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999821738",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "178262",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_1000000Filler.json
new file mode 100644
index 000000000..c3ec42953
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_09984_39936_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9b58"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999820951",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "179049",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_155000Filler.json
new file mode 100644
index 000000000..fdb1a9a7a
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_09984_39936_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b690"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999820951",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "179049",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_22000Filler.json
new file mode 100644
index 000000000..d7d9c24a3
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_3_09984_39936_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xaf08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823626",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176374",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_25000Filler.json
new file mode 100644
index 000000000..8fc1ca3ad
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_09984_39936_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xbac0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999820951",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "179049",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_35000Filler.json
new file mode 100644
index 000000000..23d912342
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_09984_39936_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe1d0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999820951",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "179049",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_28948_11579_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_28948_11579_20500Filler.json
new file mode 100644
index 000000000..88913605c
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_28948_11579_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_3_28948_11579_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa92c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825126",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174874",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_1000000Filler.json
new file mode 100644
index 000000000..a8ccc0903
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_5_100_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9a58"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_155000Filler.json
new file mode 100644
index 000000000..83e9b9396
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_5_100_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b590"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_20500Filler.json
new file mode 100644
index 000000000..a01d61b25
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_3_5_100_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa82c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825382",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174618",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_22000Filler.json
new file mode 100644
index 000000000..7cbdbd3e4
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_5_100_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xae08"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_25000Filler.json
new file mode 100644
index 000000000..8eaced4ea
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_5_100_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xb9c0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_35000Filler.json
new file mode 100644
index 000000000..cef836c38
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_3_5_100_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe0d0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999824001",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "175999",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_1000000Filler.json
new file mode 100644
index 000000000..d1e937c63
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_49_2401_2401_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf9ad8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823873",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176127",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_155000Filler.json
new file mode 100644
index 000000000..ad6011192
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_49_2401_2401_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2b610"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823873",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176127",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_20500Filler.json
new file mode 100644
index 000000000..bfc34ac02
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_49_2401_2401_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xa8ac"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999825254",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "174746",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_22000Filler.json
new file mode 100644
index 000000000..8cd1c4762
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_22000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_49_2401_2401_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xae88"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823873",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176127",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_25000Filler.json
new file mode 100644
index 000000000..48d1bcaf9
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_49_2401_2401_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xba40"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823873",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176127",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_35000Filler.json
new file mode 100644
index 000000000..35afd36d2
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_49_2401_2401_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xe150"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999823873",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "176127",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_1000000Filler.json
new file mode 100644
index 000000000..14b426000
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_55190_55190_42965_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfaf98"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999815958",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "184042",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_155000Filler.json
new file mode 100644
index 000000000..d06e250f1
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_155000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_55190_55190_42965_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2cad0"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999815958",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "184042",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_20500Filler.json
new file mode 100644
index 000000000..fc9400c0a
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_55190_55190_42965_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xbd6c"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999819942",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "180058",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_22000Filler.json
new file mode 100644
index 000000000..549791c47
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_55190_55190_42965_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xc348"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999818442",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "181558",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_25000Filler.json
new file mode 100644
index 000000000..09232ef37
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_25000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_55190_55190_42965_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xcf00"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999815958",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "184042",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_35000Filler.json
new file mode 100644
index 000000000..caa769948
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_35000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_55190_55190_42965_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868434",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131566",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf610"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999815958",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "184042",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_1000000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_1000000Filler.json
new file mode 100644
index 000000000..d3f68221b
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_1000000Filler.json
@@ -0,0 +1,178 @@
+{
+ "modexp_9_37111_37111_1000000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfde18"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {
+ "0x00": "0x3961ec903a448e057fbc76e10170d02f15b9b65c2f7fc8215f611ec6dc74cf91"
+ }
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999638686",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "361314",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_155000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_155000Filler.json
new file mode 100644
index 000000000..bd4d0f433
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_155000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_9_37111_37111_155000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x2f950"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999673270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "326730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_20500Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_20500Filler.json
new file mode 100644
index 000000000..c826eefee
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_20500Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_9_37111_37111_20500": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xebec"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999807770",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "192230",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_22000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_22000Filler.json
new file mode 100644
index 000000000..1134546ec
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_22000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_9_37111_37111_22000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xf1c8"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999806270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "193730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_35000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_35000Filler.json
new file mode 100644
index 000000000..81ea6ee36
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_35000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_9_37111_37111_35000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0x12490"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999793270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "206730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas"
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_3711_37111_25000Filler.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_3711_37111_25000Filler.json
new file mode 100644
index 000000000..954ac8490
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_3711_37111_25000Filler.json
@@ -0,0 +1,176 @@
+{
+ "modexp_9_3711_37111_25000": {
+ "env": {
+ "currentCoinbase": "0x3535353535353535353535353535353535353535",
+ "currentDifficulty": "0x1",
+ "currentGasLimit": "0x5f5e100",
+ "currentNumber": "0x1",
+ "currentTimestamp": "0x5777765e",
+ "previousHash": "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "pre": {
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999868166",
+ "nonce": "1",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "131834",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "transaction": {
+ "data": [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit": [
+ "0xfd80"
+ ],
+ "gasPrice": "0x1",
+ "nonce": "0x1",
+ "secretKey": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to": "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value": [
+ "0x"
+ ]
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": 0,
+ "gas": 0,
+ "value": 0
+ },
+ "network": [
+ "Metropolis"
+ ],
+ "result": {
+ "0000000000000000000000000000000000000001": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "c305c901078781c232a2a521c2af7980f8385ee9": {
+ "balance": "0",
+ "nonce": "1",
+ "code": "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000005": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000008": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000003": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
+ "balance": "999999999999803270",
+ "nonce": "2",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000006": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000007": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000004": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "3535353535353535353535353535353535353535": {
+ "balance": "196730",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ },
+ "0000000000000000000000000000000000000002": {
+ "balance": "1",
+ "nonce": "0",
+ "code": "0x",
+ "storage": {}
+ }
+ }
+ }
+ ],
+ "explanation": "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas"
+ }
+}