go-pulse/vm/vm.go
obscuren 99853ac3ce Moved execution from vm to chain.
This moves call and create to the specified environments. Vms are no
longer re-used. Vm uses environment's Call(Code) and Create in order to
execute new contracts or transfer value between accounts.

State transition now uses the same mechanism described above.
2014-12-03 17:06:54 +01:00

37 lines
780 B
Go

package vm
import "math/big"
// BIG FAT WARNING. THIS VM IS NOT YET IS USE!
// I want to get all VM tests pass first before updating this VM
type Vm struct {
env Environment
err error
depth int
}
func New(env Environment, typ Type) VirtualMachine {
switch typ {
case DebugVmTy:
return NewDebugVm(env)
default:
return &Vm{env: env}
}
}
func (self *Vm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
return nil, nil
}
func (self *Vm) Env() Environment {
return self.env
}
func (self *Vm) Depth() int {
return self.depth
}
func (self *Vm) Printf(format string, v ...interface{}) VirtualMachine { return self }
func (self *Vm) Endl() VirtualMachine { return self }