|
|
|
@ -32,6 +32,7 @@ import ( |
|
|
|
|
"runtime" |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/ethdb" |
|
|
|
|
"github.com/ethereum/go-ethereum/ethutil" |
|
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
|
"github.com/ethereum/go-ethereum/state" |
|
|
|
@ -64,13 +65,18 @@ func main() { |
|
|
|
|
|
|
|
|
|
tstart := time.Now() |
|
|
|
|
|
|
|
|
|
ret, _, e := closure.Call(vm.New(NewVmEnv(), vm.DebugVmTy), nil) |
|
|
|
|
env := NewVmEnv() |
|
|
|
|
ret, _, e := closure.Call(vm.New(env, vm.DebugVmTy), nil) |
|
|
|
|
|
|
|
|
|
logger.Flush() |
|
|
|
|
if e != nil { |
|
|
|
|
perr(e) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if *dump { |
|
|
|
|
fmt.Println(string(env.state.Dump())) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var mem runtime.MemStats |
|
|
|
|
runtime.ReadMemStats(&mem) |
|
|
|
|
fmt.Printf("vm took %v\n", time.Since(tstart)) |
|
|
|
@ -90,7 +96,8 @@ type VmEnv struct { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func NewVmEnv() *VmEnv { |
|
|
|
|
return &VmEnv{state.New(trie.New(nil, ""))} |
|
|
|
|
db, _ := ethdb.NewMemDatabase() |
|
|
|
|
return &VmEnv{state.New(trie.New(db, ""))} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (VmEnv) Origin() []byte { return nil } |
|
|
|
|