private NavigableMap<Long, PendingTransaction> getSequentialSubset(
      final NavigableMap<Long, PendingTransaction> senderTxs) {
    long lastSequentialNonce = senderTxs.firstKey();
    for (final long nonce : senderTxs.tailMap(lastSequentialNonce, false).keySet()) {
      if (nonce == lastSequentialNonce + 1) {
        ++lastSequentialNonce;
      } else {
        break;
      }
    }
    return senderTxs.headMap(lastSequentialNonce, true);
  }
We only want to promote transactions that have gap == 0, so there will be no gap in the prev
layers. A promoted transaction is removed from this layer, and the gap data is updated for its
sender.

@param promotionFilter the prev layer's promotion filter
@param freeSpace max amount of memory promoted txs can occupy
@param freeSlots max number of promoted txs
@return a list of transactions promoted to the prev layer
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/layered/SparseTransactions.java