From e7ee61ef554e987e9ab958faa46f291b2cbc0a74 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Wed, 28 Jun 2017 16:25:40 +0300 Subject: more staticcall tests --- .../stStaticCall/static_CheckOpcodes2Filler.json | 164 ++++++++++++++++++++ .../stStaticCall/static_CheckOpcodes3Filler.json | 171 +++++++++++++++++++++ .../stStaticCall/static_CheckOpcodes4Filler.json | 110 +++++++++++++ .../stStaticCall/static_CheckOpcodes5Filler.json | 90 +++++++++++ .../stStaticCall/static_CheckOpcodesFiller.json | 92 +++++++++++ 5 files changed, 627 insertions(+) create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json new file mode 100644 index 000000000..9333d8eac --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json @@ -0,0 +1,164 @@ +{ + "static_CheckOpcodes2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : [0, 2, 3, 4], + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "storage": { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 (CALL 100000 0xa100000000000000000000000000000000000001 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{(MSTORE 0 0) (MSTORE 0 (CALL 100000 0xa200000000000000000000000000000000000001 1 0 0 0 0)) (MSTORE 1 1) (MSTORE 2 1) }", + "storage": { + } + }, + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 (CALLCODE 100000 0xa300000000000000000000000000000000000001 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 (CALLCODE 100000 0xa400000000000000000000000000000000000001 1 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 (DELEGATECALL 100000 0xa500000000000000000000000000000000000001 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "a100000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa100000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a200000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x2000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa200000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a300000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a400000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a500000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "10 - staticcall -> call -> check", + "20 - staticcall -> call with value (oogs here because call has value) -> check", + "30 - staticcall -> callcode -> check", + "40 - staticcall -> callcode with value -> check", + "50 - staticcall -> delegatecall -> check" + ], + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001", + "0x0000000000000000000000003000000000000000000000000000000000000001", + "0x0000000000000000000000004000000000000000000000000000000000000001", + "0x0000000000000000000000005000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "50000", "335000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0", "100" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json new file mode 100644 index 000000000..18cbcd9b8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json @@ -0,0 +1,171 @@ +{ + "static_CheckOpcodes3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : [0, 2, 3, 4], + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "storage": { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xa100000000000000000000000000000000000001) (MSTORE 0 (CALL 100000 0xb000000000000000000000000000000000000001 0 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{(MSTORE 0 0xa100000000000000000000000000000000000001) (MSTORE 0 (CALL 100000 0xb000000000000000000000000000000000000001 1 0 32 0 0)) (MSTORE 1 1) (MSTORE 2 1) }", + "storage": { + } + }, + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 32 0xa300000000000000000000000000000000000001) (MSTORE 0 (CALLCODE 100000 0xb000000000000000000000000000000000000001 0 32 64 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xa400000000000000000000000000000000000001) (MSTORE 0 (CALLCODE 100000 0xb000000000000000000000000000000000000001 1 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xa500000000000000000000000000000000000001) (MSTORE 0 (DELEGATECALL 100000 0xb000000000000000000000000000000000000001 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "b000000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 0 (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "storage": { + } + }, + "a100000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xb000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa100000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a200000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x2000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa200000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a300000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa300000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a400000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa400000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "a500000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa500000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "10 - staticcall -> call -> check", + "20 - staticcall -> call with value (oogs here because call has value) -> check", + "30 - staticcall -> callcode -> check", + "40 - staticcall -> callcode with value -> check", + "50 - staticcall -> delegatecall -> check" + ], + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001", + "0x0000000000000000000000003000000000000000000000000000000000000001", + "0x0000000000000000000000004000000000000000000000000000000000000001", + "0x0000000000000000000000005000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "50000", "335000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0", "100" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json new file mode 100644 index 000000000..8b1a19e06 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json @@ -0,0 +1,110 @@ +{ + "static_CheckOpcodes4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x1000000000000000000000000000000000000000" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x64", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x1000000000000000000000000000000000000000" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[1]] (STATICCALL 100000 0x1000000000000000000000000000000000000001 0 0 0 0) [[2]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0) [[3]] (CALLER) [[4]] (CALLVALUE) [[5]] (ORIGIN) [[6]] (ADDRESS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "0 - staticcall -> do smth | staticcall -> check | check " + ], + "data" : [ + "" + ], + "gasLimit" : [ + "50000", "335000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0", "100" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json new file mode 100644 index 000000000..83321c2bb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json @@ -0,0 +1,90 @@ +{ + "static_CheckOpcodes5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[1]] (CALL 250000 (CALLDATALOAD 0) 0 0 0 0 0) }", + "storage": { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (CALL 100000 0xa000000000000000000000000000000000000002 0 0 0 0 0) }", + "storage": { + } + }, + "a000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALL 50000 0xb000000000000000000000000000000000000002 0 0 0 0 0) }", + "storage": { + } + }, + "b000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[ 12 ]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "0 - call | callcode | delegatecall -> staticcall -> check " + ], + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "50000", "335000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0", "100" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json new file mode 100644 index 000000000..af65804ec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json @@ -0,0 +1,92 @@ +{ + "static_CheckOpcodes" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "storage": { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000003 0 0 0 0) }", + "storage": { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "0 - staticcall -> check", + "1 - staticcall -> staticcall -> check" + ], + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000001000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "50000", "335000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0", "100" + ] + } + } +} -- cgit From ca49d2ada6571f55e52c702a680fe0d5522c37d3 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Wed, 28 Jun 2017 17:05:22 +0300 Subject: more staticcall tests update --- .../static_CheckCallCostOOGFiller.json | 85 ++++++++++++++ .../stStaticCall/static_CheckOpcodes5Filler.json | 122 ++++++++++++++++++++- 2 files changed, 201 insertions(+), 6 deletions(-) create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CheckCallCostOOGFiller.json (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckCallCostOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckCallCostOOGFiller.json new file mode 100644 index 000000000..8ae8b78b9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckCallCostOOGFiller.json @@ -0,0 +1,85 @@ +{ + "static_CheckCallCostOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21700" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21733" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 100 0x2000000000000000000000000000000000000000 0 0 0 0) }", + "storage": { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 1 1) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "21700", "21800" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json index 83321c2bb..56b58834a 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json @@ -11,9 +11,9 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : [0,1], "gas" : 1, - "value" : 0 + "value" : -1 }, "network" : ["Metropolis"], "result" : { @@ -26,6 +26,60 @@ } } } + }, + { + "indexes" : { + "data" : [2], + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "3000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : [3], + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "4000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : [4], + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "5000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + } + } } ], "pre" : @@ -48,14 +102,42 @@ "1000000000000000000000000000000000000001" : { "balance" : "0", "nonce" : "0", - "code" : "{ (CALL 100000 0xa000000000000000000000000000000000000002 0 0 0 0 0) }", + "code" : "{ (MSTORE 0 0xb000000000000000000000000000000000000002) (CALL 100000 0xa000000000000000000000000000000000000002 0 0 32 0 0) }", + "storage": { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xb000000000000000000000000000000000000002) (CALL 100000 0xa000000000000000000000000000000000000002 10 0 32 0 0) }", + "storage": { + } + }, + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xc300000000000000000000000000000000000002) (CALLCODE 100000 0xa000000000000000000000000000000000000002 0 0 32 0 0) }", + "storage": { + } + }, + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xc400000000000000000000000000000000000002) (CALLCODE 100000 0xa000000000000000000000000000000000000002 1 0 32 0 0) }", + "storage": { + } + }, + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "nonce" : "0", + "code" : "{ (MSTORE 0 0xc500000000000000000000000000000000000002) (DELEGATECALL 100000 0xa000000000000000000000000000000000000002 0 32 0 0) }", "storage": { } }, "a000000000000000000000000000000000000002" : { "balance" : "0", "nonce" : "0", - "code" : "{ [[ 0 ]] (CALL 50000 0xb000000000000000000000000000000000000002 0 0 0 0 0) }", + "code" : "{ [[ 0 ]] (STATICCALL 50000 (CALLDATALOAD 0) 0 0 0 0) }", "storage": { } }, @@ -63,7 +145,31 @@ "balance" : "0", "nonce" : "0", "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", - "code" : "{ [[ 12 ]] 12 }", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa000000000000000000000000000000000000002 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xb000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "c300000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc300000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "c400000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc400000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "storage": { + } + }, + "c500000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc500000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", "storage": { } } @@ -73,7 +179,11 @@ "0 - call | callcode | delegatecall -> staticcall -> check " ], "data" : [ - "0x0000000000000000000000001000000000000000000000000000000000000001" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001", + "0x0000000000000000000000003000000000000000000000000000000000000001", + "0x0000000000000000000000004000000000000000000000000000000000000001", + "0x0000000000000000000000005000000000000000000000000000000000000001" ], "gasLimit" : [ "50000", "335000" -- cgit