diff options
author | winsvega <winsvega@mail.ru> | 2018-09-10 23:09:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-10 23:09:40 +0800 |
commit | f549edbce18dac79d17bce955ce03d0aa4d63132 (patch) | |
tree | 4808aa34995371537887c5fe6a020b83fc30c6d3 /src/GeneralStateTestsFiller/stCreate2 | |
parent | b87bd584634fd4061d54f7d8dd527d0eb43885e0 (diff) | |
parent | 827fec4bc47db888b0f50aa8251f2987f42fd1e8 (diff) | |
download | dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar.gz dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar.bz2 dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar.lz dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar.xz dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.tar.zst dexon-tests-f549edbce18dac79d17bce955ce03d0aa4d63132.zip |
Merge pull request #502 from ethereum/create2
create2 check fields in init code
Diffstat (limited to 'src/GeneralStateTestsFiller/stCreate2')
4 files changed, 498 insertions, 0 deletions
diff --git a/src/GeneralStateTestsFiller/stCreate2/create2checkFieldsInInitcodeFiller.json b/src/GeneralStateTestsFiller/stCreate2/create2checkFieldsInInitcodeFiller.json new file mode 100644 index 000000000..21bf14b61 --- /dev/null +++ b/src/GeneralStateTestsFiller/stCreate2/create2checkFieldsInInitcodeFiller.json @@ -0,0 +1,273 @@ +{ + "create2checkFieldsInInitcode" : { + "_info" : { + "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." + }, + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : [0,4], + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "8c2950f075c34756bfa06b21b13ce910113e5958" : { + "balance" : "0", + "nonce" : "1", + "storage" : { + "0x00" : "0x8c2950f075c34756bfa06b21b13ce910113e5958", + "0x01" : "0", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0xf000000000000000000000000000000000000000", + "0x04" : "0", + "0x05" : "0", + "0x06" : "0x21", + "0x07" : "1" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "753d879541ef32dd404b5c296b3f90d5723b22e6" : { + "balance" : "0", + "nonce" : "1", + "storage" : { + "0x00" : "0x753d879541ef32dd404b5c296b3f90d5723b22e6", + "0x01" : "0", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0x2000000000000000000000000000000000000000", + "0x04" : "0", + "0x05" : "0", + "0x06" : "0x21", + "0x07" : "1" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "262ddf6ce5b06776eaa045900e933d0be3074c26" : { + "balance" : "0", + "nonce" : "1", + "storage" : { + "0x00" : "0x262ddf6ce5b06776eaa045900e933d0be3074c26", + "0x01" : "0", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0x3000000000000000000000000000000000000000", + "0x04" : "0", + "0x05" : "0", + "0x06" : "0x21", + "0x07" : "1" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : [3, 7], + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 5, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "dd216ee8d9ec9d48768efa989e3c599b0327f1ba" : { + "balance" : "0", + "nonce" : "1", + "storage" : { + "0x00" : "0xdd216ee8d9ec9d48768efa989e3c599b0327f1ba", + "0x01" : "0", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0x1bebe06c0893a047ea4ce821f24668d9034e204f", + "0x04" : "0", + "0x05" : "0", + "0x06" : "0x21", + "0x07" : "1" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 6, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "ce2c5c4667c2e59af5767b677a65e31fa14f62ad" : { + "balance" : "0", + "nonce" : "1", + "storage" : { + "0x00" : "0xce2c5c4667c2e59af5767b677a65e31fa14f62ad", + "0x01" : "0", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0xab166837a8bc12757f73555d296f726df214cd4c", + "0x04" : "0", + "0x05" : "0", + "0x06" : "0x21", + "0x07" : "1" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1100000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq (CALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0)) 0) 0) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CALLCODE (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "2200000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq (CALLCODE (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) }", + "nonce" : "0", + "storage" : { + } + }, + "3000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (DELEGATECALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "3300000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq (DELEGATECALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0) ) 0) 0) }", + "nonce" : "0", + "storage" : { + } + }, + "4000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (STATICCALL (GAS) 0xf200000000000000000000000000000000000000 0 0 0 256) [[10]] (MLOAD 0) }", + "nonce" : "0", + "storage" : { + } + }, + "4400000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq (STATICCALL (GAS) 0xf200000000000000000000000000000000000000 0 0 0 256) [[10]] (MLOAD 0) ) 0) 0 ) }", + "nonce" : "0", + "storage" : { + } + }, + "f000000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq [[0]] (ADDRESS) [[1]] (BALANCE (ADDRESS)) [[2]] (ORIGIN) [[3]] (CALLER) [[4]] (CALLVALUE) [[5]] (CALLDATASIZE) [[6]] (CODESIZE) [[7]] (GASPRICE) ) 0) 0) }", + "nonce" : "0", + "storage" : { + } + }, + "f200000000000000000000000000000000000000" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq [0] (ADDRESS) [32] (BALANCE (ADDRESS)) [64] (ORIGIN) [96] (CALLER) [128] (CALLVALUE) [160] (CALLDATASIZE) [192] (CODESIZE) [224] (GASPRICE) (RETURN 0 256) ) 0) 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000", + "0x0000000000000000000000003000000000000000000000000000000000000000", + "0x0000000000000000000000004000000000000000000000000000000000000000", + "0x0000000000000000000000001100000000000000000000000000000000000000", + "0x0000000000000000000000002200000000000000000000000000000000000000", + "0x0000000000000000000000003300000000000000000000000000000000000000", + "0x0000000000000000000000004400000000000000000000000000000000000000" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stCreate2/returndatacopy_0_0_following_successful_createFiller.json b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_0_0_following_successful_createFiller.json new file mode 100644 index 000000000..423fd56fa --- /dev/null +++ b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_0_0_following_successful_createFiller.json @@ -0,0 +1,66 @@ +{ + "returndatacopy_0_0_following_successful_create" : { + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x00" + } + }, + "bd70f8d180fa7825cf80ec820740e80187f35db5" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (create2 0 0 (lll {(SSTORE 0 1)} 0) 0) (RETURNDATACOPY 0 0 0) (SSTORE 0 0) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stCreate2/returndatacopy_afterFailing_createFiller.json b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_afterFailing_createFiller.json new file mode 100644 index 000000000..4b2470b06 --- /dev/null +++ b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_afterFailing_createFiller.json @@ -0,0 +1,64 @@ +{ + "returndatacopy_afterFailing_create" : { + "_info" : { + "comment" : "Returndatacopy after failing create case due to 0xfd code." + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x20", + "0x01" : "0x02" + } + } + } + } + ], + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (MSTORE 0 0x600260005260206000fd) (create2 0 22 10 0) (SSTORE 0 (RETURNDATASIZE)) (RETURNDATACOPY 0 0 32) (SSTORE 1 (MLOAD 0)) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stCreate2/returndatacopy_following_createFiller.json b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_following_createFiller.json new file mode 100644 index 000000000..3cd1b489a --- /dev/null +++ b/src/GeneralStateTestsFiller/stCreate2/returndatacopy_following_createFiller.json @@ -0,0 +1,95 @@ +{ + "returndatacopy_following_create" : { + "_info" : { + "comment" : "Check that create2 does not fill returndata buffer with its return opcode." + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : [">=Constantinople"], + "result" : { + "0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : { + "1aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0x00", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) 0) 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (seq (create2 0 0 (lll (STOP) 0) 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}", + "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" + ] + } + } +} |