Spec changes.

* All errors during state transition result in an invalid tx
This commit is contained in:
obscuren
2015-03-05 19:51:25 +01:00
parent ca1093f848
commit 88ff13c241
4 changed files with 37 additions and 7 deletions

View File

@ -1,7 +1,6 @@
package core
import (
"fmt"
"math/big"
"time"
@ -26,7 +25,10 @@ func (self *Execution) Addr() []byte {
func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
// Retrieve the executing code
code := self.env.State().GetCode(codeAddr)
var code []byte
if self.env.State().GetStateObject(codeAddr) != nil {
code = self.env.State().GetCode(codeAddr)
}
return self.exec(code, codeAddr, caller)
}
@ -55,7 +57,7 @@ func (self *Execution) exec(code, contextAddr []byte, caller vm.ContextRef) (ret
caller.ReturnGas(self.Gas, self.price)
return nil, fmt.Errorf("insufficient funds to transfer value. Req %v, has %v", self.value, from.Balance())
return nil, ValueTransferErr("insufficient funds to transfer value. Req %v, has %v", self.value, from.Balance())
}
snapshot := env.State().Copy()