diff --git a/ethchain/vm.go b/ethchain/vm.go index 29eb4aaf58..85136e4355 100644 --- a/ethchain/vm.go +++ b/ethchain/vm.go @@ -448,7 +448,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro closure.Price) // Call the closure and set the return value as // main script. - c.Script, _, err = c.Call(vm, nil, hook) + c.Script, gas, err = c.Call(vm, nil, hook) if err != nil { stack.Push(ethutil.BigFalse) diff --git a/ethutil/bytes.go b/ethutil/bytes.go index b298675a29..075e40b4c4 100644 --- a/ethutil/bytes.go +++ b/ethutil/bytes.go @@ -88,3 +88,13 @@ func IsHex(str string) bool { l := len(str) return l >= 4 && l%2 == 0 && str[0:2] == "0x" } + +func StringToByteFunc(str string, cb func(str string) []byte) (ret []byte) { + if str[0:2] == "0x" { + ret = FromHex(str[2:]) + } else { + ret = cb(str) + } + + return +}