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 ¶
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 Execute ¶
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.
Executes sets up a in memory, temporarily, environment for the execution of the given code. It makes sure that it's restored to it's original state afterwards.
Example ¶
package main import ( "fmt" "github.com/CortexFoundation/CortexTheseus/common" "github.com/CortexFoundation/CortexTheseus/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]
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 CVMConfig vm.Config Random *common.Hash State *state.StateDB GetHashFn func(n uint64) common.Hash }
Config is a basic type specifying certain configuration flags for running the CVM.