* 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
* add a link to switch the locale conditionally
* make it smaller
* add the locale labels
* language labels from the internet
* fix the heart in the claim popup
* undo the conditional change
* remove todo
* updated Chinese locale name to office-365 language ids
* added missing <Trans>
Co-authored-by: Justin Domingue <judo@uniswap.org>
* 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
* replaced i18next with lingui
* integrate lingui in i18n and update dev setup
* updated components to @lingui
* fix compile error after rebase
* detect locale
* add all previous languages to linguirc
* address pr feedback
* remove it for now
* ignore generate *js files, various fixes
* added more translations
* fixed yarn build command
* wrapped more hardcoded english around <Trans>
* finished second round of translations
* added support for pseudo-en locale
* improvements
* moved copy.tsx to different branch
* moved extra files to different branch
* regenerated po
* clean up
* more fixes
* regenerate po
* remove messages.js
* clean up
* addressed pr feedback
* regenerated po
* feat(pool): add toggle to hide inactive positions in pools page
* cleanup code
* keep positions sorted, but move zero liquidity positions to end
* simplified sorting logic
* 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
* Add etherscan links for the two tokens in the pool on the NFT page
* moving linked tokens to a function
added arrow to show that it's a link
added check for eth
* clean up impl
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* only animate NFT SVG on hover by using a canvas
* handle high dpis
* animation transition between canvas and img
* set start state to not animated
* removed animations that were causing issues on Firefox
* simplify code
* remove debugger statement
* remove useEffect in favor of an event handler
* hide canvas without unmounting to avoid blinking
* fix lint error
* fix flicker on hover by leaving canvas always visible
* add comment about z-index
Co-authored-by: Justin Domingue <domingue.justin@gmail.com>
* 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
* Change price ratio using slash to "per"
* Fix header, toggle copy and increase copy
* Add clearer V2 and migrate buttons
* Fix link
* fix account modal background color
* tweak sig figs
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* 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)
* Use ts enum for ProposalState in state/governance/hooks.ts (#1166)
* Use ProposalState enum in Vote/styled.tsx for determining colors of state text etc. (#1166)
* 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>
* add a usePermit hook
* semi working
* Fix code style issues with ESLint
* don't override gas, some cleanup in the permit function
* fix permit validity
* some more permit fixes
* nits
* another nit
* use the erc20 permit hook everywhere
* unused exports
* handle missing version
* replace everywhere
* add DAI and todos
* woopsie bug
Co-authored-by: Lint Action <lint-action@samuelmeuli.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>
* use token0 as base in all calculations
* refactor
* fix price order
* fix existing position ticks
* remove empty space
* basic remove page
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* use token0 as base in all calculations
* refactor
* fix price order
* fix existing position ticks
* remove empty space
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* very rough positions/pools data fetching and position list rendering
* fix formatting
* fix loading
* position page routing, bug on add page
Co-authored-by: ianlapham <ianlapham@gmail.com>
* Update index.ts
* feature(service worker): add offline support (#1319)
* Revert "feature(service worker): add offline support (#1319)" (#1320)
This reverts commit 34dfb41a1e0a647596c5d37d5e3f7baa6c4005a3.
* Revert "Revert "feature(service worker): add offline support (#1319)" (#1320)" (#1321)
This reverts commit db3328c8d9d7ea7b7cf7e75dc658714798d007a4.
* unregisters all installed service workers (#1322)
* fix: modals stealing focus across frames (#1326)
* improvement(lists): add BA SEC tokens to unsupported list (#1327)
* show hidden search results by default
* update break styles
* optimize filter, use debounce on input
* increase debounce time
* add ba association list
* handle dismiss (#1328)
* split up sdk use between core and v2
* Fix code style issues with ESLint
* remove service worker
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: Hyperion <72735936+moontools-hyperion@users.noreply.github.com>
Co-authored-by: Lint Action <lint-action@samuelmeuli.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>