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/decimalteam/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/decimalteam/ethermint/blob/main/LICENSE
Index ¶
- func GetPrecompiles(cfg *params.ChainConfig, blockNumber *big.Int) evm.PrecompiledContracts
- func NewEVM(blockCtx vm.BlockContext, txCtx vm.TxContext, stateDB *statedb.StateDB, ...) evm.EVM
- type EVM
- func (EVM) ActivePrecompiles(rules params.Rules) []common.Address
- func (e EVM) Config() vm.Config
- func (e EVM) Context() vm.BlockContext
- func (e EVM) Precompile(addr common.Address) (p vm.PrecompiledContract, found bool)
- func (EVM) RunPrecompiledContract(p evm.StatefulPrecompiledContract, _ common.Address, input []byte, ...) (ret []byte, remainingGas uint64, err error)
- func (e EVM) TxContext() vm.TxContext
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 *statedb.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 ¶
EVM is the wrapper for the go-ethereum EVM.
func (EVM) ActivePrecompiles ¶
ActivePrecompiles returns a list of all the active precompiled contract addresses for the current chain configuration.
func (EVM) Precompile ¶
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