* fix: split calls into more chunks if they fail due to out of gas errors
* set to 100m gas
* back to 25m so we batch fewer calls
* do not pass through gas limit, some simplification of the code
* unused import
* 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>
* 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>
* add hooks to fecth ticks data and active liquidity
* cleanup
* add polling interval
* moved ms.macro types to dev deps
* generate graphql schema on build
* added @types/ms.macro
* use clone deep
* 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
* use argent wallet contract in swap callback
* maybe working swap callback
* chore(v3): trigger a breaking release
BREAKING CHANGE: trigger a major release for the uniswap interface to indicate it now supports swapping and liquidity provision against uniswap protocol v3
* fix the value
* improve the error coverage
* retry more frequently, couple more error nits
* the is argent call was being sketchy
* get it working for add liquidity
* `0x0` for v2 swaps too
* small nits in position page
* fix import
* fix compiler error
* do not construct tokens for wrapped token info
* some cleanup of the wrapped token info
* back to extends, bump sdk core version via v2/v3 sdk updates
* Revert "back to extends, bump sdk core version via v2/v3 sdk updates"
This reverts commit 92cc5073
* update the sdk version
* fix some more uses of instanceof
* finish the refactor
* mess with the currency list performance
* start replacing with the latest v3/v2 sdks
* raw -> quotient
* more cleanup
* finish the refactor
* clean up currency list refactor
* fix list rendering
* perf(token lists): improve app performance when there are large inactive token lists (#1510)
* improve inactive token lists performance
* cleanup before larger changes to combine inactive lists
* only do the search if the query does not match any active lists, limit the number of results
* more performance improvements
* search inactive lists more aggressively
* automatic slippage tolerance start
* get it compiling
* out of range/in range behavior of slippage tolerance in add
* small useDerivedSwapInfo refactor
* improve useSwapSlippageTolerance
* fix unit test
* thread placeholder slippage through
* small improvement to slippage input behavior
* fix the display bug
* fix tx settings modal ux
* don't pass props unnecessarily
* switch back to static swap slippage for now
bump migrate slippage to .75%
* fix font size
* add flag for auto slippage migration
validate version updates even more
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* Add App-level error boundary, referring users to GitHub issue creation on page crashes. (#1452)
* Class component is used as boundary since catching errors is apparently not yet possible with hooks.
* EventListener in window was removed and replaced by error boundary's error catch, which now fires a GA exception. The fields it passes are slightly different because React uses slightly different error types.
* Pre-filling issues with dynamic data is possible with POST requests to GitHub's API, but the GH web client seems to only support pre-fill based on templates. Therefore users still need to copy error info themselves.
* Prefill GitHub issues with crash data.
* Added package 'react-device-detect' to include device data such as OS, browser etc. in crash report.
* Included error stack in issue body.
* Used <code> html tag for displaying stack to user.
* Slightly reduce vertical padding on code block.
* Add ua-parser-js for parsing user agent.
* Revert react-device-detect to ^1.6.2 (which is used for mobile detection etc. in components)