eth/pre: add stateOverrides support (#5)

This commit is contained in:
zhangguyu6 2023-08-10 18:52:12 +08:00 committed by GitHub
parent 1f5164b61f
commit 32e328be39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -93,12 +93,18 @@ type PreResult struct {
GasUsed uint64 `json:"gasUsed"`
}
func (api *PreExecAPI) TraceMany(ctx context.Context, origins []PreArgs) ([]PreResult, error) {
func (api *PreExecAPI) TraceMany(ctx context.Context, origins []PreArgs, stateOverrides *ethapi.StateOverride) ([]PreResult, error) {
preResList := make([]PreResult, 0)
state, header, err := api.e.APIBackend.StateAndHeaderByNumberOrHash(ctx, rpc.BlockNumberOrHashWithNumber(rpc.LatestBlockNumber))
if state == nil || err != nil {
return nil, err
}
if stateOverrides != nil {
err = stateOverrides.Apply(state)
if err != nil {
return nil, err
}
}
for i := 0; i < len(origins); i++ {
origin := origins[i]
if origin.Nonce == nil {