Skip to content

Commit

Permalink
fix: stmgr: check message validity before invoking vm
Browse files Browse the repository at this point in the history
Otherwise we may, e.g., try to estimate gas on a message to an f4
address before the nv18 migration.

I'm _not_ checking the "prior messages" here as this is just a sanity
check.
  • Loading branch information
Stebalien committed Feb 13, 2023
1 parent f427c2b commit 2bbd1fb
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions chain/stmgr/call.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,14 @@ func (sm *StateManager) callInternal(ctx context.Context, msg *types.Message, pr
}
}

// This isn't strictly necessary, but the underlying VM will assume that the message is
// valid and may not return helpful debugging information. Checking here makes message
// validity issues easier to debug.
nv := sm.GetNetworkVersion(ctx, ts.Height())
if err := msg.ValidForBlockInclusion(0, nv); err != nil {
return nil, xerrors.Errorf("message not valid for network version %d: %w", nv, err)
}

// Unless executing on a specific state cid, apply all the messages from the current tipset
// first. Unfortunately, we can't just execute the tipset, because that will run cron. We
// don't want to apply miner messages after cron runs in a given epoch.
Expand Down

0 comments on commit 2bbd1fb

Please sign in to comment.