aboutsummaryrefslogtreecommitdiffstats
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
parentb9303ecbfe2d032ac1d439ab6b3da3c07b22134a (diff)
downloaddexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.gz
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.bz2
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.lz
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.xz
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.tar.zst
dexon-tests-f2f3de28aa1f5f27bdbe96e2b317bb3a66180d2d.zip
Add modexp tess from Pyethereum
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json159
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json159
-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
192 files changed, 32276 insertions, 0 deletions
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json
new file mode 100644
index 000000000..b6f53587c
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x4c3825454feab2d6b0da8514726edc73460ba022716f8aadf7610988def5449b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x4c3825454feab2d6b0da8514726edc73460ba022716f8aadf7610988def5449b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9858"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json
new file mode 100644
index 000000000..395601f57
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xc45f45ae070efb966cb524c03d20097525377219b3ba24c1d73a1905491d4c66",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xc45f45ae070efb966cb524c03d20097525377219b3ba24c1d73a1905491d4c66",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b390"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json
new file mode 100644
index 000000000..3b44aac61
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa62c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json
new file mode 100644
index 000000000..0a256739e
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3eb47ef1222fdf484852d249cf453602253b8ec77ae3324c0b93a096bf5ce5d7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3eb47ef1222fdf484852d249cf453602253b8ec77ae3324c0b93a096bf5ce5d7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xac08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json
new file mode 100644
index 000000000..07f0bc3ed
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x93afda1fc15e0a061dcf1fb996f09107a2489a06164f2f00c2e7711ea8b9a7a1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x93afda1fc15e0a061dcf1fb996f09107a2489a06164f2f00c2e7711ea8b9a7a1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb7c0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json
new file mode 100644
index 000000000..74bfb9189
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_0_0_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x93f18729e40efc9a67066b12285e686204e77169a4584a09cd7e8dc74c98a098",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x93f18729e40efc9a67066b12285e686204e77169a4584a09cd7e8dc74c98a098",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xded0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json
new file mode 100644
index 000000000..607d6a6b6
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9958"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json
new file mode 100644
index 000000000..53bbb04f9
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b490"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json
new file mode 100644
index 000000000..8ab23d436
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa72c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json
new file mode 100644
index 000000000..3c2c4141e
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xad08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json
new file mode 100644
index 000000000..a2779bc2f
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb8c0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json
new file mode 100644
index 000000000..cc550d371
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_1_0_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xdfd0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json
new file mode 100644
index 000000000..c590352ff
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf99d8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json
new file mode 100644
index 000000000..a9c31ed3e
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b510"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json
new file mode 100644
index 000000000..ea5966213
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa7ac"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json
new file mode 100644
index 000000000..76b05ff4f
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xad88"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json
new file mode 100644
index 000000000..1141d3c51
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb940"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json
new file mode 100644
index 000000000..3799e8afe
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_0_3_100_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010364000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe050"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json
new file mode 100644
index 000000000..3d572e46d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9958"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json
new file mode 100644
index 000000000..f44a033c1
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b490"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json
new file mode 100644
index 000000000..1742f3044
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa72c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json
new file mode 100644
index 000000000..e940a8191
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xad08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json
new file mode 100644
index 000000000..8efd2f048
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb8c0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json
new file mode 100644
index 000000000..ca9cfa602
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_0_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xdfd0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json
new file mode 100644
index 000000000..72ab85e21
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf99d8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json
new file mode 100644
index 000000000..7c5d6dca0
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b510"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json
new file mode 100644
index 000000000..09ce8a075
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa7ac"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json
new file mode 100644
index 000000000..be9317946
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xad88"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json
new file mode 100644
index 000000000..354bfed02
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb940"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json
new file mode 100644
index 000000000..4098d2f0b
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_0_1_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe050"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json
new file mode 100644
index 000000000..4b967574a
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9a58"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json
new file mode 100644
index 000000000..e8a43171c
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b590"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json
new file mode 100644
index 000000000..860feec82
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa82c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json
new file mode 100644
index 000000000..d0596ced6
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xae08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json
new file mode 100644
index 000000000..e9ddb6b71
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb9c0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json
new file mode 100644
index 000000000..5458a2339
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_1_1_1_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010101010000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe0d0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json
new file mode 100644
index 000000000..a161f3f0b
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_22411_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf1c8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json
new file mode 100644
index 000000000..e7ee3bc01
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x4d440e0a27495c893e3b9063d75ad8eb62b345898fefec7b1d1427604d904ced",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x4d440e0a27495c893e3b9063d75ad8eb62b345898fefec7b1d1427604d904ced",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x26b9d5e75db1b7ebe7ef3e6b898767eec4555cc3915eea28df1f59189df1e6c0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0xfdd18"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json
new file mode 100644
index 000000000..a2572bdc4
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x2f850"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json
new file mode 100644
index 000000000..40061651a
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0xeaec"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json
new file mode 100644
index 000000000..3bb4e1521
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0xf0c8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json
new file mode 100644
index 000000000..76d7b977a
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0xfc80"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json
new file mode 100644
index 000000000..c978f160c
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_0_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x12390"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json
new file mode 100644
index 000000000..360e56a4d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_1_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xbbb53e804540183332525ae3893a92ba06c3529aa10caf0c34df2c0d2c4291b0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfde18"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json
new file mode 100644
index 000000000..da593ae8d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_1_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2f950"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json
new file mode 100644
index 000000000..a6355e666
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_1_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xebec"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json
new file mode 100644
index 000000000..c0f512c2b
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_1_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfd80"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json
new file mode 100644
index 000000000..e2770b17d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_1_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x12490"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json
new file mode 100644
index 000000000..3a52d35b7
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe1ad81867242795a4e40ff6a8baa644a48fdddedf627b5cb6fee2d6ebf8b5fe7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe1ad81867242795a4e40ff6a8baa644a48fdddedf627b5cb6fee2d6ebf8b5fe7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x0b858c01da05ac6951b0af7b3f2cb6f4913c248be4ee0e5b5a1d0bb51608d456",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0xfff58"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json
new file mode 100644
index 000000000..2abfd6dab
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x31a90"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json
new file mode 100644
index 000000000..1e2e66d68
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x10d2c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json
new file mode 100644
index 000000000..d1f663248
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x11308"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json
new file mode 100644
index 000000000..7e76688e9
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x11ec0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json
new file mode 100644
index 000000000..a810013d9
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_37111_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97"
+ ],
+ "gasLimit" : [
+ "0x145d0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json
new file mode 100644
index 000000000..a84c7f7eb
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xd45bf077f7b1dffb6b42b9e1975eb5ad39c419f4794513359951676c90004a54",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfde18"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json
new file mode 100644
index 000000000..3762c7e4f
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2f950"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json
new file mode 100644
index 000000000..a5a436a1f
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xebec"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json
new file mode 100644
index 000000000..230e5bee0
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf1c8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json
new file mode 100644
index 000000000..8147efc42
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfd80"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json
new file mode 100644
index 000000000..5590724f4
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_37120_37111_97_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff976100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x12490"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json
new file mode 100644
index 000000000..d830457b5
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x51dd1fbe2130a40b7026d0e779fd4a6209f2433872899ea1a7bb3ff86a9f25c5",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x51dd1fbe2130a40b7026d0e779fd4a6209f2433872899ea1a7bb3ff86a9f25c5",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfa318"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json
new file mode 100644
index 000000000..f084acde3
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xf19522362da9bf03874defd6d035a7a3a9b2f91ee0fb11d9334f83ebc0380330",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xf19522362da9bf03874defd6d035a7a3a9b2f91ee0fb11d9334f83ebc0380330",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2be50"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json
new file mode 100644
index 000000000..c199af048
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb0ec"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json
new file mode 100644
index 000000000..d04de3b99
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3511d77d8bc66c502aeb153df540a7b86c4357dead7eabc876c515c6d793e674",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3511d77d8bc66c502aeb153df540a7b86c4357dead7eabc876c515c6d793e674",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb6c8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json
new file mode 100644
index 000000000..570237e4d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x6e78c3a7a71aeb7edf950d3e61c3177497fe888a7bf0d1e123b0278c84ba5689",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x6e78c3a7a71aeb7edf950d3e61c3177497fe888a7bf0d1e123b0278c84ba5689",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xc280"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json
new file mode 100644
index 000000000..b39b8fc16
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_39936_1_55201_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa6b7805c00480fcde648e22e0d0418f1078d65634251f99fc202c531fa4dfc4b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa6b7805c00480fcde648e22e0d0418f1078d65634251f99fc202c531fa4dfc4b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000000001304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db881000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe990"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json
new file mode 100644
index 000000000..bbfead9cb
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_09984_39936_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xbaefd266cb2fdbc435196c47e6c66d608fc6b8ca94be2662ce956be6c07fc638",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xbaefd266cb2fdbc435196c47e6c66d608fc6b8ca94be2662ce956be6c07fc638",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9b58"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json
new file mode 100644
index 000000000..7bdc85d94
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_09984_39936_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x88b83735835f9d1efcf3bfb9861f5b153d981da6b0108ee882fd771b7ac7f618",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x88b83735835f9d1efcf3bfb9861f5b153d981da6b0108ee882fd771b7ac7f618",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b690"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json
new file mode 100644
index 000000000..5edc1a13f
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_09984_39936_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xaf08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json
new file mode 100644
index 000000000..1b9f0903a
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_09984_39936_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x5906361a887d190ba04ed942970e835f9dd1532c2128ba0ffbb3c28fc7d952ca",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x5906361a887d190ba04ed942970e835f9dd1532c2128ba0ffbb3c28fc7d952ca",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xbac0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json
new file mode 100644
index 000000000..efd68bcb2
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_09984_39936_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x72fea5b5f49d22a532afe8d7044076bb3d18a6ec5eda34f426f0192369baf593",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x72fea5b5f49d22a532afe8d7044076bb3d18a6ec5eda34f426f0192369baf593",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe1d0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json
new file mode 100644
index 000000000..0fa1868b6
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_28948_11579_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021034000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa92c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json
new file mode 100644
index 000000000..1a1ada672
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9a58"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json
new file mode 100644
index 000000000..570c89285
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b590"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json
new file mode 100644
index 000000000..243e376f5
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa82c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json
new file mode 100644
index 000000000..5bad6f694
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xae08"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json
new file mode 100644
index 000000000..c6ba21381
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xb9c0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json
new file mode 100644
index 000000000..3f3ca3114
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_3_5_100_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010305640000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe0d0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json
new file mode 100644
index 000000000..75f02b25d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x8c3e32f1b4bcf3576dc6b888f5834b9113c2e5529f37a180dd4e14372ea06a68",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x8c3e32f1b4bcf3576dc6b888f5834b9113c2e5529f37a180dd4e14372ea06a68",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf9ad8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json
new file mode 100644
index 000000000..1f106de91
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xc478d53ebb92e3f68b24ddd526524e010e1792f33a0ccbbd775a210ef753340c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xc478d53ebb92e3f68b24ddd526524e010e1792f33a0ccbbd775a210ef753340c",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2b610"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json
new file mode 100644
index 000000000..8d965ccb9
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xa8ac"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json
new file mode 100644
index 000000000..14b5ddd21
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x15c4201598ce69aa4022a9801384cb75998b3b53dd73a6019a356f4e8552afb8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x15c4201598ce69aa4022a9801384cb75998b3b53dd73a6019a356f4e8552afb8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xae88"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json
new file mode 100644
index 000000000..56a2c2b39
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xd778884b158c93775316d9a34fa3d27e3f235fbbc3abc127798ee21e92c21d01",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xd778884b158c93775316d9a34fa3d27e3f235fbbc3abc127798ee21e92c21d01",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xba40"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json
new file mode 100644
index 000000000..880ffc2c9
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_49_2401_2401_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x26b54f04e8cb2d53ad0dde9959d148fb0553cb7764b700aa85be792ab137a242",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x26b54f04e8cb2d53ad0dde9959d148fb0553cb7764b700aa85be792ab137a242",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000023109610961000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xe150"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json
new file mode 100644
index 000000000..b1d2e346c
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x204d61a853440aa3674a6167de390d4f9c5d76dd35ca07e7bb988521d1766b15",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x204d61a853440aa3674a6167de390d4f9c5d76dd35ca07e7bb988521d1766b15",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfaf98"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json
new file mode 100644
index 000000000..d889bd737
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe96c2dd7dfb518095fd8d6d0266543283ff42b48feec463b7371345b4a024a2b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe96c2dd7dfb518095fd8d6d0266543283ff42b48feec463b7371345b4a024a2b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2cad0"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json
new file mode 100644
index 000000000..586d72c09
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xbd6c"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json
new file mode 100644
index 000000000..dfa4c103d
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xc348"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json
new file mode 100644
index 000000000..8f8892858
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x78cded0d21e6a338a5cbd4a9a2679a8e90475f0c9ea10602b963888da61c274e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x78cded0d21e6a338a5cbd4a9a2679a8e90475f0c9ea10602b963888da61c274e",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xcf00"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json
new file mode 100644
index 000000000..27b963d60
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_55190_55190_42965_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x8a72f51d494591810d22a33f8dcb8d539ff83b3ef19191627d8ab2c74b3de5bc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x8a72f51d494591810d22a33f8dcb8d539ff83b3ef19191627d8ab2c74b3de5bc",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0201ee",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fe12",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876304d37f120d696c834550e63d9bb9c14b4f9165c9ede434e4644e3998d6db876fffffffffffffffffffffffffffffffffffffff5000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf610"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json
new file mode 100644
index 000000000..ac0855c55
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_37111_37111_1000000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x933a3d1303443b63d389b19b1614a8826aab2f945899a8c9fbc7d101d16e066d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x933a3d1303443b63d389b19b1614a8826aab2f945899a8c9fbc7d101d16e066d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x53a01542bf0ba8e656e0630d5f7d279c6fe059f2d4bc4afafeb8e0f797713f88",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfde18"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json
new file mode 100644
index 000000000..f7ef011fc
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_37111_37111_155000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x2f950"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json
new file mode 100644
index 000000000..eb1ee19ef
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_37111_37111_20500" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xebec"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json
new file mode 100644
index 000000000..90ef98f79
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_37111_37111_22000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xf1c8"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json
new file mode 100644
index 000000000..d0156e005
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_37111_37111_35000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0x12490"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json
new file mode 100644
index 000000000..a52751587
--- /dev/null
+++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json
@@ -0,0 +1,159 @@
+{
+ "modexp_9_3711_37111_25000" : {
+ "env" : {
+ "currentCoinbase" : "0x3535353535353535353535353535353535353535",
+ "currentDifficulty" : "0x1",
+ "currentGasLimit" : "0x5f5e100",
+ "currentNumber" : "0x1",
+ "currentTimestamp" : "0x5777765e",
+ "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad"
+ },
+ "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",
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ],
+ "Metropolis" : [
+ {
+ "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "0x0000000000000000000000000000000000000001" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000002" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000003" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000004" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000005" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000006" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000007" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x0000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x3535353535353535353535353535353535353535" : {
+ "balance" : "0x0202fa",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : {
+ "balance" : "0x0de0b6b3a761fd06",
+ "code" : "",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ },
+ "0xc305c901078781c232a2a521c2af7980f8385ee9" : {
+ "balance" : "0x00",
+ "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b",
+ "nonce" : "0x01",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9700000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "gasLimit" : [
+ "0xfd80"
+ ],
+ "gasPrice" : "0x1",
+ "nonce" : "0x1",
+ "secretKey" : "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "to" : "0xc305c901078781c232a2a521c2af7980f8385ee9",
+ "value" : [
+ "0x"
+ ]
+ }
+ }
+} \ No newline at end of file
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"
+ }
+}