From e740a725a28bf7714abd0c400439f060fdd1e873 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Fri, 7 Sep 2018 20:11:24 +0300 Subject: create2 check fields in init code --- .../stCreate2/create2checkFieldsInInitcode.json | 135 +++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json (limited to 'GeneralStateTests') diff --git a/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json b/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json new file mode 100644 index 000000000..76ce9e1c4 --- /dev/null +++ b/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json @@ -0,0 +1,135 @@ +{ + "create2checkFieldsInInitcode" : { + "_info" : { + "comment" : "Check opcode values in create2 init code. Create2 called with different call types.", + "filledwith" : "testeth 1.5.0.dev2+commit.253a2986.dirty", + "lllcversion" : "Version: 0.4.25-develop.2018.8.9+commit.63d071d6.mod.Linux.g++", + "source" : "src/GeneralStateTestsFiller/stCreate2/create2checkFieldsInInitcodeFiller.json", + "sourceHash" : "bc38edef74ef85ca01dac7fe45a10fc28155f1acd397ca22bf904130ca76c8f8" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0f4240", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "Constantinople" : [ + { + "hash" : "0x521f66fd73b644de582060b3c1fd36fc607361b0508a856c7b274527e8d06eed", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x7b07cf50029a0ea414ddc08cf264769cf46e8f15cd92fd97df810d2cfda8933a", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0xc1efa57d4edb575dc41c069603a6e66d7896ec9151e749322ec0b6729db54d65", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0xde24fb3f9883c69c4ce5ac7d7f6e32c23f55b959cf1c00be6cd7e59ff4420b2d", + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + } + ] + }, + "pre" : { + "0x1000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000600060006000600073f0000000000000000000000000000000000000005af1", + "nonce" : "0x00", + "storage" : { + } + }, + "0x2000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000600060006000600073f0000000000000000000000000000000000000005af2", + "nonce" : "0x00", + "storage" : { + } + }, + "0x3000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x600060006000600073f0000000000000000000000000000000000000005af4", + "nonce" : "0x00", + "storage" : { + } + }, + "0x4000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x61010060006000600073f2000000000000000000000000000000000000005afa50600051600a55", + "nonce" : "0x00", + "storage" : { + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x600060006000600060006000355af1", + "nonce" : "0x00", + "storage" : { + } + }, + "0xf000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000602180601060003960006000f50030600055303160015532600255336003553460045536600555386006553a600755", + "nonce" : "0x00", + "storage" : { + } + }, + "0xf200000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000602780601060003960006000f5003060005230316020523260405233606052346080523660a0523860c0523a60e0526101006000f3", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000", + "0x0000000000000000000000003000000000000000000000000000000000000000", + "0x0000000000000000000000004000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "0x0927c0" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file -- cgit From 827fec4bc47db888b0f50aa8251f2987f42fd1e8 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Sat, 8 Sep 2018 18:54:53 +0300 Subject: more create2 tests --- .../stCreate2/create2checkFieldsInInitcode.json | 82 ++++++++++++++++++-- ...rndatacopy_0_0_following_successful_create.json | 64 ++++++++++++++++ .../returndatacopy_afterFailing_create.json | 64 ++++++++++++++++ .../stCreate2/returndatacopy_following_create.json | 89 ++++++++++++++++++++++ 4 files changed, 292 insertions(+), 7 deletions(-) create mode 100644 GeneralStateTests/stCreate2/returndatacopy_0_0_following_successful_create.json create mode 100644 GeneralStateTests/stCreate2/returndatacopy_afterFailing_create.json create mode 100644 GeneralStateTests/stCreate2/returndatacopy_following_create.json (limited to 'GeneralStateTests') diff --git a/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json b/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json index 76ce9e1c4..fa0fcc296 100644 --- a/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json +++ b/GeneralStateTests/stCreate2/create2checkFieldsInInitcode.json @@ -1,11 +1,11 @@ { "create2checkFieldsInInitcode" : { "_info" : { - "comment" : "Check opcode values in create2 init code. Create2 called with different call types.", + "comment" : "Check opcode values in create2 init code. Create2 called with different call types. CREATE2 inside CRETE2 inside CALL, CALLCODE, DELEGATECALL, STATICCALL << test values of SENDER,address and so on.", "filledwith" : "testeth 1.5.0.dev2+commit.253a2986.dirty", "lllcversion" : "Version: 0.4.25-develop.2018.8.9+commit.63d071d6.mod.Linux.g++", "source" : "src/GeneralStateTestsFiller/stCreate2/create2checkFieldsInInitcodeFiller.json", - "sourceHash" : "bc38edef74ef85ca01dac7fe45a10fc28155f1acd397ca22bf904130ca76c8f8" + "sourceHash" : "50ac50bc39f0c248eff24f1de056780ac844933aae167e75aded73e9e72c3a03" }, "env" : { "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", @@ -18,7 +18,7 @@ "post" : { "Constantinople" : [ { - "hash" : "0x521f66fd73b644de582060b3c1fd36fc607361b0508a856c7b274527e8d06eed", + "hash" : "0x98f39cfc90b914cc0106664574510cf5ec48db69049056cd428660902072b5c8", "indexes" : { "data" : 0, "gas" : 0, @@ -27,7 +27,7 @@ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" }, { - "hash" : "0x7b07cf50029a0ea414ddc08cf264769cf46e8f15cd92fd97df810d2cfda8933a", + "hash" : "0x34ce395269cfc502dc12f9e47b641ca9d0e238f021c4c0261cc3320d0a24c023", "indexes" : { "data" : 1, "gas" : 0, @@ -36,7 +36,7 @@ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" }, { - "hash" : "0xc1efa57d4edb575dc41c069603a6e66d7896ec9151e749322ec0b6729db54d65", + "hash" : "0xe207954d05f816d76fdb073787e157304e1e4d9e815b1edeaf48f86982df792c", "indexes" : { "data" : 2, "gas" : 0, @@ -45,13 +45,49 @@ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" }, { - "hash" : "0xde24fb3f9883c69c4ce5ac7d7f6e32c23f55b959cf1c00be6cd7e59ff4420b2d", + "hash" : "0x21c3a34a5adfac47cdbc8054cb0c92523bb5c723e520c9b6632fdc1cc897a5f7", "indexes" : { "data" : 3, "gas" : 0, "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x3d3645535593cdbb6461104d82c5114583684c580d70c8200acaa8d05b21cd80", + "indexes" : { + "data" : 4, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0xff2e3d36973819a1d7c60bb8dea515189aac9a8082e1177923d87b71ea4bfec2", + "indexes" : { + "data" : 5, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x686c6cdfbdb522a62ef96ba13c8b7d33401cb705825ecddc66705173eedf9828", + "indexes" : { + "data" : 6, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x35a0954f1e48b7824c24828e7dd765d9c2911c7d0aeb6473e7fc2ec47780dac1", + "indexes" : { + "data" : 7, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ] }, @@ -63,6 +99,13 @@ "storage" : { } }, + "0x1100000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000602180601060003960006000f5006000600060006000600073f0000000000000000000000000000000000000005af1", + "nonce" : "0x00", + "storage" : { + } + }, "0x2000000000000000000000000000000000000000" : { "balance" : "0x00", "code" : "0x6000600060006000600073f0000000000000000000000000000000000000005af2", @@ -70,6 +113,13 @@ "storage" : { } }, + "0x2200000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000602180601060003960006000f5006000600060006000600073f0000000000000000000000000000000000000005af2", + "nonce" : "0x00", + "storage" : { + } + }, "0x3000000000000000000000000000000000000000" : { "balance" : "0x00", "code" : "0x600060006000600073f0000000000000000000000000000000000000005af4", @@ -77,6 +127,13 @@ "storage" : { } }, + "0x3300000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000601f80601060003960006000f500600060006000600073f0000000000000000000000000000000000000005af4", + "nonce" : "0x00", + "storage" : { + } + }, "0x4000000000000000000000000000000000000000" : { "balance" : "0x00", "code" : "0x61010060006000600073f2000000000000000000000000000000000000005afa50600051600a55", @@ -84,6 +141,13 @@ "storage" : { } }, + "0x4400000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "0x6000602780601060003960006000f50061010060006000600073f2000000000000000000000000000000000000005afa50600051600a55", + "nonce" : "0x00", + "storage" : { + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", "code" : "", @@ -118,7 +182,11 @@ "0x0000000000000000000000001000000000000000000000000000000000000000", "0x0000000000000000000000002000000000000000000000000000000000000000", "0x0000000000000000000000003000000000000000000000000000000000000000", - "0x0000000000000000000000004000000000000000000000000000000000000000" + "0x0000000000000000000000004000000000000000000000000000000000000000", + "0x0000000000000000000000001100000000000000000000000000000000000000", + "0x0000000000000000000000002200000000000000000000000000000000000000", + "0x0000000000000000000000003300000000000000000000000000000000000000", + "0x0000000000000000000000004400000000000000000000000000000000000000" ], "gasLimit" : [ "0x0927c0" diff --git a/GeneralStateTests/stCreate2/returndatacopy_0_0_following_successful_create.json b/GeneralStateTests/stCreate2/returndatacopy_0_0_following_successful_create.json new file mode 100644 index 000000000..bdd169145 --- /dev/null +++ b/GeneralStateTests/stCreate2/returndatacopy_0_0_following_successful_create.json @@ -0,0 +1,64 @@ +{ + "returndatacopy_0_0_following_successful_create" : { + "_info" : { + "comment" : "", + "filledwith" : "testeth 1.5.0.dev2+commit.253a2986.dirty", + "lllcversion" : "Version: 0.4.25-develop.2018.8.9+commit.63d071d6.mod.Linux.g++", + "source" : "src/GeneralStateTestsFiller/stCreate2/returndatacopy_0_0_following_successful_createFiller.json", + "sourceHash" : "20b86a7b86bcf5324629e8e3f47891790033d3436d99d753cd643d0959f7eb78" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "Constantinople" : [ + { + "hash" : "0xb9b6ba98eeb913bd9607b6e38e6662c2914d0397688bd3379334e0f9edbf2176", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + } + ] + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x6000600580601d60003960006000f5506000600060003e6000600055006001600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file diff --git a/GeneralStateTests/stCreate2/returndatacopy_afterFailing_create.json b/GeneralStateTests/stCreate2/returndatacopy_afterFailing_create.json new file mode 100644 index 000000000..2fb7fcfe4 --- /dev/null +++ b/GeneralStateTests/stCreate2/returndatacopy_afterFailing_create.json @@ -0,0 +1,64 @@ +{ + "returndatacopy_afterFailing_create" : { + "_info" : { + "comment" : "Returndatacopy after failing create case due to 0xfd code.", + "filledwith" : "testeth 1.5.0.dev2+commit.253a2986.dirty", + "lllcversion" : "Version: 0.4.25-develop.2018.8.9+commit.63d071d6.mod.Linux.g++", + "source" : "src/GeneralStateTestsFiller/stCreate2/returndatacopy_afterFailing_createFiller.json", + "sourceHash" : "2043d64e9ea248539f544bc391caada596193c04bcd616c04b41ee1f627fefea" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "Constantinople" : [ + { + "hash" : "0xfcf050d4b89f8d91a0b8e7e100865cc0c9abc09d8b2f71a5f028444de6e2f86e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + } + ] + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x69600260005260206000fd6000526000600a60166000f5503d6000556020600060003e600051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file diff --git a/GeneralStateTests/stCreate2/returndatacopy_following_create.json b/GeneralStateTests/stCreate2/returndatacopy_following_create.json new file mode 100644 index 000000000..62979a09a --- /dev/null +++ b/GeneralStateTests/stCreate2/returndatacopy_following_create.json @@ -0,0 +1,89 @@ +{ + "returndatacopy_following_create" : { + "_info" : { + "comment" : "Check that create2 does not fill returndata buffer with its return opcode.", + "filledwith" : "testeth 1.5.0.dev2+commit.253a2986.dirty", + "lllcversion" : "Version: 0.4.25-develop.2018.8.9+commit.63d071d6.mod.Linux.g++", + "source" : "src/GeneralStateTestsFiller/stCreate2/returndatacopy_following_createFiller.json", + "sourceHash" : "4775c056f9093ea1d95eaf6c1a92114b05c7e4a80529e1fe43795d26fc37de02" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "Constantinople" : [ + { + "hash" : "0x8a7554f711f95b008b8ed549aed6fdd7d5860dc75df7560f517765025ef6f1b0", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x8a7554f711f95b008b8ed549aed6fdd7d5860dc75df7560f517765025ef6f1b0", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + } + ] + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x6000602780601e60003960006000f5506020600060003e600051600055007d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0x1aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x600060006000600060006000355af1", + "nonce" : "0x00", + "storage" : { + } + }, + "0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x6000600180601e60003960006000f5506020600060003e6000516000550000", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000000f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "0x0000000000000000000000001f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x1aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file -- cgit