runtime

package
v1.0.22-dev Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2021 License: GPL-3.0 Imports: 10 Imported by: 1

Documentation

Overview

Package runtime provides a basic execution model for executing CVM 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 CVM'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 CVM 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 CVM'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
package main

import (
	"fmt"

	"github.com/core-coin/go-core/common"
	"github.com/core-coin/go-core/core/vm/runtime"
)

func main() {
	ret, _, err := runtime.Execute(common.Hex2Bytes("6060604052600a8060106000396000f360606040526008565b00"), nil, nil)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(ret)
}
Output:

[96 96 96 64 82 96 8 86 91 0]

func NewEnv

func NewEnv(cfg *Config) *vm.CVM

Types

type Config

type Config struct {
	ChainConfig *params.ChainConfig
	Difficulty  *big.Int
	Origin      common.Address
	Coinbase    common.Address
	BlockNumber *big.Int
	Time        *big.Int
	EnergyLimit uint64
	EnergyPrice *big.Int
	Value       *big.Int
	Debug       bool
	CVMConfig   vm.Config

	State     *state.StateDB
	GetHashFn func(n uint64) common.Hash
}

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

Jump to

Keyboard shortcuts

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