* chore: upgrade react-router-dom to v6
* migrate Redirect to Navigate
* use Routes instead of Switch
* migrate useHistory to useNavigate
* use To type
* use element
* work around activeClassName
* fix typing for useParams
* deduplicate
* fix Navigate
* add e2e tests
* visit /swap directly
Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
* Add deprecated_ label to white and black
* Add deprecated_ label to text1 through text5
* Add deprecated_ label for bg0 through bg6
* Add deprecated_ prefix to remaining colors
* Add deprecated_ prefix to direct style references
* Add deprecated_ prefix to all remaining colors
* Update link color
* Fix 'deprecated_white' -> theme.deprecated_white
* Update snapshots
* made initial changes for pools page displaying w/ unsupported chains
* condensed styling
* added chain validation to CTACards and wrote tests for both CTAcards and Pools page
* linted changes
* switched from snapshot to text matching tests
* switched test to use check for text instead of testid
* 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>
* fix windows dev environment bugs
* fix NetworkSelector toggle bug
* revert: ⏪ add `prei18n:extract` script back
this change to make the script Windows-compatible will be dealt with in a separate PR
* revert: ⏪ revert prettier endOfLine fix
Will be dealt with in a separate PR
* updates
Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
* fix: show no price impact eth to weth
Fixed the price estimate values to reflect the correct price estimates depending on whether it is a wrapped trade
* fix: show no price impact eth to weth
Fixed to display the correct price estimates depending on whether it is a wrapped trade (eth -> weth should show no price impact)
* Added ETH->wETH testing
Added a Cypress test to check wrapped value swap has no price impact
* make Cypress test cleaner
* fix: fix scroll on page navigation
* fix: scroll to top when navigating in whole app
* fix: refactor to use useHistory hook
* fix: change scrollToTop component to hook
Co-authored-by: Lynn Yu <lynn.yu@uniswap.org>
- fix: handle non existing inputCurrency from url
oppening an url swap?inputCurrency=not_existing_address
cause a state where you are not able to change input currency
* feat(compliance): risk screening
* add api endpoint
* hosted app only
* add help center link and click-to-copy email address
* only show on app.uniswap.org and fix spacing nits
* 12px for bottom section
* fix: can burn position even if fetching fees fails.
* Revert "fix: can burn position even if fetching fees fails."
This reverts commit a96f7178e55a264c32a3cf8c1b6562785cbd50d4.
* recover more gracefully from failed fee fetch
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* update wrapped native currency type
* fix build error on base check
* update type on mapping to permit undefined values
* undo unneeded changes
* update filter check
* feat(swap): default 1 eth to usdc on the swap page
* fix unit tests
* fix tests
* fix the issue better
* use the token list logo
* fix integration tests for swap and add one for eth/usdc
* address comments
* update swap hooks to add swap txn confirmations
* fix: remove uneeded comments
* update with latest
* update utils to separate swap callback hooks
* create generic swap callabck to be used by both app and widget
* update app swap callback to use logic from lib
* update big number import
* 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: fixing layout from using grid to flexbox
* fix: setting WrapSmall to nowrap due to layout issue on mobile
* fix: using width auto instead of disabling flex wrap
Co-authored-by: Julian Anderson <juliancanderson@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>
* feat(optimism): optimistic kovan local regenesis changes
* use the regenesis version of the sdk
* remove the override no longer necessary
* diff rpc url
* back to kovan url
* lint error
* Optimism mainnet regenesis test (#2695)
* remove the optimism mainnet specific code and point to the mainnet regenesis rpc url
* point at the old mainnet multicall address
* bump the sdk version
* copy the list
* multicall address regenesis change
* revert the gas limit special casing for optimism
* bump the sdk version
* remove a couple other temporary edits
* unused test case
* specific version of v3-sdk
* refactor: transaction info is translated in the appropriate places
fixes https://github.com/Uniswap/interface/issues/1756
* getting closer
* more work
* finished, finally
* bit more refactoring
* move summary into its own file
* little more cleanup in the transaction summary file
* fix bad copy
* fix the migrate notification
* missing translation
* fix the language for vote and address other pr comments
* fix typo
* - remove old transactions with this update
- change to present tense
- show ens name where appropriate
* add a test that shows we don't clear old ones
* 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
* initial routing api integration
* add routing api slice
* display route in dialog
* addressed pr feedback
* improved routing
* switch to `get`
* first pass at integration new MultiRouteTrade
* initial implementation of RoutingDiagram
* add RoutingDiagram tests
* improve tests in RoutingDiagram
* integrate with v3-sdk 3.3.1
* removed references to MultiRouteTrade
* revert swapcallback
* fix abi compilation error
* added useRoute hook to build a Route from edges and nodes
* added react-hooks-testing-library
* integrated latest changes
* renamed router hook to routerTrade
* improve integration
* fixed routing
* usability
* mock RoutingDiagram children to reduce size
* undo mocked children
* adjust ui
* better support long routes
* use routing api logo and adjust ux
* set default percent to 0
* added intermediary hook to combine local and routing api trades
* added intermediary hook to combine local and routing api trades
* make account optional
* improve ux
* improve router
* fixed duplicate pool bug and inputAmount undefined bug
* extract input/outputAmounts from routes
* add todo
* fixed uninitialized issue and added %
* fixed tests
* fix duplicate pool bug
* added routing api setting
* change router label based on router version
* improve useRoutes and fix duplicate pool bug
* debounce routing api/local routing
* removed single hop setting
* fix bug when moving between v2/v3
* consider isUnitialized non loading
* ui fixes
* reverted change to usedebounce
* use new route schema
* visual updates
* log quoteId for polish session
* fix: persist advanced swap details toggle state
* fix no route found
* poll every 10s
* derive currencies from pool rather than input
* polish query status handling in useRouterTrade
* removed RouterVersion
* update ui
* update ui
* update loading state
* animate auto router
* apply loading treatment to out
* disable routing api on l2 and support auto slippage
* use opacity on the whole element
* show loading card when syncing
* updated gradient
* polished ui
* create routerlabel component
* disable router on all bu mainnet
* polish
* feat: [draft] routing api polish (#2224)
* show loading card when syncing
* updated gradient
* polished ui
* create routerlabel component
* disable router on all bu mainnet
* polish
* polished loading state
* add dashes
* fixed tooltip styles
* fixed merge conflict
* few updates
* polish
* updated yarn.lock
* fixed styles
* updated routing diagram
* Fix code style issues with ESLint
* routing api enabled without localstorage upgrade
* fixed lint error
* Fix code style issues with ESLint
* refined mocks in routing diagram tests
* addressed pr feedback
* polish
* revert sending eth
* improved loading animation
* handle stale routing api
* Fix code style issues with ESLint
* updated yarn.lock
* support native eth
* Compute gas adjusted quote for V2 trade and compare to V3 gas adjusted quote
* Incorporate approval gas cost estimate
* feat: simplify routing api ux (#2258)
* support native eth
* simplified ui
* perf optimization
* implement realized lp fee
* improved route realized lp fee
* fix lp realized fee
* fix auto router gradient
* initial route overlay
* add auto router svg
* adjusted ux to mocks
* fix lp fee
* upddated routing diagram
* optimize tradeBetter hook
* adjust type and name
* add useBetterTrade
* useBetterTrade takes gasEstimateWei
* implement gasEstimateForApproval
* import state from react
* use gas estimate
* improve integration with gas estimate comparison
* remove dependency on account
* fix currency switch bug
* improve syncing state
* add loadingbar
* style tooltip container
* updated tooltip styles
* increase opacity range
* always keep dependent currency input interactable
* show placeholders in tooltips
* Revert v2 gas estimates and approval estimates
* Add debug logs
* refactor
* fix bug
* removed comment
* update engish key
* add try-catch
* addressed pr feedback
* remove loading bar for price impact
* addressed pr feedback and bug bash feedback
* fix: use url to force version
* addressed pr feedback and bug bash feedback
* stop fetching when losing focus
* only show auto router label when activated
* avoid showing syncing status
* move V3TradeSTate to own file
* make useRoutes a function rather than hook
* use logo from active list when possible
* renamed and refactored hook
* renamed and refactored hook
* update status
* polish
* remove unused import
* fixed merge error
* updated combined trade tests
* remove priceimpact while loading
* Design tweaks
* polish latest design
* removed some styles
* log gaevent on tooltip open and clean up origin
* Small tweaks
* addressed pr feedback
* wrap route length in a loading container
* renamed local to clientside
* fix percent and token logo
* addressed pr feedback
* avoid comparing trades when v3 not ready
* some refactor
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: Will Pote <will@uniswap.org>
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* Fix letter case consistency
Fixed lower case to upper case to be consistent with:
src/pages/AddLiquidityV2/index.tsx
src/pages/RemoveLiquidity/index.tsx
src/pages/Swap/index.tsx
src/state/burn/hooks.ts
src/state/burn/v3/hooks.ts
src/state/mint/hooks.ts
src/state/mint/v3/hooks.ts
src/state/stake/hooks.ts
src/state/swap/hooks.ts
* style: Fix case to be consistent
* refactor: index.html
* chore: preconnect to GA
* chore(SEO): add meta content
* chore(SEO): add alt to ethereum logo
* chore(accessibility): add aria-labels to menus
* chore(accessibility): mark AppBody as main
* chore(accessibility): update nav link ids
* chore(accessibility): set html.lang to match i18n locale
* chore(refactor): mv html.lang to useEffect
* remove arbitrary range buttons and move full range button
* better align full range to deposit
* support dragging range when in full range
* hack to support full range brushing
* restore zoom levels
* adjusted for mocks
* fix styling
* simplify type
* restore rate toggle change
* fix lower bound by looking at isSorted
* better align bottoms
* add reset button for full range positions
* only flip when not at limit
* fix +/- buttons in range selector
* add help link
If field A and field B are already populated, chances are the user wants
them to remain the same and only wants to invert the price range
selector.
The conversion isn't exact, but should be preferable to the previous
behavior.
* revert to remove ui polish changes
* left align blurb and fix bp issue
* fix translation wrapper
* remove preview screen for create, hide submitted txn UI for create, copy updates
* small fixes
* copy updates for create blurb
* add set price range title
* add translation
* fix some translations
Co-authored-by: Justin Domingue <judo@uniswap.org>
* dismiss txn confirmation modal if on l2
* line up far right margin;
* remove submitted view on txns if on L2
* remove uneeded chainid
* wrap dismissal in useEffect
* update variable names
* zoom out on intiial
* adjust initial zoom ranges
* remove unneeded reactga event
* adjust full range warning copy
* update zoom
* adjust zoom ranges and label around current price
* addressed feedback
* set initial, min and max zoom levels
* better handle 0
* avoid formatting range selector
* polish `not created` state
* remove unused import
* 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
* first iteration of useTicks and useActiveLiquidity
* feat(pools): add liquidity depth chart (#1835)
* cleanup
* use area chart instead of bar chart
* check for undefined rather than falsy
* feat: range buttons based on fee amount (#1870)
* range buttons based on fee amount
* hardcode percentages as ticks
* increase blocksperfect
* feat: optimize add liquidity charts (#1880)
* ignore syncing state
* remove surrounding ticks
* avoid processing price1 as it is unused
* cleanup
* feat: add zoom buttons to liquidity depth chart (#1882)
* ignore syncing state
* remove surrounding ticks
* avoid processing price1 as it is unused
* cleanup
* first pass at +/- zoom buttons
* remove console.log, cleanup
* use real price for price line
* updated brush handles to latest spec
* added % labels to handles
* round tick to nearest usable tick
* first pass at brushable area chart with d3
* first pass at brushable area chart with d3
* rework
* address PR comments
* add brush handles
* address PR comments
* further improvements
* feat(pools): improve full range support + capital efficiency warning (#1903)
* handle min and max prices in add liquidity
* cleaned up
* use flag to denote full range
* reset inputs on fee select
* fixed merge conflict
* handle full range in positions preview
* fixed invalid range when tokens are reversed
* use formatTickData
* updated layout
* cleaned up layout
* fixed address
* avoid re-rendering deposit amounts
* added zoom behavior and more styling
* renamed chart
* renamed main chart file;
* add brush tooltips
* remove chart title
* added accents to brush handles
* more work
* moved to file
* modularize chart components
* fix maximum depth
* added brush labels
* cleanup
* cleanup
* set up zoom
* added new components
* improved brush and zoom integration
* cleaned up clip path
* fixed clip paths
* integrated with the graph changes
* adjust fee selector
* fix data error
* add bar chart
* polish
* merged
* clean up error
* cleaned up after merge
* visual improvements
* moved +/- buttons to the right/left
* removed margin bottom
* removed unsused
* fix brush labels % change
* use d3.axisBottom
* updated labels
* improve brush range
* fix one brush change only
* adjust zoom and clippath
* use bars
* use area
* adjust axis bottom to mocks;
* improved bars
* show bar colors
* better handle full range
* adjust colors for light mode
* updated to mocks
* adjusted handles for visibility
* switch to area
* add react ga events
* adjusted to mocks
* memo brush domain to avoid re-renders
* fix inputstepcounter color
* adjust handles
* rely on the graph sorting tickidx
* use curvestepafter
* updated polish
* merged main
* add clamping and other fixes
* highlight selected area using a mask
* use price instead of % for labels
* delete unused
* refine ux
* relayout
* improve hooks
* adjust layout for mobile
* fixed card color
* adjust padding
* preent tick overflow
* flip handles sooner
* delete bars.tsx
* preliminary support
* fix multicall abi
add explorer support
* Fix code style issues with ESLint
* fix gas estimation
* fix todo tests
* fix gas estimation comments
* anonymize links to kovan etherscan and poll more frequently on optimistic kovan
* separate pool creation
* remove supported chain id
* remove the blocktag
* do not use the blocktag on optimism only
* give more gas to tokenURI for optimism
* update sdk
* temp fix to the block tag thing (do not update the block number from the fetch block number)
* remove unused import
* gasRequired -> multi-network
* bump quoter gas limit to 6m on optimism
* move the gas required parameter by chain id one level up
* missed a hook
* retry fetching receipts for optimism as many times as arbitrum
* fix duplicate enum, add optimism as well to retry options config
* fix: state not getting updated after a transaction confirmation
* bump sdk version
* update for mainnet optimism (#1998)
* fix for calculateGasMargin on optimism
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
* feat(logs): add an infrastructure for fetching logs in a declarative way
* use the logs hook in the vote page, first pass
* fix comment
* bit of cleanup
* unused imports
* improve loading indicator on vote page
* some testnet behavior improvements
* fix loader state
* loading state nit
* show correct indexes
* remove the unnecessary retry code
* first pass at the slice
* no throws
* loading indicator should go away if not connected
* use the logs slice for the logs hook state
* style changes per cal's request
* Make address input panel more generalized
* Add TextInput component
* Allow adjusting AppBody maxwidth
* Add create proposal layout page
* Fix style consistency
* create proposal ui goes brrr
* various fixes
* minor tweaks and bug fixes
* merge conflict clean up + bug fix
* i18n
* always show create proposal button
* adjust proposal title top margin and show ButtonError styling
* use button disable instead of button error when form is not filled
* revert mistaken css change
* default params for address input panel
* Refactor & fixes
- Add missing i18n
- Refactor how some styled-components is done
- ButtonError is now disabled when proposal is true in create proposal interface
- Edit copywriting
- Minor styling adjustments
* Fixed create proposal padding on medium screen
* refactor
* refactor pt. 2
* single column styling
* change AddressInputPanel font color
* Design adjustments
* change route for create proposal
* Add autonomous proposal CTA
* cta text edit
* Add link to docs for custom action
* small cleanup
* work with latest governor
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
fix governor name bug
revert useContract change
add governorIndex to vote page
only fetch latest useLatestProposalCount
fix useDataFromEventLogs
hardcode proposalIndexes for old governors
* experimental! point at a kovan arbitrum deployment
* remove the unwrapped token from mint hook
* fix explorer links
* Etherscan -> Explorer
* move chains to constant file
* use NETWORK_URLS instead
* temporary fix to the syncing issue
* fix tests
* fix unknown chain id crash
* use a multicall that returns arbitrum block numbers
* lower polling interval for layer 2
* use a better multicall
* remove unused import
* fixed multicall2
* make some v2 code chain specific
* fix build
* line number changes
* update keys
* fix the locale parsing of full locale string
* extract
* fix lint
* add arbitrum one
* add arbitrum one to supported chains
* add missing arbitrum one label
* refactor: remove storybook
* point to the arbitrum explorer address
* fix arbitrum mainnet links
* fix how weth shows up in the interface
* make the usdc price feature more cross chain compatible
* missing translation
* clean up some governance code so it doesn't crash on unsupported networks
* improve how we check for transaction receipts for sequencer networks
* improve it a bit more
* add pool find button to v2 pool page
* update copy to be v2 specific
* fixed migrate v2 liquidity back arrow
* add missing <Trans>
Co-authored-by: Justin Domingue <judo@uniswap.org>
* 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