core/vm, eth: Add support for javascript trace functions

This commit is contained in:
Nick Johnson
2016-08-22 15:03:30 +01:00
parent d8cec35b10
commit 2f99720901
6 changed files with 551 additions and 18 deletions

View File

@ -85,7 +85,7 @@ func TestCompiling(t *testing.T) {
func TestResetInput(t *testing.T) {
var sender account
env := NewEnv(false, true)
env := NewEnv(&Config{EnableJit: true, ForceJit: true})
contract := NewContract(sender, sender, big.NewInt(100), big.NewInt(10000), big.NewInt(0))
contract.CodeAddr = &common.Address{}
@ -144,7 +144,7 @@ func runVmBench(test vmBench, b *testing.B) {
if test.precompile && !test.forcejit {
NewProgram(test.code)
}
env := NewEnv(test.nojit, test.forcejit)
env := NewEnv(&Config{EnableJit: !test.nojit, ForceJit: test.forcejit})
b.ResetTimer()
@ -166,12 +166,9 @@ type Env struct {
evm *EVM
}
func NewEnv(noJit, forceJit bool) *Env {
func NewEnv(config *Config) *Env {
env := &Env{gasLimit: big.NewInt(10000), depth: 0}
env.evm = New(env, Config{
EnableJit: !noJit,
ForceJit: forceJit,
})
env.evm = New(env, *config)
return env
}

View File

@ -47,7 +47,7 @@ type dummyEnv struct {
func newDummyEnv(ref *dummyContractRef) *dummyEnv {
return &dummyEnv{
Env: NewEnv(true, false),
Env: NewEnv(&Config{EnableJit: false, ForceJit: false}),
ref: ref,
}
}
@ -57,7 +57,7 @@ func (d dummyEnv) GetAccount(common.Address) Account {
func TestStoreCapture(t *testing.T) {
var (
env = NewEnv(true, false)
env = NewEnv(&Config{EnableJit: false, ForceJit: false})
logger = NewStructLogger(nil)
mem = NewMemory()
stack = newstack()