2014-10-18 06:31:20 -05:00
|
|
|
package vm
|
2014-07-22 04:54:48 -05:00
|
|
|
|
2014-12-03 10:06:54 -06:00
|
|
|
import "math/big"
|
2014-07-22 04:54:48 -05:00
|
|
|
|
2014-10-15 10:12:26 -05:00
|
|
|
// BIG FAT WARNING. THIS VM IS NOT YET IS USE!
|
|
|
|
// I want to get all VM tests pass first before updating this VM
|
|
|
|
|
2014-07-22 04:54:48 -05:00
|
|
|
type Vm struct {
|
2014-10-14 04:48:52 -05:00
|
|
|
env Environment
|
|
|
|
err error
|
2014-10-10 17:41:37 -05:00
|
|
|
depth int
|
2014-07-22 04:54:48 -05:00
|
|
|
}
|
|
|
|
|
2014-10-14 04:48:52 -05:00
|
|
|
func New(env Environment, typ Type) VirtualMachine {
|
|
|
|
switch typ {
|
|
|
|
case DebugVmTy:
|
|
|
|
return NewDebugVm(env)
|
2015-01-12 12:40:14 -06:00
|
|
|
case JitVmTy:
|
|
|
|
return NewJitVm(env)
|
2014-10-14 04:48:52 -05:00
|
|
|
default:
|
|
|
|
return &Vm{env: env}
|
2014-07-22 04:54:48 -05:00
|
|
|
}
|
2014-09-14 18:11:01 -05:00
|
|
|
}
|
|
|
|
|
2015-01-02 09:14:12 -06:00
|
|
|
func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
|
2014-12-12 15:24:27 -06:00
|
|
|
panic("not implemented")
|
2014-07-22 04:54:48 -05:00
|
|
|
}
|
|
|
|
|
2014-10-14 04:48:52 -05:00
|
|
|
func (self *Vm) Env() Environment {
|
|
|
|
return self.env
|
2014-07-22 04:54:48 -05:00
|
|
|
}
|
|
|
|
|
2014-10-14 04:48:52 -05:00
|
|
|
func (self *Vm) Depth() int {
|
|
|
|
return self.depth
|
2014-09-19 06:19:19 -05:00
|
|
|
}
|
2014-10-14 06:37:26 -05:00
|
|
|
|
|
|
|
func (self *Vm) Printf(format string, v ...interface{}) VirtualMachine { return self }
|
|
|
|
func (self *Vm) Endl() VirtualMachine { return self }
|