aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitry <winsvega@mail.ru>2017-01-09 19:36:16 +0800
committerDimitry <winsvega@mail.ru>2017-01-09 19:36:16 +0800
commit133f327a7f06088030a60fd165b957bf4d0ebc52 (patch)
tree09ac4cf110ca7a509935f815f07f6aa1e6ecd8cc
parenta77a8ffbde869d5e86cafe455b8bbbcf3df520f9 (diff)
downloadtangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.gz
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.bz2
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.lz
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.xz
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.zst
tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.zip
more revert call tests in contract interactions
-rw-r--r--GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json151
-rw-r--r--GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json110
-rw-r--r--src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json119
-rw-r--r--src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json29
4 files changed, 398 insertions, 11 deletions
diff --git a/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json
new file mode 100644
index 000000000..1a720bc57
--- /dev/null
+++ b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json
@@ -0,0 +1,151 @@
+{
+ "RevertRemoteSubCallStorageOOG" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "0x02b8feb0",
+ "currentGasLimit" : "0x989680",
+ "currentNumber" : "0x28d138",
+ "currentTimestamp" : "0x01",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "post" : {
+ "EIP150" : [
+ {
+ "hash" : "04068d2d81730e74a66ab864af1073c8b7ade7c47680d10d782638320f776c20",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "0df4cf0474e559e763dd66ca1f543974ae6c675ddf2c7c1deb88274ce226819a",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 2,
+ "value" : 0
+ }
+ }
+ ],
+ "EIP158" : [
+ {
+ "hash" : "04068d2d81730e74a66ab864af1073c8b7ade7c47680d10d782638320f776c20",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "991a17af593912ef7be7d526b56e4605271135c8e3f9ab16260ecc53179727ab",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 2,
+ "value" : 0
+ }
+ }
+ ],
+ "Frontier" : [
+ {
+ "hash" : "eb8017c3cc4624d2be7c5c746a416e1ba33c6cdaf57bac91e9a3c368e16e8fd1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "1d76ca685425229b1bcc27120c269e0134b87b646ba36735ea9e15b8a604a438",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 2,
+ "value" : 0
+ }
+ }
+ ],
+ "Homestead" : [
+ {
+ "hash" : "eb8017c3cc4624d2be7c5c746a416e1ba33c6cdaf57bac91e9a3c368e16e8fd1",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "1d76ca685425229b1bcc27120c269e0134b87b646ba36735ea9e15b8a604a438",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 2,
+ "value" : 0
+ }
+ }
+ ]
+ },
+ "pre" : {
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "0x01",
+ "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c414610049578063c040622614610058575b610000565b346100005761005661007f565b005b346100005761006561008a565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b6000600060405161016f80610163833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff166373027f6d306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b156100005760325a03f11561000057505050600d600181905550600191505b50905600606060405234610000575b610156806100196000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806373027f6d1461003e575b610000565b346100005761006f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610071565b005b8073ffffffffffffffffffffffffffffffffffffffff1660405180807f73746f7228290000000000000000000000000000000000000000000000000000815250600601905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b505600a165627a7a72305820db9c9d1f37fd36768131a0bf9687f465e15b0503452e603be6b6f07b70d72e260029a165627a7a72305820f8ff2f7feef24d01a1cc070e67db9e15ac34810c8e5d1c7f34f3c38148eeae900029",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0xe8d4a51000",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0xc0406226"
+ ],
+ "gasLimit" : [
+ "148000",
+ "181000",
+ "145000"
+ ],
+ "gasPrice" : "0x01",
+ "nonce" : "0x00",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "a000000000000000000000000000000000000000",
+ "value" : [
+ "0"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json
index 355017e5d..2939159ae 100644
--- a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json
+++ b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json
@@ -11,49 +11,145 @@
"post" : {
"EIP150" : [
{
- "hash" : "8f688eeaf04ad9168a13bd416fe93a23310783dc12a2362446197cc0b99ede34",
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
"indexes" : {
"data" : 0,
"gas" : 0,
"value" : 0
}
+ },
+ {
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 1
+ }
+ },
+ {
+ "hash" : "c7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "d32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 1
+ }
}
],
"EIP158" : [
{
- "hash" : "8f688eeaf04ad9168a13bd416fe93a23310783dc12a2362446197cc0b99ede34",
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
"indexes" : {
"data" : 0,
"gas" : 0,
"value" : 0
}
+ },
+ {
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 1
+ }
+ },
+ {
+ "hash" : "c7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "d32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 1
+ }
}
],
"Frontier" : [
{
- "hash" : "8f688eeaf04ad9168a13bd416fe93a23310783dc12a2362446197cc0b99ede34",
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
"indexes" : {
"data" : 0,
"gas" : 0,
"value" : 0
}
+ },
+ {
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 1
+ }
+ },
+ {
+ "hash" : "c7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "d32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 1
+ }
}
],
"Homestead" : [
{
- "hash" : "8f688eeaf04ad9168a13bd416fe93a23310783dc12a2362446197cc0b99ede34",
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
"indexes" : {
"data" : 0,
"gas" : 0,
"value" : 0
}
+ },
+ {
+ "hash" : "67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 1
+ }
+ },
+ {
+ "hash" : "c7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 0
+ }
+ },
+ {
+ "hash" : "d32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 1,
+ "value" : 1
+ }
}
]
},
"pre" : {
"a000000000000000000000000000000000000000" : {
"balance" : "0x01",
- "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a7230582090717cc95d17601245cda24500edc484cd0a2ee609184c3cca7515680312b43e0029",
+ "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a723058202a8a75d7d795b5bcb9042fb18b283daa90b999a11ddec892f548732235342eb60029",
"nonce" : "0x00",
"storage" : {
}
@@ -71,13 +167,15 @@
"0xc0406226"
],
"gasLimit" : [
- "81000"
+ "81000",
+ "181000"
],
"gasPrice" : "0x01",
"nonce" : "0x00",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "a000000000000000000000000000000000000000",
"value" : [
+ "0",
"1"
]
}
diff --git a/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json b/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json
new file mode 100644
index 000000000..b9d69d4e8
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json
@@ -0,0 +1,119 @@
+{
+ "RevertRemoteSubCallStorageOOG" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "2675000",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "expect" : [
+ {
+ "indexes" : {
+ "data" : -1,
+ "gas" : 0,
+ "value" : -1
+ },
+ "network" : ["Frontier"],
+ "result" : {
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "1",
+ "nonce" : "1",
+ "storage" : {
+ "0x01" : "0x0d"
+ }
+ }
+ }
+ },
+ {
+ "indexes" : {
+ "data" : -1,
+ "gas" : 2,
+ "value" : -1
+ },
+ "network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
+ "result" : {
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ {
+ "indexes" : {
+ "data" : -1,
+ "gas" : 1,
+ "value" : -1
+ },
+ "network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
+ "result" : {
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "1",
+ "nonce" : "1",
+ "storage" : {
+ "0x00" : "0x0c",
+ "0x01" : "0x0d"
+ }
+ }
+ }
+ }
+ ],
+ "pre" :
+ {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000",
+ "code" : "",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "1",
+ "code" : "contract B ",
+ "code" : "{",
+ "code" : " function callback(address x)",
+ "code" : " {",
+ "code" : " x.call(bytes4(sha3('stor()'))); ",
+ "code" : " }",
+ "code" : "}",
+ "code" : "",
+ "code" : "contract A {",
+ "code" : " int s;",
+ "code" : " int s2;",
+ "code" : " function run() returns (bool){",
+ "code" : " B caller = new B();",
+ "code" : " caller.callback(this);",
+ "code" : " s2 = 13;",
+ "code" : " return true;",
+ "code" : " }",
+ "code" : " function stor() {",
+ "code" : " s = 12;",
+ "code" : " }",
+ "code" : "}",
+ "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c414610049578063c040622614610058575b610000565b346100005761005661007f565b005b346100005761006561008a565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b6000600060405161016f80610163833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff166373027f6d306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b156100005760325a03f11561000057505050600d600181905550600191505b50905600606060405234610000575b610156806100196000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806373027f6d1461003e575b610000565b346100005761006f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610071565b005b8073ffffffffffffffffffffffffffffffffffffffff1660405180807f73746f7228290000000000000000000000000000000000000000000000000000815250600601905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b505600a165627a7a72305820db9c9d1f37fd36768131a0bf9687f465e15b0503452e603be6b6f07b70d72e260029a165627a7a72305820f8ff2f7feef24d01a1cc070e67db9e15ac34810c8e5d1c7f34f3c38148eeae900029",
+ "nonce" : "",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "contract A calls itself. In the sub-call, storage is modified, the calls returns successfully. After that, storage is modified again and then an exception occurs. 0xc0406226 == sha(run())",
+ "data" : [
+ "0xc0406226"
+ ],
+ "gasLimit" : [
+ "148000", "181000", "145000"
+ ],
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "a000000000000000000000000000000000000000",
+ "value" : [
+ "0"
+ ]
+ }
+ }
+}
diff --git a/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json b/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json
index 0fbf3ea39..0b31ac469 100644
--- a/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json
+++ b/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json
@@ -12,8 +12,8 @@
{
"indexes" : {
"data" : -1,
- "gas" : -1,
- "value" : -1
+ "gas" : 0,
+ "value" : 0
},
"network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
"result" : {
@@ -24,6 +24,25 @@
}
}
}
+ },
+ {
+ "indexes" : {
+ "data" : -1,
+ "gas" : 1,
+ "value" : 0
+ },
+ "network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
+ "result" : {
+ "a000000000000000000000000000000000000000" : {
+ "balance" : "1",
+ "nonce" : "0",
+ "storage" : {
+ "0x00" : "0x0c",
+ "0x01" : "0x0d",
+ "0x02" : "0x0e"
+ }
+ }
+ }
}
],
"pre" :
@@ -50,7 +69,7 @@
"code" : " s = 12;",
"code" : " }",
"code" : "}",
- "code" : "0x0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a7230582090717cc95d17601245cda24500edc484cd0a2ee609184c3cca7515680312b43e0029",
+ "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a723058202a8a75d7d795b5bcb9042fb18b283daa90b999a11ddec892f548732235342eb60029",
"nonce" : "",
"storage" : {
}
@@ -62,14 +81,14 @@
"0xc0406226"
],
"gasLimit" : [
- "81000"
+ "81000", "181000"
],
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "a000000000000000000000000000000000000000",
"value" : [
- "1"
+ "0", "1"
]
}
}