diff --git a/chain/messagepool/selection.go b/chain/messagepool/selection.go index d79ed9f55..5a8200bf8 100644 --- a/chain/messagepool/selection.go +++ b/chain/messagepool/selection.go @@ -750,7 +750,12 @@ func (mp *MessagePool) createMessageChains(actor address.Address, mset map[uint6 break } balance = new(big.Int).Sub(balance, required) - balance = new(big.Int).Sub(balance, m.Message.Value.Int) + + value := m.Message.Value.Int + if balance.Cmp(value) < 0 { + break + } + balance = new(big.Int).Sub(balance, value) gasReward := mp.getGasReward(m, baseFee) rewards = append(rewards, gasReward)