private Map<Byte, List<SenderPendingTransactions>> splitByScore(
      final Address sender, final NavigableMap<Long, PendingTransaction> txsBySender) {
    final var splitByScore = new HashMap<Byte, List<SenderPendingTransactions>>();
    byte currScore = txsBySender.firstEntry().getValue().getScore();
    var currSplit = new ArrayList<PendingTransaction>();
    for (final var entry : txsBySender.entrySet()) {
      if (entry.getValue().getScore() < currScore) {
        // score decreased, we need to save current split and start a new one
        splitByScore
            .computeIfAbsent(currScore, k -> new ArrayList<>())
            .add(new SenderPendingTransactions(sender, currSplit));
        currSplit = new ArrayList<>();
        currScore = entry.getValue().getScore();
      }
      currSplit.add(entry.getValue());
    }
    splitByScore
        .computeIfAbsent(currScore, k -> new ArrayList<>())
        .add(new SenderPendingTransactions(sender, currSplit));
    return splitByScore;
  }
Returns pending txs by sender and ordered by score desc. In case a sender has pending txs with
different scores, then in nonce sequence, every time there is a score decrease, his pending txs
will be put in a new entry with that score. For example if a sender has 3 pending txs (where
the first number is the nonce and the score is between parenthesis): 0(127), 1(126), 2(127),
then for he there will be 2 entries:

<ul>
  <li>0(127)
  <li>1(126), 2(127)
</ul>

@return pending txs by sender and ordered by score desc
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/layered/AbstractPrioritizedTransactions.java