pub fn next(&mut self) -> (L2Tx, TransactionTimeRangeConstraint, Option<MempoolScore>) {
        let transaction = self
            .transactions
            .remove(&self.nonce)
            .expect("missing transaction in mempool");
        self.nonce += 1;
        let score = self
            .transactions
            .get(&self.nonce)
            .map(|(tx, _c)| Self::score_for_transaction(tx));
        (transaction.0, transaction.1, score)
    }
Returns next transaction to be included in block, its time range constraint and optional
score of its successor. Panics if no such transaction exists
core/lib/mempool/src/types.rs