Documentation ¶
Overview ¶
Copyright 2023 Streakk Foundation This file is part of Streakk' 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.
Copyright 2023 Streakk Foundation This file is part of Streakk' 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.
Index ¶
- func GetPrecompiles(cfg *params.ChainConfig, blockNumber *big.Int) evm.PrecompiledContracts
- func NewEVM(blockCtx vm.BlockContext, txCtx vm.TxContext, stateDB vm.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 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 ¶
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