aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Sutton <adrian.sutton@consensys.net>2018-11-20 08:51:58 +0800
committerAdrian Sutton <adrian.sutton@consensys.net>2018-11-20 08:51:58 +0800
commit049ed97a513385237ee784ccb667d8c9c208b3a9 (patch)
treec21c8145f2c8c363e57a4d5f4208d7c46f0a96ce
parentdad5e8a06757f5261facc56e2f426b6a8409e409 (diff)
downloaddexon-tests-049ed97a513385237ee784ccb667d8c9c208b3a9.tar.gz
dexon-tests-049ed97a513385237ee784ccb667d8c9c208b3a9.tar.zst
dexon-tests-049ed97a513385237ee784ccb667d8c9c208b3a9.zip
Add test that checks EXTCODEHASH of self destructed account after original call exits.
-rw-r--r--GeneralStateTests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCall.json70
-rw-r--r--src/GeneralStateTestsFiller/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json81
2 files changed, 151 insertions, 0 deletions
diff --git a/GeneralStateTests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCall.json b/GeneralStateTests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCall.json
new file mode 100644
index 000000000..761608a0d
--- /dev/null
+++ b/GeneralStateTests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCall.json
@@ -0,0 +1,70 @@
+{
+ "extCodeHashCreatedAndDeletedAccountRecheckInOuterCall" : {
+ "_info" : {
+ "comment" : "EXTCODEHASH/EXTCODESIZE of an account created then deleted in a CALL, checking results after the CALL returns",
+ "filledwith" : "testeth 1.5.0-alpha.6-1+commit.19ad7d95.dirty",
+ "lllcversion" : "Version: 0.5.0-develop.2018.9.29+commit.c4b5101b.Darwin.appleclang",
+ "source" : "src/GeneralStateTestsFiller/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json",
+ "sourceHash" : "0631e7d896d404267361eef443afb392a31a841411535416061443958b746db5"
+ },
+ "env" : {
+ "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "0x20000",
+ "currentGasLimit" : "0x0f4240",
+ "currentNumber" : "0x01",
+ "currentTimestamp" : "0x03e8",
+ "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "post" : {
+ "Constantinople" : [
+ {
+ "hash" : "0x76b674c890b8d926fff115e8e51ab469190d115281518dce0e1052773e15c7a3",
+ "indexes" : {
+ "data" : 0,
+ "gas" : 0,
+ "value" : 0
+ },
+ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ }
+ ]
+ },
+ "pre" : {
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x0de0b6b3a7640000",
+ "code" : "",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0xdeadbeef00000000000000000000000000000000" : {
+ "balance" : "0x0de0b6b3a7640000",
+ "code" : "0x6010600f80604360803960806000f56000526000513f6000556000513b6001556000600060006000600060005162010000f1506000513f6002556000513b60035500fe600380600c6000396000f3fe6000ff",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0xdeadbeef00000000000000000000000000000001" : {
+ "balance" : "0x0de0b6b3a7640000",
+ "code" : "0x6000600060006000600073deadbeef0000000000000000000000000000000062020000f150737be7677a20a298ff0676ab31f91a0a923f8d94713f600055737be7677a20a298ff0676ab31f91a0a923f8d94713b60015500",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : [
+ "0x"
+ ],
+ "gasLimit" : [
+ "0x061a80"
+ ],
+ "gasPrice" : "0x01",
+ "nonce" : "0x00",
+ "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "0xdeadbeef00000000000000000000000000000001",
+ "value" : [
+ "0x01"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/src/GeneralStateTestsFiller/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json b/src/GeneralStateTestsFiller/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json
new file mode 100644
index 000000000..3947f7c60
--- /dev/null
+++ b/src/GeneralStateTestsFiller/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json
@@ -0,0 +1,81 @@
+{
+ "extCodeHashCreatedAndDeletedAccountRecheckInOuterCall": {
+ "_info": {
+ "comment": "EXTCODEHASH/EXTCODESIZE of an account created then deleted in a CALL, checking results after the CALL returns"
+ },
+ "env": {
+ "currentCoinbase": "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty": "0x20000",
+ "currentGasLimit": "1000000",
+ "currentNumber": "1",
+ "currentTimestamp": "1000",
+ "previousHash": "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "expect": [
+ {
+ "indexes": {
+ "data": -1,
+ "gas": -1,
+ "value": -1
+ },
+ "network": [
+ ">=Constantinople"
+ ],
+ "result": {
+ "deadbeef00000000000000000000000000000000": {
+ "storage": {
+ "0x00": "0x396daaf3a7871f857cc9b5878c6bb66c394a6d109706095617db9f4e4c22edcd",
+ "0x01": "0x03",
+ "0x02": "0x396daaf3a7871f857cc9b5878c6bb66c394a6d109706095617db9f4e4c22edcd",
+ "0x03": "0x03"
+ }
+ },
+ "deadbeef00000000000000000000000000000001": {
+ "storage": {
+ "0x00": "0x396daaf3a7871f857cc9b5878c6bb66c394a6d109706095617db9f4e4c22edcd",
+ "0x01": "0x03"
+ }
+ }
+ }
+ }
+ ],
+ "pre": {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "balance": "1000000000000000000",
+ "code": "0x",
+ "nonce": "0",
+ "storage": {
+ }
+ },
+ "deadbeef00000000000000000000000000000000": {
+ "balance": "1000000000000000000",
+ "code": "{ (MSTORE 0 (CREATE2 0 128 (lll { (RETURN 0 (lll { (SELFDESTRUCT 0x0) } 0)) } 128) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (CALL 0x10000 (MLOAD 0) 0 0 0 0 0) [[2]] (EXTCODEHASH (MLOAD 0)) [[3]] (EXTCODESIZE (MLOAD 0)) (STOP) }",
+ "nonce": "0",
+ "storage": {
+ }
+ },
+ "deadbeef00000000000000000000000000000001": {
+ "balance": "1000000000000000000",
+ "code": "{ (CALL 0x20000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 0) [[0]] (EXTCODEHASH 0x7be7677a20a298ff0676ab31f91a0a923f8d9471) [[1]] (EXTCODESIZE 0x7be7677a20a298ff0676ab31f91a0a923f8d9471) (STOP) }",
+ "nonce": "0",
+ "storage": {
+ }
+ }
+ },
+ "transaction": {
+ "data": [
+ ""
+ ],
+ "gasLimit": [
+ "400000"
+ ],
+ "gasPrice": "1",
+ "nonce": "0",
+ "secretKey": "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to": "deadbeef00000000000000000000000000000001",
+ "value": [
+ "1"
+ ]
+ }
+ }
+} \ No newline at end of file