diff --git a/chain/messagepool/gasguess/guessgas.go b/chain/messagepool/gasguess/guessgas.go index b610187fa..a787b9053 100644 --- a/chain/messagepool/gasguess/guessgas.go +++ b/chain/messagepool/gasguess/guessgas.go @@ -19,6 +19,7 @@ const failedGasGuessRatio = 0.5 const failedGasGuessMax = 25_000_000 const MinGas = 1298450 +const MaxGas = 1600271356 type CostKey struct { Code cid.Cid diff --git a/chain/messagepool/selection.go b/chain/messagepool/selection.go index 0375e6f3b..02df4f4d5 100644 --- a/chain/messagepool/selection.go +++ b/chain/messagepool/selection.go @@ -122,7 +122,12 @@ func (mp *MessagePool) getGasReward(msg *types.SignedMessage, ts *types.TipSet) al := func(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*types.Actor, error) { return mp.api.StateGetActor(addr, ts) } - gasUsed, _ := gasguess.GuessGasUsed(context.TODO(), types.EmptyTSK, msg, al) + gasUsed, err := gasguess.GuessGasUsed(context.TODO(), types.EmptyTSK, msg, al) + if err != nil { + // if we start seeing this warning we may have a problem with spammers! + log.Warnf("Cannot guess gas usage for message: %s; using MaxGas=%d", err, gasguess.MaxGas) + gasUsed = int64(gasguess.MaxGas) + } gasReward := abig.Mul(msg.Message.GasPrice, types.NewInt(uint64(gasUsed))) return gasReward.Int }