* feat: Support for Celo
* fix: wrong condition
* combine celo and alfajores lists
* use celo erc20 representation
* fix: refactor infura.ts to networks.ts & add celo to rpc urls
* feature: add celo contract addresses
fix: remove celo from supported gas estimate chains until feature is available
* refactor: useUSDCPrice to useStablecoinPrice
fix: add celo to supported gas estimate chains
* fix: use unique factory address for getting pool address
* fix: darkmode background graident
* fix: removing a comment left behind
* fix: remove bad import
* fix: remove dead link until the Celo is live on info.uniswap.org
* fix: add asset to common bases & minor refactoring
* fix: celo info links point to root info.uniswap.org
* fix: change celo token bridge to portal
* fix: update redux-multicall to latest version
* refactor: for code readability
* fix: celo banner colors & remove unused alternative logo
* fix: change celo token list to hosted version
* fix: update celo banner colors
* fix: move celo to the bottom of the network selector list
* fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk
* fix: refactoring + move Celo above L2s
* fix: update celo contract addresses
* fix: update celo subgraph
* fix: update v3-sdk and smart-order-router versions
* fix: move Celo to the bottom of the network selector list
* fix: downgrade smart-order-router and add casting fix
* fix: downgrade smart-order-router and add casting fix
* fix: resolve Pool dependency
* fix: bridge chain id types
* fix: explorer link test
* fix: use quoter v2 ABI in useClientSideV3Trade fro Celo
* fix: update connection "infura_rpc" to networks
* fix: revert yarn.lock and force install
* fix: dedup router and v3 sdk
* refactor: mv quoter v2 to client side v3 trade
* build: dedup lockfile
* feature: add portal ether to common bases
* fix: add comment for chains that use QuoterV2
* fix: use token as native asset
* fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method
* feature: adjust celo tokens presetned
* fix: update celo explorer to celoscan
* fix: celo token casting
* fix: celo celo explorer it
* fix: celo chain info should be consistent with block explorer used.
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
* feat: show injected options in wallet browsers
* initial testing
* more mocking
* mock more
* mobile tests
* updates
* add data test
* finally got the mock to work
* WORKING
* uncomment
* rm console.log
* fix
* check length
* fix tests to use useWeb3React
* rm
* rename tests
* feat(polygon): polygon mainnet and testnet support
WIP! DO NOT USE
* fix unit test
* fix explorer links
* compute usdc prices
* - fix the header currency label
- fix unit tests
* polygon gradient colors
* chore: adding weth to common bases (#3025)
* adding weth to common bases
* adding usdc and dai
* adding usdt and wbtc
* fix a bunch of polish issues
- 3085 detection
- some wrapping stuff
- the network selector dropdown
* fix wrap/unwrap notification text on polygon
* background color per the figma
* subgraph url
* fix the re-render blinking on the network selector
* failed network switch
* clean up duplicate code in the network switching functions
* fix text color in the privacy notice on light mode
* add some routing constants for polygon
* do not show the separator in the trade route if auto router is not supported
* - network switching without a wallet connected
- remove v2 stuff from pool page when n/a
- remove WMATIC from common bases on polygon
* background colors of network alert
* oops fix background on network alert
* clean up optimism labels
* fix alignment of text on downtime warning
* finish the network alert styles
Co-authored-by: Sara Reynolds <30504811+snreynolds@users.noreply.github.com>
* client-side smart order router support
* support auto router on L2s
* add swap router version in approval/swap callback GA events to save $ on approval txs
* add persistent UI view of gas estimate on L1s
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* fix(lint): clean up the eslint config
* Fix code style issues with ESLint
* fix the linter errors that arose from using the proper config
* clean up the rebass text renames
* fix if statement, use the config
* use the same name prefix for both steps
* `TextPreset` -> `ThemedText`
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix an issue with optimism/arbitrum alert distinction, add a prompt to switch to Optimism on mainnet
* only prompt to switch networks if the user has a wallet connected
* add readmore link styles
* add network to the user's wallet if it hasn't been added already
* network selector
* hide arbitrum until it launches
* add arbitrum for testing
* update copy and some margins
* fix alert opacity issue
* remove the launch alert :(
* adjust icon position and add curvier corners
* lighten some colors
* keep the selector around even if the user's wallet doesn't support the eip when they're on L2, just hide all other networks
* copy updates and some other small tweaks
* better mobile experience
* shrink on mobile
* fix some links and css
* differentiate between selector and row logos
* fix some copy
* remove network alert from add liquidity pages, update copy and buttons on swap page, remove close option if no eth, persist close state otherwise
* design polish
* update read more links
* update downtime warning to be less intense
* oe logo
'
* design polish sesh
* fix a couple bugs
* polish
move getINfoLinkByChainId to chain constants
pr review - translations
optimism token list, typo, text color for L1 switch
use <Trans /> instead of t
undo unintentional tokenlist order change
use {'Optimism'} instead of {name}
switch deadline implementation
remove unused TYPE import
switch to generalized CHAIN_INFO instead of L2_INFO so we don't have to check in components
add target chain id param to optimism bridge
fix a minor breakpoint issue
reduce sigfigs for header balance
update network card dropdown text for optimism
remove list code
refactor SupportedChainId
* SupportedL1ChainId | SupportedL2ChainId -> SupportedChainId
* chore: simplify app dispatch and selector types with ts inference
* update SearchModal to use new types inference
* chore: simplify useSelector and useDispatch types using inference
* chore: remove the fixed global style component
* move it to a more appropriate place
* move some css around
* add an element that triggers the font to immediately load
* some more nit refactoring
* style
* move the radial gradient into the index.css file
* try overriding the font display attribute of the inter family
* remove font-display rule
* Better position list layout WIP
* Position list updates
* add badge data and current price hover
* merge cleanup
* fix missing library
* position page improvements
* Clean up position page and overview
* layout and color updates
* Clean up page
* Clean up position page
* clean up errors
* Add icons
* Merge main
* Position styles tweaks
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* re-work header
* swap tweaks
* re-work swap in progress
- inline slippage
- hidey details
- better invert UI
- better flip rate ui
* Swap improvements
- new layout order
* New swap layout
* merge main
* get all the tests running
* skip the swap test as well
Co-authored-by: Moody Salem <moody.salem@gmail.com>
* basic support for multiple active lists
* start search across inactive lists
* store card before list update
* basic import flow for inactive tokens
* update supported lists
* update import flow for address pasting
* basic mvp
* hide filter if no results
* update min heights
* update manage view, index tokens on page load
* start routing fix for multi hops
* switch to input amount comparison on exactOut
* start list import view
* updated list UI, token search updates, list import flow, surpress popups and warnings
* add unsupported tokens
* show warning if logged out
* update to opyn list
* show token details on warning;
* make percent logic more clear
* remove uneeded comaprisons
* move logic to functions for testing
* test updates
* update list reducer tests
* remove unused locals
* code cleanup
* add unsupported local list
* add multi hop disable switch
* add GA
* fix bug to return multihop no single
* update swap details
* copy updates
* Visual refinements
* Further tweaks
* copy updates, actual list order
* Move settings button
* Update all trade views with settings cog
* Add better tips, remove darkmode toggle from dropdown
* Clean up routing UI
* UI tweaks
* minor tweaks
* copy updates
* add local default list, use existing function for trade comparison, disable v1 helper, show inactive/active at once
* updated inactive view
* remove slippage fix
* update output amount return
* center button, update search to character threshold
* reset add state on back navigation
* style tweak on add button
* fix bug on search results
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* more list stuff
Use the selected list instead of the default list, but also use the default list
start list selection code
* move token warning to a modal, fix the install issue
* add/remove/enter key
* handle enter on currency select for ETHER
* change slippage tolerance to be a slider
* make ui closer to the mocks
* commit slider changes
* back to tabs
* copy changes
* bump list version
* some styling for the list select
* bump uniswap default list version
* use contract calls to get ens names and addresses
* show list logo
* fix failing integration test
* .eth.link
* list introduction screen
* remove showSendWithSwap
* fix integration and unit tests
* resolve ENS names
* logos from ens
* fix the lint errors
* some refactoring to better support using a the library provider from the user for resolving ENS names
* load list info from the list url for the introduction page
* make it slightly harder to remove a list
* minor clean up, some help text and links
* remove icon from list update popup
* show added/removed tokens
* add GA everywhere, don't debounce contenthash lookups
* show tags
* fix tag key
* tag display, list rendering, needs optimization
* fix list fetching in firefox, style issue in safari
* sort the lists, clean up styling
* use client provider when possible
* show token warning for url loaded tokens
* improve the warning modal
* some refactoring to fix the list fetching on networks other than mainnet
* fix tests
* some minor improvements
* increase timeout to maybe fix integration tests which pass locally
* build for tests using the dev network url
* reset the lists if we deleted the other two copies
* improve how we handle updating the default list of lists
* fix integration test
* Update token list selection styles
* fix external links, reuse the on click outside code, show add errors
* show the list origin instead of the full url
* fix update list link
* show host instead of hostname
do not automatically dismiss major version upgrades for lists
* fix link to tokenlists.org
* add uma
* clean up styling in list rows
* bump token list version
* bump token list version again
* hover symbol to see currency name
* bump version
* add cmc lists, dharma list
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* move the gas estimation stuff into its own hook and report errors from the gas estimation
* fix linter errors
* show the swap callback error separately
* rename some variables
* use a manually specified key for gas estimates
* flip price... thought i did this already
* only show swap callback error if approval state is approved
* some clean up to the swap components
* stop proactively looking for gas estimates
* improve some retry stuff, show errors inline
* add another retry test
* latest ethers
* fix integration tests
* simplify modal and fix jitter on open in mobile
* refactor confirmation modal into pieces before creating the error content
* finish refactoring of transaction confirmation modal
* show error state in the transaction confirmation modal
* fix lint errors
* error not always relevant
* fix lint errors, remove action item
* move a lot of code into ConfirmSwapModal.tsx
* show accept changes flow, not styled
* Adjust styles for slippage error states
* Add styles for updated price prompt
* Add input/output highlighting
* lint errors
* fix link to wallets in modal
* use total supply instead of reserves for `noLiquidity` (fixes#701)
* bump the walletconnect version to the fixed alpha
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* deleting some code first
* strict, some refactoring
* denser common bases
* more add liquidity refactoring
* add liquidity paths working
* show common bases in the token selects
* fix the ability to select duplicate tokens
* useless rename
* try to handle alllll the duplicate token edge cases
* think i got them all lol
* remove common bases header
* Revert "remove common bases header"
This reverts commit 6ac4565d
* fix and add integration tests
* make gap between rows smaller
* get integration tests actually running again
* try another format of the command, upgrade serve
* frozen lockfile on install
* try the cypress github action
* install cypress in ci
* remove redundant ignore-scripts command
* use a specific github commit for the pinata action
* fix a bug in the multicall reducer, improve token list rendering performance
* improve the enter key on the token search modal
* stop using history.push
* fix linting errors
* position card cleanup before updating to match mock
* quick poc for removing swap page
* accidental import
* error for recipient field
* query parameter working
* undo id change
* tweaks to match mocks better
* tweaks to match mocks better
* some extra integration tests
* clean up nav tabs a bit
* clean up nav tabs a bit
* space swap/pool better
* stop selecting button text when double clicking
* remove unused transfer modal header
* add info to swap confirm modal
* shorten address
* improve summary message, remove unused send callback, fix react ga event
* fix lint errors
* arrow color
* Search modal performance improvements
* Move more code out of the search modal
* Add the question helper to the search
* Fix a couple lint errors
* Fix the tests, duplicate import text
* Hide the token info on small screens, flex the list
* Fix token sorting, have a link that focuses and shows a tooltip for the search input
* Remove reach tooltip css
* Fix pair balances in the search modal
* Get the arrow working
* Only clear the input when they re-open
* Better way to exclude props
* More small performance tweaks
* Make typescript compilation strict in some new code
* Fix other errors, change how we set dark mode to always respond to url parameter
* Fix bug in block number
* Part 1, separate swap and send, move duplicate code into separate files
* Move some more constants out of the swap/send
* Support defaults from URL parameters
* Implement query string parsing via a redux action
* Finish merging the changes
* Fix the slippage warnings
* Clean up some other files
* More refactoring
* Move the price bar out of the component
* Move advanced details and some computations into utilities
* Make same improvements to send
* Approval hook
* Swap page functional with swap callback hook
* Swap/send page functional with swap callback hook
* Fix lint
* Move styleds.ts
* Fix integration test
* Fix error state in swap and move some things around
* Move send callback out of send page
* Make send behave more like current behavior
* Differentiate swap w/o send on send page from swap w/o send on swap page
* Remove userAdvanced which was always false
* Remove the price bar which is not used in the new UI
* Delete the file
* Fix null in the send dialog and move another component out of send
* Move the swap modal header out to another file
* Include change after merge
* Add recipient to swap message
* Keep input token selected if user has no balance and clicks send with swap
* Move the modal footer out of send component
* Remove the hard coded estimated time
* Fix the label/action for swap/sends
* Share the swap modal footer between swap and send
* Fix integration test
* remove margin from popper to suppress warnings
fix missing ENS name recipient link
default deadline to 15 minutes
* ensure useApproveCallback returns accurate data
* clean up callbacks
* extra space
* Re-apply ignored changes from v2 branch ExchangePage file
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* Rewrite the local storage context into a redux store for user data
* Separate out the mega methods
* Fix infinite loop
* Missing dependency
* Missing dependency, rename version field
* First 2
* More typescript
* More and more
* Almost there
* More
* More typescript
* Fix remove liquidity button
* Make the error chain more readable
* Slippage tabs
* Prepare for V2 testing
* popup styles, slippage language and amounts, min max copy
* Bug fixes and tweaks
* Add form link
* remove other imports
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* updated keys in pair context
* fix bug on imported liquidity
* Add price bar and spacing tweaks
* Header tweaks
* Base for token import, query params, styling updates
* remove unused imports
* query params, create flow
* set ETH as default for create
* Style tweaks and price bar location
* add mobile popups, mobile styling on header
* updated mobile styles
* style updates mobile, fix build
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* basic support for desktop and mobile, with or without web3
* stable before mobile view update
* mobile modal views
* remove unused modules
* create global context for wallet modal, update to click button to connect
* first pass
* drag with react pose
* try without pose
* replace context with new syntax, basic setup
* stable version on all browser types
* remove dev flags
* fix swap broken
* update to clickable connect button if logged out
* stable, good entry
* fix bugs, exit animations
* prep for merge
* stable version with updated application context
* update animations with correct gesture package
* refactor wallet logic to multi-root
* small fixes
* Style Updates
* remove unused imports
* refactor wallet page
* skeleton for migration - still need links and adrdess of new contract
* update render conditions
* fix close on click
* updated warning logic
* add mcd to token list
* changes before merge
* remove unused imports
* add checksums