diff --git a/miner/worker.go b/miner/worker.go index 38c5a2b70414..6e625a11ee09 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -1233,6 +1233,10 @@ loop: w.checkCurrentTxNumWithCCC(w.current.tcount) break loop + case (errors.Is(err, core.ErrInsufficientFunds) || errors.Is(errors.Unwrap(err), core.ErrInsufficientFunds)): + log.Trace("Skipping account with insufficient funds", "sender", from) + txs.Pop() + default: // Strange error, discard the transaction and get the next in line (note, the // nonce-too-high clause will prevent us from executing in vain). diff --git a/params/version.go b/params/version.go index 56de5b79e275..f11cad7830d6 100644 --- a/params/version.go +++ b/params/version.go @@ -24,7 +24,7 @@ import ( const ( VersionMajor = 5 // Major version component of the current release VersionMinor = 1 // Minor version component of the current release - VersionPatch = 7 // Patch version component of the current release + VersionPatch = 8 // Patch version component of the current release VersionMeta = "mainnet" // Version metadata to append to the version string ) diff --git a/rollup/fees/rollup_fee.go b/rollup/fees/rollup_fee.go index 81e427d631a2..6e21042de685 100644 --- a/rollup/fees/rollup_fee.go +++ b/rollup/fees/rollup_fee.go @@ -202,18 +202,19 @@ func VerifyFee(signer types.Signer, tx *types.Transaction, state StateDB) error } balance := state.GetBalance(from) - l2Fee := calculateL2Fee(tx) - l1DataFee, err := CalculateL1DataFee(tx, state) - if err != nil { - return fmt.Errorf("invalid transaction: %w", err) - } - cost := tx.Value() + + l2Fee := calculateL2Fee(tx) cost = cost.Add(cost, l2Fee) if balance.Cmp(cost) < 0 { return errors.New("invalid transaction: insufficient funds for gas * price + value") } + l1DataFee, err := CalculateL1DataFee(tx, state) + if err != nil { + return fmt.Errorf("invalid transaction: %w", err) + } + cost = cost.Add(cost, l1DataFee) if balance.Cmp(cost) < 0 { return errors.New("invalid transaction: insufficient funds for l1fee + gas * price + value")