This repository is demonstrating adding the Playground capability, using Tenderly Forks as the implementation.
Notes:
- Adding the playground mode required connecting to a dynamically generated network (Tenderly fork), which has chainID different from the chainID of the original chain. This mostly includes extension of static mappings addresses of ERC-20 tokens and Uniswap contracts (such as UniversalRouter). The addresses of these resources on the fork chain are the same as addresses on the original chain. See Addresses mapping and Tokens mapping.
- Complete playground would involve putting Uniswap backend in the sandbox mode, which is out of scope.
- The graphql schema and supported chains are hard-coded. This repository will remain out of sync compared to latest.
To run the dapp, you'll need to edit the .env
file and update your username, project slug, and the access key, and then
yarn start
An open source interface for Uniswap -- a protocol for decentralized exchange of Ethereum tokens.
- Website: uniswap.org
- Interface: app.uniswap.org
- Docs: uniswap.org/docs/
- Twitter: @Uniswap
- Reddit: /r/Uniswap
- Email: contact@uniswap.org
- Discord: Uniswap
- Whitepapers:
To access the Uniswap Interface, use an IPFS gateway link from the latest release, or visit app.uniswap.org.
Check out useUnsupportedTokenList()
in src/state/lists/hooks.ts for blocking tokens in your instance of the interface.
You can block an entire list of tokens by passing in a tokenlist like here
For steps on local deployment, development, and code contribution, please see CONTRIBUTING.
Your PR title must follow conventional commits, and should start with one of the following types:
- build: Changes that affect the build system or external dependencies (example scopes: yarn, eslint, typescript)
- ci: Changes to our CI configuration files and scripts (example scopes: vercel, github, cypress)
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test: Adding missing tests or correcting existing tests
Example commit messages:
- feat: adds support for gnosis safe wallet
- fix: removes a polling memory leak
- chore: bumps redux version
Other things to note:
- Please describe the change using verb statements (ex: Removes X from Y)
- PRs with multiple changes should use a list of verb statements
- Add any relevant unit / integration tests
- Changes will be previewable via vercel. Non-obvious changes should include instructions for how to reproduce them
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
- Swap on Uniswap V2: https://app.uniswap.org/#/swap?use=v2
- View V2 liquidity: https://app.uniswap.org/#/pools/v2
- Add V2 liquidity: https://app.uniswap.org/#/add/v2
- Migrate V2 liquidity to V3: https://app.uniswap.org/#/migrate/v2
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways linked from the v1.0.0 release.