-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ee29544
Showing
283 changed files
with
39,639 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
REACT_APP_CHAIN_ID="1" | ||
REACT_APP_NETWORK_URL="https://mainnet.infura.io/v3/4bf032f2d38a4ed6bb975b80d6340847" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
REACT_APP_CHAIN_ID="1" | ||
REACT_APP_NETWORK_URL="https://mainnet.infura.io/v3/099fc58e0de9451d80b18d7c74caa7c1" | ||
REACT_APP_PORTIS_ID="c0e2bf01-4b08-4fd5-ac7b-8e26b58cd236" | ||
REACT_APP_FORTMATIC_KEY="pk_live_F937DF033A1666BF" | ||
REACT_APP_GOOGLE_ANALYTICS_ID="UA-128182339-4" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
{ | ||
"parser": "@typescript-eslint/parser", | ||
"parserOptions": { | ||
"ecmaVersion": 2020, | ||
"sourceType": "module", | ||
"ecmaFeatures": { | ||
// Allows for the parsing of JSX | ||
"jsx": true | ||
} | ||
}, | ||
"ignorePatterns": [ | ||
"node_modules/**/*" | ||
], | ||
"settings": { | ||
"react": { | ||
"version": "detect" | ||
} | ||
}, | ||
"extends": [ | ||
"plugin:react/recommended", | ||
"plugin:@typescript-eslint/recommended", | ||
"plugin:react-hooks/recommended", | ||
"prettier/@typescript-eslint", | ||
"plugin:prettier/recommended" | ||
], | ||
"rules": { | ||
"@typescript-eslint/explicit-function-return-type": "off", | ||
"prettier/prettier": "error", | ||
"@typescript-eslint/no-explicit-any": "off" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# See https://help.github.com/ignore-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
|
||
# testing | ||
/coverage | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
/.netlify | ||
|
||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
notes.txt | ||
.idea/ | ||
|
||
.vscode/ | ||
|
||
package-lock.json | ||
|
||
cypress/videos | ||
cypress/screenshots | ||
cypress/fixtures/example.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"semi": false, | ||
"singleQuote": true, | ||
"printWidth": 120 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ignore-scripts true |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Uniswap Interface | ||
|
||
[![Tests](https://github.com/Uniswap/uniswap-interface/workflows/Tests/badge.svg)](https://github.com/Uniswap/uniswap-interface/actions?query=workflow%3ATests) | ||
[![Styled With Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io/) | ||
|
||
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://uniswap.org/docs/) | ||
- Twitter: [@UniswapProtocol](https://twitter.com/UniswapProtocol) | ||
- Reddit: [/r/Uniswap](https://www.reddit.com/r/Uniswap/) | ||
- Email: [[email protected]](mailto:[email protected]) | ||
- Discord: [Uniswap](https://discord.gg/Y7TF6QA) | ||
- Whitepaper: [Link](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig) | ||
|
||
## 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). | ||
|
||
## Listing a token | ||
|
||
Please see the | ||
[@uniswap/default-token-list](https://github.com/uniswap/default-token-list) | ||
repository. | ||
|
||
## Development | ||
|
||
### Install Dependencies | ||
|
||
```bash | ||
yarn | ||
``` | ||
|
||
### Run | ||
|
||
```bash | ||
yarn start | ||
``` | ||
|
||
### Configuring the environment (optional) | ||
|
||
To have the interface default to a different network when a wallet is not connected: | ||
|
||
1. Make a copy of `.env` named `.env.local` | ||
2. Change `REACT_APP_NETWORK_ID` to `"{YOUR_NETWORK_ID}"` | ||
3. Change `REACT_APP_NETWORK_URL` to e.g. `"https://{YOUR_NETWORK_ID}.infura.io/v3/{YOUR_INFURA_KEY}"` | ||
|
||
Note that the interface only works on testnets where both | ||
[Uniswap V2](https://uniswap.org/docs/v2/smart-contracts/factory/) and | ||
[multicall](https://github.com/makerdao/multicall) are deployed. | ||
The interface will not work on other networks. | ||
|
||
## Contributions | ||
|
||
**Please open all pull requests against the `master` branch.** | ||
CI checks will run against all PRs. | ||
|
||
## Accessing Uniswap Interface V1 | ||
|
||
The Uniswap Interface supports swapping against, and migrating or removing liquidity from Uniswap V1. However, | ||
if you would like to use 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). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"baseUrl": "http://localhost:3000", | ||
"pluginsFile": false, | ||
"fixturesFolder": false, | ||
"supportFile": "cypress/support/index.js", | ||
"video": false, | ||
"defaultCommandTimeout": 10000 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
describe('Add Liquidity', () => { | ||
it('loads the two correct tokens', () => { | ||
cy.visit('/add/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85-0xc778417E063141139Fce010982780140Aa0cD5Ab') | ||
cy.get('#add-liquidity-input-tokena .token-symbol-container').should('contain.text', 'MKR') | ||
cy.get('#add-liquidity-input-tokenb .token-symbol-container').should('contain.text', 'ETH') | ||
}) | ||
|
||
it('does not crash if ETH is duplicated', () => { | ||
cy.visit('/add/0xc778417E063141139Fce010982780140Aa0cD5Ab-0xc778417E063141139Fce010982780140Aa0cD5Ab') | ||
cy.get('#add-liquidity-input-tokena .token-symbol-container').should('contain.text', 'ETH') | ||
cy.get('#add-liquidity-input-tokenb .token-symbol-container').should('not.contain.text', 'ETH') | ||
}) | ||
|
||
it('token not in storage is loaded', () => { | ||
cy.visit('/add/0xb290b2f9f8f108d03ff2af3ac5c8de6de31cdf6d-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.get('#add-liquidity-input-tokena .token-symbol-container').should('contain.text', 'SKL') | ||
cy.get('#add-liquidity-input-tokenb .token-symbol-container').should('contain.text', 'MKR') | ||
}) | ||
|
||
it('single token can be selected', () => { | ||
cy.visit('/add/0xb290b2f9f8f108d03ff2af3ac5c8de6de31cdf6d') | ||
cy.get('#add-liquidity-input-tokena .token-symbol-container').should('contain.text', 'SKL') | ||
cy.visit('/add/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.get('#add-liquidity-input-tokena .token-symbol-container').should('contain.text', 'MKR') | ||
}) | ||
|
||
it('redirects /add/token-token to add/token/token', () => { | ||
cy.visit('/add/0xb290b2f9f8f108d03ff2af3ac5c8de6de31cdf6d-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.url().should( | ||
'contain', | ||
'/add/0xb290b2f9f8f108d03ff2af3ac5c8de6de31cdf6d/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85' | ||
) | ||
}) | ||
|
||
it('redirects /add/WETH-token to /add/WETH-address/token', () => { | ||
cy.visit('/add/0xc778417E063141139Fce010982780140Aa0cD5Ab-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.url().should( | ||
'contain', | ||
'/add/0xc778417E063141139Fce010982780140Aa0cD5Ab/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85' | ||
) | ||
}) | ||
|
||
it('redirects /add/token-WETH to /add/token/WETH-address', () => { | ||
cy.visit('/add/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85-0xc778417E063141139Fce010982780140Aa0cD5Ab') | ||
cy.url().should( | ||
'contain', | ||
'/add/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85/0xc778417E063141139Fce010982780140Aa0cD5Ab' | ||
) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import { TEST_ADDRESS_NEVER_USE_SHORTENED } from '../support/commands' | ||
|
||
describe('Landing Page', () => { | ||
beforeEach(() => cy.visit('/')) | ||
it('loads swap page', () => { | ||
cy.get('#swap-page') | ||
}) | ||
|
||
it('redirects to url /swap', () => { | ||
cy.url().should('include', '/swap') | ||
}) | ||
|
||
it('allows navigation to pool', () => { | ||
cy.get('#pool-nav-link').click() | ||
cy.url().should('include', '/pool') | ||
}) | ||
|
||
it('is connected', () => { | ||
cy.get('#web3-status-connected').click() | ||
cy.get('#web3-account-identifier-row').contains(TEST_ADDRESS_NEVER_USE_SHORTENED) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
describe('Swap', () => { | ||
beforeEach(() => { | ||
cy.visit('/swap') | ||
}) | ||
|
||
it('list selection persists', () => { | ||
cy.get('#swap-currency-output .open-currency-select-button').click() | ||
cy.get('#list-introduction-choose-a-list').click() | ||
cy.get('#list-row-tokens-uniswap-eth .select-button').click() | ||
cy.reload() | ||
cy.get('#swap-currency-output .open-currency-select-button').click() | ||
cy.get('#list-introduction-choose-a-list').should('not.exist') | ||
}) | ||
|
||
it('change list', () => { | ||
cy.get('#swap-currency-output .open-currency-select-button').click() | ||
cy.get('#list-introduction-choose-a-list').click() | ||
cy.get('#list-row-tokens-uniswap-eth .select-button').click() | ||
cy.get('#currency-search-selected-list-name').should('contain', 'Uniswap') | ||
cy.get('#currency-search-change-list-button').click() | ||
cy.get('#list-row-tokens-1inch-eth .select-button').click() | ||
cy.get('#currency-search-selected-list-name').should('contain', '1inch') | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
describe('Migrate V1 Liquidity', () => { | ||
describe('Remove V1 liquidity', () => { | ||
it('renders the correct page', () => { | ||
cy.visit('/remove/v1/0x93bB63aFe1E0180d0eF100D774B473034fd60C36') | ||
cy.get('#remove-v1-exchange').should('contain', 'MKR/ETH') | ||
}) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
describe('Pool', () => { | ||
beforeEach(() => cy.visit('/pool')) | ||
it('add liquidity links to /add/ETH', () => { | ||
cy.get('#join-pool-button').click() | ||
cy.url().should('contain', '/add/ETH') | ||
}) | ||
|
||
it('import pool links to /import', () => { | ||
cy.get('#import-pool-link').click() | ||
cy.url().should('contain', '/find') | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
describe('Remove Liquidity', () => { | ||
it('redirects', () => { | ||
cy.visit('/remove/0xc778417E063141139Fce010982780140Aa0cD5Ab-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.url().should( | ||
'contain', | ||
'/remove/0xc778417E063141139Fce010982780140Aa0cD5Ab/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85' | ||
) | ||
}) | ||
|
||
it('eth remove', () => { | ||
cy.visit('/remove/ETH/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.get('#remove-liquidity-tokena-symbol').should('contain.text', 'ETH') | ||
cy.get('#remove-liquidity-tokenb-symbol').should('contain.text', 'MKR') | ||
}) | ||
|
||
it('eth remove swap order', () => { | ||
cy.visit('/remove/0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85/ETH') | ||
cy.get('#remove-liquidity-tokena-symbol').should('contain.text', 'MKR') | ||
cy.get('#remove-liquidity-tokenb-symbol').should('contain.text', 'ETH') | ||
}) | ||
|
||
it('loads the two correct tokens', () => { | ||
cy.visit('/remove/0xc778417E063141139Fce010982780140Aa0cD5Ab-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.get('#remove-liquidity-tokena-symbol').should('contain.text', 'WETH') | ||
cy.get('#remove-liquidity-tokenb-symbol').should('contain.text', 'MKR') | ||
}) | ||
|
||
it('does not crash if ETH is duplicated', () => { | ||
cy.visit('/remove/0xc778417E063141139Fce010982780140Aa0cD5Ab-0xc778417E063141139Fce010982780140Aa0cD5Ab') | ||
cy.get('#remove-liquidity-tokena-symbol').should('contain.text', 'WETH') | ||
cy.get('#remove-liquidity-tokenb-symbol').should('contain.text', 'WETH') | ||
}) | ||
|
||
it('token not in storage is loaded', () => { | ||
cy.visit('/remove/0xb290b2f9f8f108d03ff2af3ac5c8de6de31cdf6d-0xF9bA5210F91D0474bd1e1DcDAeC4C58E359AaD85') | ||
cy.get('#remove-liquidity-tokena-symbol').should('contain.text', 'SKL') | ||
cy.get('#remove-liquidity-tokenb-symbol').should('contain.text', 'MKR') | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
describe('Send', () => { | ||
it('should redirect', () => { | ||
cy.visit('/send') | ||
cy.url().should('include', '/swap') | ||
}) | ||
|
||
it('should redirect with url params', () => { | ||
cy.visit('/send?outputCurrency=ETH&recipient=bob.argent.xyz') | ||
cy.url().should('contain', '/swap?outputCurrency=ETH&recipient=bob.argent.xyz') | ||
}) | ||
}) |
Oops, something went wrong.