mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-22 06:34:32 +00:00
* chore: `golangci-lint` CI workflow
* fix: make `golangci-lint` happy
* chore: bump `actions/{checkout,setup-go}` versions
* chore: overhaul `.golanci.yml` config
* fix: all linter issues
* chore: exclude non-libevm linters + change deprecated option
* fix: add overflow check in example
* fix: try again; different local version?
* chore: this is trying my patience
* chore: enable `gci` and fix ordering
* chore: mark `ethclient/gethclient` test as flaky
* chore: mark `eth/catalyst` test as flaky
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
// Package ethtest provides utility functions for use in testing
|
|
// Ethereum-related functionality.
|
|
package ethtest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
"github.com/ethereum/go-ethereum/core"
|
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
|
"github.com/ethereum/go-ethereum/core/state"
|
|
"github.com/ethereum/go-ethereum/core/vm"
|
|
"github.com/ethereum/go-ethereum/params"
|
|
)
|
|
|
|
// NewZeroEVM returns a new EVM backed by a [rawdb.NewMemoryDatabase]; all other
|
|
// arguments to [vm.NewEVM] are the zero values of their respective types,
|
|
// except for the use of [core.CanTransfer] and [core.Transfer] instead of nil
|
|
// functions.
|
|
func NewZeroEVM(tb testing.TB) (*state.StateDB, *vm.EVM) {
|
|
tb.Helper()
|
|
|
|
sdb, err := state.New(common.Hash{}, state.NewDatabase(rawdb.NewMemoryDatabase()), nil)
|
|
require.NoError(tb, err, "state.New()")
|
|
|
|
return sdb, vm.NewEVM(
|
|
vm.BlockContext{
|
|
CanTransfer: core.CanTransfer,
|
|
Transfer: core.Transfer,
|
|
},
|
|
vm.TxContext{},
|
|
sdb,
|
|
¶ms.ChainConfig{},
|
|
vm.Config{},
|
|
)
|
|
}
|