diff options
4 files changed, 357 insertions, 5 deletions
diff --git a/GeneralStateTests/stPreCompiledContracts/modexp.json b/GeneralStateTests/stPreCompiledContracts/modexp.json index c5a8c75ce..91044f4b4 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp.json @@ -2,7 +2,7 @@ "modexp" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.bc18ce87.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.29c877a3.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json" }, "env" : { @@ -238,6 +238,22 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", + "indexes" : { + "data" : 28, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", + "indexes" : { + "data" : 29, + "gas" : 0, + "value" : 0 + } } ], "EIP158" : [ @@ -464,6 +480,22 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", + "indexes" : { + "data" : 28, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", + "indexes" : { + "data" : 29, + "gas" : 0, + "value" : 0 + } } ], "Frontier" : [ @@ -690,6 +722,22 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 28, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 29, + "gas" : 0, + "value" : 0 + } } ], "Homestead" : [ @@ -916,6 +964,22 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 28, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 29, + "gas" : 0, + "value" : 0 + } } ], "Metropolis" : [ @@ -1142,6 +1206,22 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0x8b0936c7732c47d392f0985635df5cbf80b287c306abb56f667a932933921275", + "indexes" : { + "data" : 28, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", + "indexes" : { + "data" : 29, + "gas" : 0, + "value" : 0 + } } ] }, @@ -1190,7 +1270,9 @@ "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", "0x000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001001001010010", "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064", - "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006" + "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006", + "0x00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000" ], "gasLimit" : [ "0x05f5e100" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json new file mode 100644 index 000000000..b8737df22 --- /dev/null +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json @@ -0,0 +1,183 @@ +{ + "returndatacopy_initial_256" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.29c877a3.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "EIP150" : [ + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + } + } + ], + "EIP158" : [ + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + } + } + ], + "Frontier" : [ + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + } + } + ], + "Homestead" : [ + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + } + } + ], + "Metropolis" : [ + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + } + }, + { + "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + } + } + ] + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x606460006000356000033e6e112233445566778899aabbccddeeff600052600051600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000000000000000000000000000000000000000000064", + "0x0000000000000000000000000000000000000000000000000000000000000063", + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +}
\ No newline at end of file diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json index 842adfc4a..c18e4fa7f 100644 --- a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json +++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json @@ -41,6 +41,22 @@ } } }, + { + "indexes" : { + "data" : [29], + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + } + } + }, { "indexes" : { "data" : [1,5,8,9,10,12,13,15,18,19,20,21,22,23,24], @@ -59,7 +75,7 @@ }, { "indexes" : { - "data" : [2], + "data" : [2,28], "gas" : -1, "value" : -1 }, @@ -180,7 +196,9 @@ "24 - Non-zero length base & exp & mod and no values in input data - interpreted as all zeroes", "25 - Price calculation when baseLength > modLength", "26 - bigint_expmod precompiled contract returns 1 for 0 ^ 0 mod 100", - "27 - 02 ** 03 % 06, but exp with 256 bytes of zero in front." + "27 - 02 ** 03 % 06, but exp with 256 bytes of zero in front.", + "28 - base length 2^64", + "29 - exp length 2^64; returns 0 because mod is zero" ], "data" : [ "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002003fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", @@ -210,7 +228,9 @@ "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", "0x000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001001001010010", "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064", -"0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006" +"0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006", +"0x00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000", +"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000" ], "gasLimit" : [ "100000000" diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json new file mode 100644 index 000000000..c185e8c4a --- /dev/null +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json @@ -0,0 +1,67 @@ +{ + "returndatacopy_initial_256" : { + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "{ (RETURNDATACOPY (- 0 (CALLDATALOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0: the sum of RETURNDATACOPY's first and third arguments is 2^256", + "1: one smaller", + "2: one bigger", "anyway the RETURNDATACOPY should cause an exceptional halt." + ], + "data" : [ + "0x0000000000000000000000000000000000000000000000000000000000000064", + "0x0000000000000000000000000000000000000000000000000000000000000063", + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} |