geth

package
v0.0.0-...-bf46863 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Copyright 2021 Evmos Foundation This file is part of Evmos' Ethermint library.

The Ethermint library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Ethermint library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with the Ethermint library. If not, see https://github.com/evmos/ethermint/blob/main/LICENSE

Copyright 2021 Evmos Foundation This file is part of Evmos' Ethermint library.

The Ethermint library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Ethermint library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with the Ethermint library. If not, see https://github.com/evmos/ethermint/blob/main/LICENSE

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetPrecompiles

func GetPrecompiles(cfg *params.ChainConfig, blockNumber *big.Int) evm.PrecompiledContracts

GetPrecompiles returns all the precompiled contracts defined given the current chain configuration and block height.

func NewEVM

func NewEVM(
	blockCtx vm.BlockContext,
	txCtx vm.TxContext,
	stateDB vm.StateDB,
	chainConfig *params.ChainConfig,
	config vm.Config,
	_ evm.PrecompiledContracts,
) evm.EVM

NewEVM defines the constructor function for the go-ethereum (geth) EVM. It uses the default precompiled contracts and the EVM concrete implementation from geth.

Types

type EVM

type EVM struct {
	*vm.EVM
}

EVM is the wrapper for the go-ethereum EVM.

func (EVM) ActivePrecompiles

func (EVM) ActivePrecompiles(rules params.Rules) []common.Address

ActivePrecompiles returns a list of all the active precompiled contract addresses for the current chain configuration.

func (EVM) Config

func (e EVM) Config() vm.Config

Config returns the configuration options for the EVM.

func (EVM) Context

func (e EVM) Context() vm.BlockContext

Context returns the EVM's Block Context

func (EVM) Precompile

func (e EVM) Precompile(addr common.Address) (p vm.PrecompiledContract, found bool)

Precompile returns the precompiled contract associated with the given address and the current chain configuration. If the contract cannot be found it returns nil.

func (EVM) RunPrecompiledContract

func (EVM) RunPrecompiledContract(
	p evm.StatefulPrecompiledContract,
	_ common.Address,
	input []byte,
	suppliedGas uint64,
	_ *big.Int,
) (ret []byte, remainingGas uint64, err error)

RunPrecompiledContract runs a stateless precompiled contract and ignores the address and value arguments. It uses the RunPrecompiledContract function from the geth vm package

func (EVM) TxContext

func (e EVM) TxContext() vm.TxContext

TxContext returns the EVM's Tx Context

Jump to

Keyboard shortcuts

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