def METHOD_NAME(typed_txn_fixture, is_rlp_encoded):
    signed_txn = decode_hex(typed_txn_fixture["signed"])
    transaction_builder = BerlinVM.get_transaction_builder()
    if is_rlp_encoded:
        double_encoded = rlp.encode(signed_txn)
        transaction = rlp.decode(double_encoded, sedes=transaction_builder)
        assert rlp.encode(transaction) == double_encoded
        assert rlp.encode(transaction, cache=False) == double_encoded
    else:
        transaction = transaction_builder.decode(signed_txn)
    assert transaction.hash == decode_hex(typed_txn_fixture["hash"])
    assert transaction.intrinsic_gas == typed_txn_fixture["intrinsic_gas"]
    assert transaction.get_intrinsic_gas() == typed_txn_fixture["intrinsic_gas"]