Comments (6)
same issue
from interface.
@xmdszzz Did you have a look at the Readme? Could you not find the instructions or are you stuck at a step?
from interface.
Contributing
Thank you for your interest in contributing to the Uniswap interface! 🦄
Development
Before running anything, you'll need to install the dependencies:
yarn install
Running the web app locally
yarn web start
The interface should automatically open. If it does not, navigate to [http://localhost:3000].
Creating a production build
yarn web build:production
To serve the production build:
yarn web serve
Then, navigate to [http://localhost:3000] to see it.
Running unit tests
yarn web test
By default, this runs only unit tests that have been affected since the last commit. To run all unit tests:
yarn web test --watchAll
Running integration tests (cypress)
Integration tests require a server to be running. In order to see your changes quickly, run start
in its own tab/window:
yarn web start
Integration tests are run using cypress
. When developing locally, use cypress:open
for an interactive UI, and to inspect the rendered page:
yarn web cypress:open
To run all cypress integration tests from the command line:
yarn web cypress:run
Adding a new dependency
Adding many new dependencies would cause bloat, so we have a test to guard against this: scripts/test-size.js
. This will run as part of CI with every PR.
If you need to add a new dependency, and it causes the generated build to exceed its size quota, you'll need to increase the quota. Do so in scripts/test-size.js
.
You can also run the test on your last build using yarn build && yarn test:size
. If you exceed the size quota, it will let you know what to do :).
Engineering standards
Code merged into the main
branch of this repository should adhere to high standards of correctness and maintainability.
Use your best judgment when applying these standards. If code is in the critical path, will be frequently visited, or
makes large architectural changes, consider following all the standards.
- Have at least one engineer approve of large code refactorings
- At least manually test small code changes, prefer automated tests
- Thoroughly unit test when code is not obviously correct
- If something breaks, add automated tests so it doesn't break again
- Add integration tests for new pages or flows
- Verify that all CI checks pass before merging
- Have at least one product manager or designer approve of any significant UX changes
Guidelines
The following points should help guide your development:
- Security: the interface is safe to use
- Avoid adding unnecessary dependencies due to supply chain risk
- Reproducibility: anyone can build the interface
- Avoid adding steps to the development/build processes
- The build must be deterministic, i.e. a particular commit hash always produces the same build
- Decentralization: anyone can run the interface
- An Ethereum node should be the only critical dependency
- All other external dependencies should only enhance the UX (graceful degradation)
- Accessibility: anyone can use the interface
- The interface should be responsive, small and also run well on low performance devices (majority of swaps on mobile!)
Release process
Releases are cut automatically from the main
branch Monday-Thursday in the morning according to the release workflow.
Fix pull requests should be merged whenever ready and tested.
If a fix is urgently needed in production, releases can be manually triggered on GitHub
after the fix is merged into main
.
Features should not be merged into main
until they are ready for users.
When building larger features or collaborating with other developers, create a new branch from main
to track its development.
Use the automatic Vercel preview for sharing the feature to collect feedback.
When the feature is ready for review, create a new pull request from the feature branch into main
and request reviews from
the appropriate UX reviewers (PMs or designers).
Finding a first issue
Start with issues with the label
good first issue
.
Translations
Uniswap uses Crowdin for managing translations.
This workflow uploads new strings for translation to the Crowdin project whenever code using the lingui translation macros is merged into main
.
Every hour, translations are synced back down from Crowdin to the repository in this other workflow.
We sync to the repository on a schedule, rather than download translations at build time, so that builds are always reproducible.
You can contribute by joining Crowdin to proofread existing translations here
Or, ask to join us as a translator in the Discord!!
from interface.
@SKfraz04 Did you have any issues following these steps?
from interface.
@steebtom No now it work properly
from interface.
@SKfraz04 Hi, may I know how do you solve it?
from interface.
Related Issues (20)
- How to start this repo
- problem runningthe interface
- Explore Pools Data is Bugged : https://app.uniswap.org/explore/pools
- Crash report: `TypeError: Cannot write private member to an object whose class did not declare it` HOT 1
- Arbitrum Sepolia needed. Arbitrum Goerli support ended. HOT 1
- UniSwap Dapp cannot find the right router path HOT 1
- Uniswap theme
- Inaccurate Data on All Explore Pools: https://app.uniswap.org/explore/pools
- ActiveTick is incorrectly determined for stablecoin pools.
- Crash report: `TypeError: undefined is not an object (evaluating 'y.twitterInfo.verified')` HOT 1
- run interface issue HOT 7
- Trezor Support
- interface does not start , web scripts not working HOT 1
- `GoogleServiceInfo` dir is missing HOT 2
- Can't remove a pool from blast Uniswap
- When I rewrote the v3-sdk and change mainnet chainId to another eg. 1100, then got this error HOT 1
- app.uniswap.org sepolia Unable to select token HOT 3
- Current price for DAI/MATIC is wrong HOT 1
- Unable to Add Liquidity to XYO/MATIC v3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from interface.