aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--GeneralStateTests/stPreCompiledContracts/modexp.json86
-rw-r--r--GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json183
-rw-r--r--src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json26
-rw-r--r--src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json67
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"
+ ]
+ }
+ }
+}