Documentation

Overview

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

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func Call

    func Call(address common.Address, input []byte, cfg *Config) ([]byte, uint64, error)

      Call executes the code given by the contract's address. It will return the EVM's return value or an error if it failed.

      Call, unlike Execute, requires a config and also requires the State field to be set.

      func Create

      func Create(input []byte, cfg *Config) ([]byte, common.Address, uint64, error)

        Create executes the code using the EVM create method

        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.

          Execute sets up an in-memory, temporary, environment for the execution of the given code. It makes sure that it's restored to its original state afterwards.

          Example
          Output:
          
          [96 96 96 64 82 96 8 86 91 0]
          

          func NewEnv

          func NewEnv(cfg *Config) *vm.EVM

          Types

          type Config

          type Config struct {
          	ChainConfig *params.ChainConfig
          	Difficulty  *big.Int
          	Origin      common.Address
          	Coinbase    common.Address
          	BlockNumber *big.Int
          	Time        *big.Int
          	GasLimit    uint64
          	GasPrice    *big.Int
          	Value       *big.Int
          	Debug       bool
          	EVMConfig   vm.Config
          
          	State     *state.StateDB
          	GetHashFn func(n uint64) common.Hash
          }

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