Skip to content

Learn how to build a dapp playground mode for Uniswap's UI using Tenderly Forks.

License

Notifications You must be signed in to change notification settings

Tenderly/uniswap-playground-mode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 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.

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, and then

yarn start

From the official repository docs

codecov

Unit Tests Integration Tests Lint Release Crowdin

An open source interface for Uniswap -- a protocol for decentralized exchange of Ethereum tokens.

Accessing the Uniswap Interface

To access the Uniswap Interface, use an IPFS gateway link from the latest release, or visit app.uniswap.org.

Unsupported tokens

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

Contributions

For steps on local deployment, development, and code contribution, please see CONTRIBUTING.

PR Title

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

Accessing Uniswap V2

The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.

Accessing Uniswap V1

The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways linked from the v1.0.0 release.

About

Learn how to build a dapp playground mode for Uniswap's UI using Tenderly Forks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages