https://github.com/tenderly/uniswap-playground-mode
Learn how to build a dapp playground mode for Uniswap's UI using Tenderly Forks.
https://github.com/tenderly/uniswap-playground-mode
tenderly uniswap
Last synced: 5 months ago
JSON representation
Learn how to build a dapp playground mode for Uniswap's UI using Tenderly Forks.
- Host: GitHub
- URL: https://github.com/tenderly/uniswap-playground-mode
- Owner: Tenderly
- License: gpl-3.0
- Created: 2023-06-14T17:10:44.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-11T12:33:20.000Z (over 1 year ago)
- Last Synced: 2024-11-09T05:13:01.639Z (7 months ago)
- Topics: tenderly, uniswap
- Language: TypeScript
- Homepage:
- Size: 103 MB
- Stars: 3
- Watchers: 3
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Uniswap Labs Interface with Playground mode by Tenderly
This repository is demonstrating adding the Playground capability, using Tenderly Forks as the implementation.
⚠️ This Uniswap fork is for demonstrational purposes only!
The purpose of this Uniswap UI fork is to demonstrate the process of adding playground capabilities. As a proof of concept, it's not advised to use it in other purposes.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](src/constants/addresses.ts) and [Tokens mapping](src/constants/tokens.ts).
- 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.## Running the app
To run the dapp, you'll need to edit the `.env` file and [update your username, project slug, and the access key](https://docs.tenderly.co/other/platform-access), and then
```
yarn start
```## From the official repository docs
[](https://codecov.io/gh/Uniswap/interface)
[](https://github.com/Uniswap/interface/actions/workflows/unit-tests.yaml)
[](https://github.com/Uniswap/interface/actions/workflows/integration-tests.yaml)
[](https://github.com/Uniswap/interface/actions/workflows/lint.yml)
[](https://github.com/Uniswap/interface/actions/workflows/release.yaml)
[](https://crowdin.com/project/uniswap-interface)An open source interface for Uniswap -- a protocol for decentralized exchange of Ethereum tokens.
- Website: [uniswap.org](https://uniswap.org/)
- Interface: [app.uniswap.org](https://app.uniswap.org)
- Docs: [uniswap.org/docs/](https://docs.uniswap.org/)
- Twitter: [@Uniswap](https://twitter.com/Uniswap)
- Reddit: [/r/Uniswap](https://www.reddit.com/r/Uniswap/)
- Email: [[email protected]](mailto:[email protected])
- Discord: [Uniswap](https://discord.gg/FCfyBSbCU5)
- Whitepapers:
- [V1](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig)
- [V2](https://uniswap.org/whitepaper.pdf)
- [V3](https://uniswap.org/whitepaper-v3.pdf)## Accessing the Uniswap Interface
To access the Uniswap Interface, use an IPFS gateway link from the
[latest release](https://github.com/Uniswap/uniswap-interface/releases/latest),
or visit [app.uniswap.org](https://app.uniswap.org).## Unsupported tokens
Check out `useUnsupportedTokenList()` in [src/state/lists/hooks.ts](./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](./src/constants/lists.ts)
## Contributions
For steps on local deployment, development, and code contribution, please see [CONTRIBUTING](./CONTRIBUTING.md).
#### PR Title
Your PR title must follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), and should start with one of the following [types](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type):- 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 testsExample commit messages:
- feat: adds support for gnosis safe wallet
- fix: removes a polling memory leak
- chore: bumps redux versionOther 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## Accessing Uniswap V2
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
- Swap on Uniswap V2:
- View V2 liquidity:
- Add V2 liquidity:
- Migrate V2 liquidity to V3:## Accessing Uniswap V1
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).