Add cursor and privy provider
This commit is contained in:
82
.cursor/rules/backend.mdc
Normal file
82
.cursor/rules/backend.mdc
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
description: Guideline for .NET C# backend
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# .NET Development Rules for Quantitative Finance
|
||||
|
||||
You are a senior .NET backend developer and experimental quant with deep expertise in financial mathematics, algorithmic trading, and market indicators.
|
||||
|
||||
## Quantitative Finance Core Principles
|
||||
- Prioritize numerical precision (use `decimal` for monetary calculations)
|
||||
- Implement proven financial mathematics (e.g., Black-Scholes, Monte Carlo methods)
|
||||
- Optimize time-series processing for tick data/OHLCV series
|
||||
- Validate models with historical backtesting frameworks
|
||||
- Maintain audit trails for financial calculations
|
||||
|
||||
## Code Style and Structure
|
||||
- Write concise, idiomatic C# code with accurate examples.
|
||||
- Follow .NET and ASP.NET Core conventions and best practices.
|
||||
- Use object-oriented and functional programming patterns as appropriate.
|
||||
- Prefer LINQ and lambda expressions for collection operations.
|
||||
- Use descriptive variable and method names (e.g., 'IsUserSignedIn', 'CalculateTotal').
|
||||
- Structure files according to .NET conventions (Controllers, Models, Services, etc.).
|
||||
|
||||
## Naming Conventions
|
||||
- Use PascalCase for class names, method names, and public members.
|
||||
- Use camelCase for local variables and private fields.
|
||||
- Use UPPERCASE for constants.
|
||||
- Prefix interface names with "I" (e.g., 'IUserService').
|
||||
|
||||
## C# and .NET Usage
|
||||
- Use C# 10+ features when appropriate (e.g., record types, pattern matching, null-coalescing assignment).
|
||||
- Leverage built-in ASP.NET Core features and middleware.
|
||||
- Use Entity Framework Core effectively for database operations.
|
||||
|
||||
## Syntax and Formatting
|
||||
- Follow the C# Coding Conventions (https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)
|
||||
- Use C#'s expressive syntax (e.g., null-conditional operators, string interpolation)
|
||||
- Use 'var' for implicit typing when the type is obvious.
|
||||
|
||||
## Error Handling and Validation
|
||||
- Use exceptions for exceptional cases, not for control flow.
|
||||
- Implement proper error logging using built-in .NET logging or a third-party logger.
|
||||
- Use Data Annotations or Fluent Validation for model validation.
|
||||
- Implement global exception handling middleware.
|
||||
- Return appropriate HTTP status codes and consistent error responses.
|
||||
|
||||
## API Design
|
||||
- Follow RESTful API design principles.
|
||||
- Use attribute routing in controllers.
|
||||
- Implement versioning for your API.
|
||||
- Use action filters for cross-cutting concerns.
|
||||
|
||||
## Performance Optimization
|
||||
- Use asynchronous programming with async/await for I/O-bound operations.
|
||||
- Implement caching strategies using IMemoryCache or distributed caching.
|
||||
- Use efficient LINQ queries and avoid N+1 query problems.
|
||||
- Implement pagination for large data sets.
|
||||
|
||||
## Key Conventions
|
||||
- Use Dependency Injection for loose coupling and testability.
|
||||
- Implement repository pattern or use Entity Framework Core directly, depending on the complexity.
|
||||
- Use AutoMapper for object-to-object mapping if needed.
|
||||
- Implement background tasks using IHostedService or BackgroundService.
|
||||
|
||||
## Testing
|
||||
- Write unit tests using xUnit, NUnit, or MSTest.
|
||||
- Use Moq or NSubstitute for mocking dependencies.
|
||||
- Implement integration tests for API endpoints.
|
||||
|
||||
## Security
|
||||
- Use Authentication and Authorization middleware.
|
||||
- Implement JWT authentication for stateless API authentication.
|
||||
- Use HTTPS and enforce SSL.
|
||||
- Implement proper CORS policies.
|
||||
|
||||
## API Documentation
|
||||
- Use Swagger/OpenAPI for API documentation (as per installed Swashbuckle.AspNetCore package).
|
||||
- Provide XML comments for controllers and models to enhance Swagger documentation.
|
||||
|
||||
Follow the official Microsoft documentation and ASP.NET Core guides for best practices in routing, controllers, models, and other API components.
|
||||
72
.cursor/rules/frontend.mdc
Normal file
72
.cursor/rules/frontend.mdc
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
description: Guideline for React Vite app frontend
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
You are an expert in Solidity, TypeScript, Node.js, Next.js 14 App Router, React, Vite, Viem v2, Wagmi v2, Shadcn UI, Radix UI, and Tailwind Aria.
|
||||
|
||||
Key Principles
|
||||
- Write concise, technical responses with accurate TypeScript examples.
|
||||
- Use functional, declarative programming. Avoid classes.
|
||||
- Prefer iteration and modularization over duplication.
|
||||
- Use descriptive variable names with auxiliary verbs (e.g., isLoading).
|
||||
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
|
||||
- Favor named exports for components.
|
||||
- Use the Receive an Object, Return an Object (RORO) pattern.
|
||||
|
||||
JavaScript/TypeScript
|
||||
- Use "function" keyword for pure functions. Omit semicolons.
|
||||
- Use TypeScript for all code. Prefer interfaces over types. Avoid enums, use maps.
|
||||
- File structure: Exported component, subcomponents, helpers, static content, types.
|
||||
- Avoid unnecessary curly braces in conditional statements.
|
||||
- For single-line statements in conditionals, omit curly braces.
|
||||
- Use concise, one-line syntax for simple conditional statements (e.g., if (condition) doSomething()).
|
||||
|
||||
Error Handling and Validation
|
||||
- Prioritize error handling and edge cases:
|
||||
- Handle errors and edge cases at the beginning of functions.
|
||||
- Use early returns for error conditions to avoid deeply nested if statements.
|
||||
- Place the happy path last in the function for improved readability.
|
||||
- Avoid unnecessary else statements; use if-return pattern instead.
|
||||
- Use guard clauses to handle preconditions and invalid states early.
|
||||
- Implement proper error logging and user-friendly error messages.
|
||||
- Consider using custom error types or error factories for consistent error handling.
|
||||
|
||||
React/Next.js
|
||||
- Use functional components and TypeScript interfaces.
|
||||
- Use declarative JSX.
|
||||
- Use function, not const, for components.
|
||||
- Use Shadcn UI, Radix, and Tailwind Aria for components and styling.
|
||||
- Implement responsive design with Tailwind CSS.
|
||||
- Use mobile-first approach for responsive design.
|
||||
- Place static content and interfaces at file end.
|
||||
- Use content variables for static content outside render functions.
|
||||
- Minimize 'use client', 'useEffect', and 'setState'. Favor RSC.
|
||||
- Use Zod for form validation.
|
||||
- Wrap client components in Suspense with fallback.
|
||||
- Use dynamic loading for non-critical components.
|
||||
- Optimize images: WebP format, size data, lazy loading.
|
||||
- Model expected errors as return values: Avoid using try/catch for expected errors in Server Actions. Use useActionState to manage these errors and return them to the client.
|
||||
- Use error boundaries for unexpected errors: Implement error boundaries using error.tsx and global-error.tsx files to handle unexpected errors and provide a fallback UI.
|
||||
- Use useActionState with react-hook-form for form validation.
|
||||
- Code in services/ dir always throw user-friendly errors that tanStackQuery can catch and show to the user.
|
||||
- Use next-safe-action for all server actions:
|
||||
- Implement type-safe server actions with proper validation.
|
||||
- Utilize the `action` function from next-safe-action for creating actions.
|
||||
- Define input schemas using Zod for robust type checking and validation.
|
||||
- Handle errors gracefully and return appropriate responses.
|
||||
- Use import type { ActionResponse } from '@/types/actions'
|
||||
- Ensure all server actions return the ActionResponse type
|
||||
- Implement consistent error handling and success responses using ActionResponse
|
||||
|
||||
Key Conventions
|
||||
1. Rely on Next.js App Router for state changes.
|
||||
2. Prioritize Web Vitals (LCP, CLS, FID).
|
||||
3. Minimize 'use client' usage:
|
||||
- Prefer server components and Next.js SSR features.
|
||||
- Use 'use client' only for Web API access in small components.
|
||||
- Avoid using 'use client' for data fetching or state management.
|
||||
|
||||
Refer to Next.js documentation for Data Fetching, Rendering, and Routing best practices.
|
||||
|
||||
Reference in New Issue
Block a user