v0.0.1 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2016 License: GPL-3.0 Imports: 8 Imported by: 0



Package runtime provides a basic execution model for executing EVM code.



This section is empty.


This section is empty.


func Execute

func Execute(code, input []byte, cfg *Config) ([]byte, *state.StateDB, error)

Execute executes the code using the input as call data during the execution. It returns the EVM's return value, the new state and an error if it failed.

Executes sets up a in memory, temporarily, environment for the execution of the given code. It enabled the JIT by default and make sure that it's restored to it's original state afterwards.

func NewEnv

func NewEnv(cfg *Config, state *state.StateDB) vm.Environment

NewEnv returns a new vm.Environment


type Config

type Config struct {
	Difficulty  *big.Int
	Origin      common.Address
	Coinbase    common.Address
	BlockNumber *big.Int
	Time        *big.Int
	GasLimit    *big.Int
	GasPrice    *big.Int
	Value       *big.Int
	DisableJit  bool // "disable" so it's enabled by default
	Debug       bool

	GetHashFn func(n uint64) common.Hash

Config is a basic type specifing certain configuration flags for running the EVM.

type Env

type Env struct {
	// contains filtered or unexported fields

Env is a basic runtime environment required for running the EVM.

func (*Env) AddLog

func (self *Env) AddLog(log *vm.Log)

func (*Env) AddStructLog

func (self *Env) AddStructLog(log vm.StructLog)

func (*Env) BlockNumber

func (self *Env) BlockNumber() *big.Int

func (*Env) Call

func (self *Env) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error)

func (*Env) CallCode

func (self *Env) CallCode(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error)

func (*Env) CanTransfer

func (self *Env) CanTransfer(from common.Address, balance *big.Int) bool

func (*Env) Coinbase

func (self *Env) Coinbase() common.Address

func (*Env) Create

func (self *Env) Create(caller vm.ContractRef, data []byte, gas, price, value *big.Int) ([]byte, common.Address, error)

func (*Env) Db

func (self *Env) Db() vm.Database

func (*Env) Depth

func (self *Env) Depth() int

func (*Env) Difficulty

func (self *Env) Difficulty() *big.Int

func (*Env) GasLimit

func (self *Env) GasLimit() *big.Int

func (*Env) GetHash

func (self *Env) GetHash(n uint64) common.Hash

func (*Env) MakeSnapshot

func (self *Env) MakeSnapshot() vm.Database

func (*Env) Origin

func (self *Env) Origin() common.Address

func (*Env) SetDepth

func (self *Env) SetDepth(i int)

func (*Env) SetSnapshot

func (self *Env) SetSnapshot(copy vm.Database)

func (*Env) StructLogs

func (self *Env) StructLogs() []vm.StructLog

func (*Env) Time

func (self *Env) Time() *big.Int

func (*Env) Transfer

func (self *Env) Transfer(from, to vm.Account, amount *big.Int)

func (*Env) VmType

func (self *Env) VmType() vm.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL