cmd/evm: add state transition tool for testing (#20958)
This PR implements the EVM state transition tool, which is intended to be the replacement for our retesteth client implementation. Documentation is present in the cmd/evm/README.md file. Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
committed by
GitHub
parent
dd91c7ce6a
commit
e376d2fb31
@ -112,11 +112,11 @@ type stTransactionMarshaling struct {
|
||||
PrivateKey hexutil.Bytes
|
||||
}
|
||||
|
||||
// getVMConfig takes a fork definition and returns a chain config.
|
||||
// GetChainConfig takes a fork definition and returns a chain config.
|
||||
// The fork definition can be
|
||||
// - a plain forkname, e.g. `Byzantium`,
|
||||
// - a fork basename, and a list of EIPs to enable; e.g. `Byzantium+1884+1283`.
|
||||
func getVMConfig(forkString string) (baseConfig *params.ChainConfig, eips []int, err error) {
|
||||
func GetChainConfig(forkString string) (baseConfig *params.ChainConfig, eips []int, err error) {
|
||||
var (
|
||||
splitForks = strings.Split(forkString, "+")
|
||||
ok bool
|
||||
@ -129,6 +129,9 @@ func getVMConfig(forkString string) (baseConfig *params.ChainConfig, eips []int,
|
||||
if eipNum, err := strconv.Atoi(eip); err != nil {
|
||||
return nil, nil, fmt.Errorf("syntax error, invalid eip number %v", eipNum)
|
||||
} else {
|
||||
if !vm.ValidEip(eipNum) {
|
||||
return nil, nil, fmt.Errorf("syntax error, invalid eip number %v", eipNum)
|
||||
}
|
||||
eips = append(eips, eipNum)
|
||||
}
|
||||
}
|
||||
@ -166,7 +169,7 @@ func (t *StateTest) Run(subtest StateSubtest, vmconfig vm.Config, snapshotter bo
|
||||
|
||||
// RunNoVerify runs a specific subtest and returns the statedb and post-state root
|
||||
func (t *StateTest) RunNoVerify(subtest StateSubtest, vmconfig vm.Config, snapshotter bool) (*snapshot.Tree, *state.StateDB, common.Hash, error) {
|
||||
config, eips, err := getVMConfig(subtest.Fork)
|
||||
config, eips, err := GetChainConfig(subtest.Fork)
|
||||
if err != nil {
|
||||
return nil, nil, common.Hash{}, UnsupportedForkError{subtest.Fork}
|
||||
}
|
||||
|
Reference in New Issue
Block a user