From 8753e60d2f02bb3a438213b1602c87fec7ff2e42 Mon Sep 17 00:00:00 2001 From: 0age <37939117+0age@users.noreply.github.com> Date: Tue, 18 Feb 2025 22:45:09 -0500 Subject: [PATCH] add README --- README.md | 82 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 74872fd..ba0a4c1 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,52 @@ -# React + TypeScript + Vite +# CompactX -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +CompactX is a proof-of-concept, React-based web interface for performing cross-chain swaps. It is built using [The Compact](https://github.com/Uniswap/TheCompact) protocol. -Currently, two official plugins are available: +## Related Services -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +CompactX relies on several key services: -## Expanding the ESLint configuration +- [Tribunal](https://github.com/Uniswap/Tribunal) - Settlement and cross-chain messaging (this implementation utilizes Hyperlane) +- [Calibrator](https://github.com/Uniswap/Calibrator) - Intent parameterization service +- [Smallocator](https://github.com/Uniswap/Smallocator) - Resource lock allocation service +- [Fillanthropist](https://github.com/Uniswap/Fillanthropist) - Manual filler / solver (meant as an illustrative example of how settlement works) -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: +## Installation -- Configure the top-level `parserOptions` property like this: +```bash +# Install dependencies +npm install +``` + +## Development + +```bash +# Start development server +npm run dev + +# Run tests +npm test + +# Watch mode +npm run test:watch -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) +# Type checking +npm run typecheck + +# Linting +npm run lint ``` -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react' - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}) +## Build + +```bash +# Build for production +npm run build + +# Preview production build +npm run preview ``` + +## License + +MIT License