* fix(swap): use undefined as initial currencyId state
Null should be used for a selection state, not an unknown state. undefined may signify that a currency was passed in the URL but not yet parsed.
* perf(swap): initialize swap with url
Initializes SwapState with URL parameters so that currency input may be rendered on the first frame.
* test(swap): update hooks tests
* test: fix casing
* fix: check nullish to allow eg 0
* 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>
* logic for tracking time since last block
* add polling times to chain info
* pr feedback
* add gui for chain connectivity warning
* add arb support
* update title of warning to indicate internet connectivity issues may be the problem
* pr review
* clean up useBlockWarningTimer
* softer language on mainnet
* only show warning if user has the window visible
* fix(governance): special case bravo parsing
* fix(governance): explicitly parse U+2018, U+2026
* chore: upgrade ethers to ^5.4.6
Updates parseLog to delay parsing nested properties, so that they will only fail when accessed.
* fix(vote): recover from invalid UTF-8 in proposal descriptions
* fix(vote): special case bravo proposal newlines
* chore: rm dead reference
* 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
* use modal for txn confirmation on l2
* update with error state
* remove 1 translation
* dedicated L2 component
* update styling on to be less jumpy
* add success animation to modal
* revert regular submitted content
* remove useless hook in popups
* remove import
Co-authored-by: Ian Lapham <ian_lapham@alumni.brown.edu>
* set up snapshot testing
* improvements
* add tests for TextInput as an example
* Fix code style issues with ESLint
* add comment to custom-test-env file
* only set up needed providers
* include style rules in snapshots
* disable redux storage warning
* added setupTests to avoid boilerplate
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* initial routing api integration
* add routing api slice
* display route in dialog
* addressed pr feedback
* switch to `get`
* renamed useRouterTradeExactIn to useRouter
* moving few files to later iteration
* removed unnecessary `as`
* switch to polling
* add todo for blocknumber freshness
* remove account-slippage-deadline
* add title text and opacity variability to token lists
* add optimism token list
* show tokens from active lists
* sort up token lists
with tokens on the current chain
* fix up some type issues
prune out chainId changes
* clean up leftover any
* refactor token count mechanism
* handle plurals in title text string
* new combineMaps implementation
* remove custom plural
* address a couple nits
* show the number of tokens on current chain
Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: Justin Domingue <judo@uniswap.org>
* 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
* 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
* build dynamic subgraph url based on chain id
* reset api state (query cache) on chain id change
* removed dependency on rtk-query/graphql
* add error message
* 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
* 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
* wrap sock around function component to get re-renders
* removed sourcelocale since we are using custom ids
* load locale data dynamically
* undo dev change
* ran yarn i18n:extract
* store locale in redux
* added support for redux
* restored header
* refactor
* addressed pr feedback
* specify type
* added navigator locale fallback to generic dialect
* make locale array const and typed
* addressed pr feedback
* fixed various
* addressed pr feedback
* make supported locales constant uppercase
* add back toUpperCase removed during refactoring
* removed lingui/detect-locale
* run yarn
* fix: improve privacy of the claim popup
fixes https://github.com/Uniswap/uniswap-interface/issues/1337
* fix unhandled rejection
* clean up the claim code a bit more
* working claim fetch
* working claim fetch
* trigger some events on the claim popup
* 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