From f3dd6c984a9931992e2f4c2f5784befde26c781d Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Wed, 27 Sep 2017 14:49:36 +0200 Subject: Add a test where RETURNDATACOPY with a nonzero size fails after a CALL with insufficient balance --- ...py_following_too_big_transfer_d0g0v0Filler.json | 70 ++++++++++++++++++++++ ...ndatacopy_following_too_big_transferFiller.json | 70 ++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stReturnDataTest/returndatacopy_following_too_big_transfer_d0g0v0Filler.json create mode 100644 src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_too_big_transferFiller.json (limited to 'src') diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stReturnDataTest/returndatacopy_following_too_big_transfer_d0g0v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stReturnDataTest/returndatacopy_following_too_big_transfer_d0g0v0Filler.json new file mode 100644 index 000000000..292e01bd1 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stReturnDataTest/returndatacopy_following_too_big_transfer_d0g0v0Filler.json @@ -0,0 +1,70 @@ +{ + "returndatacopy_following_too_big_transfer_d0g0v0" : { + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0x0a00000000", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "", + "gasLimit" : "0x0a00000000", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x3b6c2d4d0d9d0abf4d624a6f2930e213789e9c00f679a9afa996fb4bd27cb507", + "s" : "0x24a40d7f4cf44278ac739ecf9eeba61554646709142d968ed1c555be138a3ea2", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "v" : "0x1b", + "value" : "0x00" + } + ], + "uncleHeaders" : [ + ] + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0x0a00000000", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "nonce" : "0x00", + "storage" : { + } + }, + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x600060006000600062989680730aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6640900000000f1506020600060003e60c8600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + } + } +} \ No newline at end of file diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_too_big_transferFiller.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_too_big_transferFiller.json new file mode 100644 index 000000000..27bba6316 --- /dev/null +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_too_big_transferFiller.json @@ -0,0 +1,70 @@ +{ + "returndatacopy_following_too_big_transfer" : { + "_info" : { + "comment" : "This test tries RETURNDATACOPY with a non-zero size after a CALL that fails because of insufficient balance." + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Frontier", "Homestead", "Byzantium"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : { + "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", + "nonce" : "0x00", + "storage" : { + } + }, + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (seq (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 10000000 0 0 0 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 200) )}", + "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" + ] + } + } +} -- cgit v1.2.3