package runtime
import "github.com/ethereum/go-ethereum/core/vm/runtime"
Package runtime provides a basic execution model for executing EVM code.
Index ¶
- func Call(address common.Address, input []byte, cfg *Config) ([]byte, uint64, error)
- func Create(input []byte, cfg *Config) ([]byte, common.Address, uint64, error)
- func Execute(code, input []byte, cfg *Config) ([]byte, *state.StateDB, error)
- func NewEnv(cfg *Config) *vm.EVM
- type Config
Examples ¶
Functions ¶
func Call ¶
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 ¶
Create executes the code using the EVM create method
func Execute ¶
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.
Code:play
Output:Example¶
package main
import (
"fmt"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/vm/runtime"
)
func main() {
ret, _, err := runtime.Execute(common.Hex2Bytes("6060604052600a8060106000396000f360606040526008565b00"), nil, nil)
if err != nil {
fmt.Println(err)
}
fmt.Println(ret)
}
[96 96 96 64 82 96 8 86 91 0]
func NewEnv ¶
Types ¶
type Config ¶
type Config struct { ChainConfig *params.ChainConfig Difficulty *big.Int Origin common.Address Coinbase common.Address BlockNumber *big.Int Time uint64 GasLimit uint64 GasPrice *big.Int Value *big.Int Debug bool EVMConfig vm.Config BaseFee *big.Int BlobBaseFee *big.Int BlobHashes []common.Hash BlobFeeCap *big.Int Random *common.Hash State *state.StateDB GetHashFn func(n uint64) common.Hash }
Config is a basic type specifying certain configuration flags for running the EVM.
Source Files ¶
- Version
- v1.15.11 (latest)
- Published
- May 5, 2025
- Platform
- linux/amd64
- Imports
- 10 packages
- Last checked
- 1 day ago –
Tools for package owners.