private static TransactionReceipt decodeLegacyReceipt(
      final RLPInput input,
      final RLPInput statusOrStateRootRlpInput,
      final RLPInput cumulativeGasRlpInput,
      final LogsBloomFilter bloomFilter,
      final boolean revertReasonAllowed) {
    final long cumulativeGas = cumulativeGasRlpInput.readLongScalar();
    final boolean isCompacted = bloomFilter == null;
    final List<Log> logs = input.readList(logInput -> Log.readFrom(logInput, isCompacted));
    Optional<Bytes> revertReason = readMaybeRevertReason(input, revertReasonAllowed);
    return createReceipt(
        TransactionType.FRONTIER,
        statusOrStateRootRlpInput,
        cumulativeGas,
        logs,
        isCompacted ? LogsBloomFilter.builder().insertLogs(logs).build() : bloomFilter,
        revertReason);
  }
Creates a transaction receipt for the given RLP

@param rlpInput the RLP-encoded transaction receipt
@param revertReasonAllowed whether the rlp input is allowed to have a revert reason
@return the transaction receipt
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/encoding/receipt/TransactionReceiptDecoder.java