diff --git a/chain/messagepool/selection.go b/chain/messagepool/selection.go index 4ade92a799c..5a8200bf8c7 100644 --- a/chain/messagepool/selection.go +++ b/chain/messagepool/selection.go @@ -752,11 +752,10 @@ func (mp *MessagePool) createMessageChains(actor address.Address, mset map[uint6 balance = new(big.Int).Sub(balance, required) value := m.Message.Value.Int - if balance.Cmp(value) >= 0 { - // Note: we only account for the value if the balance doesn't drop below 0 - // otherwise the message will fail and the miner can reap the gas rewards - balance = new(big.Int).Sub(balance, value) + if balance.Cmp(value) < 0 { + break } + balance = new(big.Int).Sub(balance, value) gasReward := mp.getGasReward(m, baseFee) rewards = append(rewards, gasReward)