aboutsummaryrefslogtreecommitdiffstats
path: root/src/GeneralStateTestsFiller
diff options
context:
space:
mode:
authorDimitry <winsvega@mail.ru>2017-06-28 21:25:40 +0800
committerDimitry <winsvega@mail.ru>2017-06-28 21:25:40 +0800
commite7ee61ef554e987e9ab958faa46f291b2cbc0a74 (patch)
tree27aa73dfcd4d46d1c1b419f356ed9a8f322d45a0 /src/GeneralStateTestsFiller
parenta2f12738c988551789c7ed046220643cb8a30165 (diff)
downloadtangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar.gz
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar.bz2
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar.lz
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar.xz
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.tar.zst
tangerine-tests-e7ee61ef554e987e9ab958faa46f291b2cbc0a74.zip
more staticcall tests
Diffstat (limited to 'src/GeneralStateTestsFiller')
-rw-r--r--src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json164
-rw-r--r--src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json171
-rw-r--r--src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json110
-rw-r--r--src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json90
-rw-r--r--src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json92
5 files changed, 627 insertions, 0 deletions
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"
+ ]
+ }
+ }
+}