aboutsummaryrefslogblamecommitdiffstats
path: root/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json
blob: 65c403041b2fa34d013ffcb0061e90d46f269730 (plain) (tree)















































































                                                                                                                                                                                                                  



























































































































































































                                                                                                                                                                                                  






                                                                                                                       

                                                          
                                                                                                                                             

























                                                                                             
{
    "RevertOpcodeInCallsOnNonEmptyReturnData" : {
        "_info" : {
            "comment" : "This test checks that the returndata buffer is changed when a subcall REVERTs.  In each test case, a non-empty returndata buffer is set up, and then calls into a contract that REVERTs."
        },
        "env" : {
            "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
            "currentDifficulty" : "0x020000",
            "currentGasLimit" : "10000000",
            "currentNumber" : "1",
            "currentTimestamp" : "1000",
            "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
        },
        "expect" : [
        {
                "indexes" : {
                    "data" : 0,
                    "gas" : 0,
                    "value" : -1
                },
                "network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                        "storage" : {
                        }
                    },
            "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "storage" : {
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 0,
                    "gas" : 1,
                    "value" : -1
                },
                "network" : ["Frontier", "Homestead", "EIP150", "EIP158"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "storage" : {
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 0,
                    "gas" : 0,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                        "storage" : {
                            "0x0a" : "0x01"
                        }
                    },
            "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "nonce" : "0",
            "storage" : {
                            "0x02" : "0x01"
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 0,
                    "gas" : 1,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "storage" : {
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 1,
                    "gas" : 0,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                        "storage" : {
                            "0x0a" : "0x01"
                        }
                    },
            "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "nonce" : "0",
            "storage" : {
                            "0x02" : "0x01"
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 1,
                    "gas" : 1,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "storage" : {
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 2,
                    "gas" : 0,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                        "storage" : {
                            "0x0a" : "0x01"
                        }
                    },
            "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "nonce" : "0",
            "storage" : {
                            "0x02" : "0x01"
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 2,
                    "gas" : 1,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "storage" : {
                        }
             }
                }
            },
        {
                "indexes" : {
                    "data" : 3,
                    "gas" : 0,
                    "value" : -1
                },
                "network" : ["Byzantium"],
                "result" : {
            "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "storage" : {
                        }
            },
            "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                        "storage" : {
                            "0x0a" : "0x01"
                        }
                    },
            "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "nonce" : "0",
            "storage" : {
                            "0x00" : "0x01"
                        }
             },
            "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "nonce" : "0",
            "storage" : {
                            "0x05" : "0x01"
                        }
             }
                }
            }
        ],
        "pre" :
        {
            "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1000000000000",
                "code" : "",
                "nonce" : "0",
                "storage" : {
                }
            },
         "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[10]] (CALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}",
                "nonce" : "0",
                "storage" : {
                    "0x0a" : "0xff"
                }
            },
        "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }",
                "nonce" : "0",
                "storage" : {
                }
            },
        "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }",
                "nonce" : "0",
                "storage" : {
                }
            },
        "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] (RETURNDATASIZE) }",
                "nonce" : "0",
                "storage" : {
                }
            },
        "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }",
                "nonce" : "0",
                "storage" : {
                }
            },
        "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[4]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] (RETURNDATASIZE) }",
                "nonce" : "0",
                "storage" : {
                }
            },
        "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
            "balance" : "1",
            "//comment" : "Recording it's called at [[1]], and reverting. The store into [[3]] should not be reached.",
            "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }",
            "nonce" : "0",
            "storage" : {
            }
        },
        "ffff5374fce5edbc8e2a8697c15331677e6ebf0b" : {
                "balance" : "1",
                "// comment" : "This should return 12 as a return value.  This sets the returndata buffer of the caller to be 64-byte long.",
                "code" : "{ [1] 12 (RETURN 0 64) }",
                "nonce" : "0",
                "storage" : {
                }
            }
        },
        "transaction" : {
            "data" : [
        "0x000000000000000000000000b0005374fce5edbc8e2a8697c15331677e6ebf0b",
        "0x000000000000000000000000b1005374fce5edbc8e2a8697c15331677e6ebf0b",
        "0x000000000000000000000000b2005374fce5edbc8e2a8697c15331677e6ebf0b",
        "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b"
            ],
            "gasLimit" : [
                "860000", "28000"
            ],
            "gasPrice" : "1",
            "nonce" : "0",
            "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
            "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b",
            "value" : [
                "0"
            ]
        }
    }
}