Documentation ¶
Index ¶
- func Call(address ethcomm.Address, input []byte, cfg *Config) ([]byte, uint64, error)
- func CanTransfer(db evm.StateDB, addr common.Address, amount *big.Int) bool
- func CompileCode(path string) map[string][2]string
- func Create(input []byte, cfg *Config) ([]byte, ethcomm.Address, uint64, error)
- func Create2(input []byte, cfg *Config, salt *uint256.Int) ([]byte, ethcomm.Address, uint64, error)
- func Ensure(err error)
- func Execute(code, input []byte, cfg *Config) ([]byte, *statedb.StateDB, error)
- func NewEnv(cfg *Config) *evm.EVM
- func SetDefaults(cfg *Config)
- func Transfer(db evm.StateDB, sender, recipient common.Address, amount *big.Int)
- type Config
- type Contract
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 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 CanTransfer ¶
CanTransfer checks whether there are enough funds in the address' account to make a transfer. This does not take the necessary gas in to account to make the transfer valid.
func CompileCode ¶
CompileCode compiles the solidity code for the specified path. See https://docs.soliditylang.org/zh/v0.8.17/installing-solidity.html#linux to install solc command
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.
Types ¶
type Config ¶
type Config struct { ChainConfig *params.ChainConfig Difficulty *big.Int Origin ethcomm.Address Coinbase ethcomm.Address BlockNumber *big.Int Time *big.Int GasLimit uint64 GasPrice *big.Int Value *big.Int Debug bool EVMConfig evm.Config State *statedb.StateDB GetHashFn func(n uint64) ethcomm.Hash }
Config is a basic type specifying certain configuration flags for running the EVM.
type Contract ¶
func Create2Contract ¶
func CreateContract ¶
CreateContract create and deploy a contract