- "creator" does ovmCREATE -> invalid jumpdest -> creator out-of-gasses (or at least, appears to--really it will revert with no data, so there will be some gas left)
- "creator" does ovmCREATE -> initcode does ovmCREATE -> invalid jumpdest -> creator out-of-gasses (or at least, appears to--really it will revert with no data, so there will be some gas left) AKA same as above but nested CREATEs
- CREATE collisions: TODO fill in what this needs
- OVM gas metering
- do everything for both queue origins/flip flopped roles:
...
...
@@ -52,6 +56,7 @@
- out of gas
- ovmCALL -> [ovmCALL(gas()/2) -> out of gas] -> SSTORE (does not out of gas parent)
- ovmCREATE -> ovmCALL(in constructor) -> ovmSSTORE, return -> ovmREVERT (deployment fails, storage not modified, but state access gas correctly increased)
@@ -168,10 +167,25 @@ export class ovmCALLGenerator extends DefaultTestGenerator {
constgenerator=calleeGenerators[i]
constEMsuccess=result[0]
constEMdata=result[1]
return'subcall '+i+'('+generator.getFunctionName()+') had return status: '+EMsuccess+' and appears to have done: '+generator.interpretActualReturnData(EMdata,EMsuccess)
return'\n initcode subcall '+i+' had response status '+result[0]+' and appears to have done: '+this.getInitcodeGenerators()[i].interpretActualReturnData(result[1],result[0])
'interpretation of expected: \n'+interpretationOfExpected
)
expect(callResult).to.equal(testGenerator.getReturnData())//, 'got bad response, looks like it did:\n' + testGenerator.interpretActualReturnData(callResult))