public static Transaction decodeRLP(
      final RLPInput rlpInput, final EncodingContext encodingContext) {
    if (isTypedTransaction(rlpInput)) {
      return decodeTypedTransaction(rlpInput, encodingContext);
    } else {
      return FrontierTransactionDecoder.decode(rlpInput);
    }
  }
Decodes an RLP input into a transaction. If the input represents a typed transaction, it uses
the appropriate decoder for that type. Otherwise, it uses the frontier decoder.

@param rlpInput the RLP input
@return the decoded transaction
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/encoding/TransactionDecoder.java