diff options
author | obscuren <geffobscura@gmail.com> | 2015-06-16 01:28:48 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-06-16 01:28:48 +0800 |
commit | 5daf8729be88eca87b302ebf7a46fc69cad0f6d0 (patch) | |
tree | 0053cb5b84978645b3c83895a651c512e081a183 /core/vm/environment.go | |
parent | bac9a94ddf20dc530966cbf6cd384aaf94aedc77 (diff) | |
parent | 4673b04503742de9b1622557b44135d6a4934ad6 (diff) | |
download | go-tangerine-0.9.30.tar go-tangerine-0.9.30.tar.gz go-tangerine-0.9.30.tar.bz2 go-tangerine-0.9.30.tar.lz go-tangerine-0.9.30.tar.xz go-tangerine-0.9.30.tar.zst go-tangerine-0.9.30.zip |
Merge branch 'release/0.9.30'v0.9.30
Diffstat (limited to 'core/vm/environment.go')
-rw-r--r-- | core/vm/environment.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/core/vm/environment.go b/core/vm/environment.go index 282d19578..c103049a2 100644 --- a/core/vm/environment.go +++ b/core/vm/environment.go @@ -8,6 +8,8 @@ import ( "github.com/ethereum/go-ethereum/core/state" ) +// Environment is is required by the virtual machine to get information from +// it's own isolated environment. For an example see `core.VMEnv` type Environment interface { State() *state.StateDB @@ -20,6 +22,8 @@ type Environment interface { GasLimit() *big.Int Transfer(from, to Account, amount *big.Int) error AddLog(*state.Log) + AddStructLog(StructLog) + StructLogs() []StructLog VmType() Type @@ -31,6 +35,19 @@ type Environment interface { Create(me ContextRef, data []byte, gas, price, value *big.Int) ([]byte, error, ContextRef) } +// StructLog is emited to the Environment each cycle and lists information about the curent internal state +// prior to the execution of the statement. +type StructLog struct { + Pc uint64 + Op OpCode + Gas *big.Int + GasCost *big.Int + Memory []byte + Stack []*big.Int + Storage map[common.Hash][]byte + Err error +} + type Account interface { SubBalance(amount *big.Int) AddBalance(amount *big.Int) |